# Part D plan cost-share (CMS SPUF)

`drug_silver.fact_part_d_plan_cost_share` · Drugs and formularies · status live · 4,939,689 rows

Beneficiary cost-share fact from CMS SPUF — copay/coinsurance by coverage phase x tier x days_supply. The fact stores cost as cost_type_pref (CMS enum: 1=copay/dollar, 2=coinsurance/fraction) + cost_amt_pref plus min/max and preferred/non-preferred/mail-order variants (see FACT_PART_D_PLAN_COST_SHARE_SCHEMA). coverage_level int maps (per CMS SPUF Tech Notes) 0=pre_initial/deductible, 1=initial_coverage, 2=coverage_gap (donut hole), 3=catastrophic. Carries tier_specialty_yn, ded_applies_yn, and a methodology_era stamp.

**Grain.** One row per (contract_id, plan_id, segment_id, coverage_level, tier, days_supply, report_quarter).

| column | type | meaning |
|---|---|---|
| contract_id | string |  |
| plan_id | string |  |
| segment_id | string |  |
| coverage_level | int |  |
| tier | int |  |
| days_supply | int |  |
| report_quarter | string |  |
| cost_type_pref | int |  |
| cost_amt_pref | double |  |
| cost_min_amt_pref | double |  |
| cost_max_amt_pref | double |  |
| cost_type_nonpref | int |  |
| cost_amt_nonpref | double |  |
| cost_min_amt_nonpref | double |  |
| cost_max_amt_nonpref | double |  |
| cost_type_mail_pref | int |  |
| cost_amt_mail_pref | double |  |
| cost_min_amt_mail_pref | double |  |
| cost_max_amt_mail_pref | double |  |
| cost_type_mail_nonpref | int |  |
| cost_amt_mail_nonpref | double |  |
| cost_min_amt_mail_nonpref | double |  |
| cost_max_amt_mail_nonpref | double |  |
| tier_specialty_yn | boolean |  |
| ded_applies_yn | boolean |  |
| methodology_era | string |  |
| observed_period | date |  |
| asserted_at | date |  |
| effective_period_start | date |  |
| effective_period_end | date |  |
| cms_vintage_sequence | int |  |
| parse_revision | int |  |
| parser_artifact_hash | string |  |
| source_url | string |  |
| sha256_content_hash | string |  |
| source_id | string |  |
| is_current | boolean |  |
| bronze_object_key | string |  |
| s3_version_id | string |  |
| vintage_tag | string |  |
| drug_source_version_id | string |  |

Query it: `query_substrate` with `SELECT ... FROM drug_silver.fact_part_d_plan_cost_share WHERE ... LIMIT 100`; read `describe_data_source("drug_silver.fact_part_d_plan_cost_share")` first.
