# Part D excluded-drug coverage in the coverage gap (GAP_COV), CMS SPUF sidecar, 2019-Q1 to 2024-Q3

`drug_silver.fact_drug_formulary_excluded_gap_coverage` · Drugs and formularies · status live · 268,567 rows

Whether a plan covers each drug on its excluded-drug list (the supplemental coverage of drugs excluded from the basic Part D benefit) in the coverage gap: gap_cov true = Y, false = N, from the GAP_COV field of the quarterly SPUF excluded drugs file, which the original SPUF parser never read. A sidecar of drug_silver.fact_drug_formulary_excluded: join on (contract_id, plan_id, drug_identifier, drug_identifier_type, report_quarter) to the parent's is_current = true rows; every sidecar row joins exactly one parent row and every parent row in 2019-Q1..2024-Q3 has one. 268,567 rows in 23 quarters: 189,204 covered, 79,363 not, 0 NULL; 19,537 NDC-keyed and 249,030 RxCUI-keyed rows (Athena d3768534).

**Grain.** One row per (report_quarter, contract_id, plan_id, drug_identifier, drug_identifier_type), the key of drug_silver.fact_drug_formulary_excluded.

| column | type | meaning |
|---|---|---|
| contract_id | string |  |
| plan_id | string |  |
| drug_identifier | string |  |
| drug_identifier_type | string |  |
| gap_cov | boolean |  |
| report_quarter | 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_drug_formulary_excluded_gap_coverage WHERE ... LIMIT 100`; read `describe_data_source("drug_silver.fact_drug_formulary_excluded_gap_coverage")` first.
