# Part D plan drug pricing (CMS SPUF)

`drug_silver.fact_part_d_plan_drug_pricing` · Drugs and formularies · status live · 1,593,644,611 rows

Plan x NDC unit-cost fact from CMS SPUF — THE BIG ONE (~43M-61M rows/quarter). Columns: contract_id, plan_id, segment_id, ndc11, days_supply, report_quarter, unit_cost (USD), methodology_era, plus is_current. The unit-cost / pricing-trend / plan-to-plan variance axis. Resolve brand_name -> NDC via dim_drug_label (uncatalogued shared label dim) and plan identity via dim_part_d_plan.

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

| column | type | meaning |
|---|---|---|
| contract_id | string |  |
| plan_id | string |  |
| segment_id | string |  |
| ndc11 | string |  |
| days_supply | int |  |
| report_quarter | string |  |
| unit_cost | double |  |
| 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_drug_pricing WHERE ... LIMIT 100`; read `describe_data_source("drug_silver.fact_part_d_plan_drug_pricing")` first.
