# Part D formulary coverage (CMS SPUF)

`drug_silver.fact_drug_formulary` · Drugs and formularies · status live · 42,858,106 rows

NDC-grained Part D formulary coverage from CMS SPUF: tier_level_value, prior authorization, step therapy, quantity limits, and selected-drug flag across all MA-PD + PDP formularies. The coverage lens for employer audits. Resolve plan -> formulary_id via dim_part_d_plan.

**Grain.** One row per (formulary_id, NDC11, report_quarter).

| column | type | meaning |
|---|---|---|
| formulary_id | string |  |
| formulary_version | int |  |
| contract_year | int |  |
| rxcui | string |  |
| ndc11 | string |  |
| report_quarter | string |  |
| tier_level_value | int |  |
| quantity_limit_yn | boolean |  |
| quantity_limit_amount | double |  |
| quantity_limit_days | int |  |
| prior_authorization_yn | boolean |  |
| step_therapy_yn | boolean |  |
| selected_drug_yn | boolean |  |
| 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 |  |

Tools that read it: formulary_churn

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