Medicare Advantage, Part D, Medicaid
MA pbp section b3 corf
medicare_silver.pbp_section_b3_corf·partial·silver·quarterly·Medicare Advantage Plan Benefit Packages (PBP)Rows
N/A
Columns
98
History
2018-01-01 (benefit year 2018; earliest PUF release = 2018 Q2) to 2018-01-01 (benefit year 2018; latest PUF release = 2018 Q4)
Card
yesgrain, traps, filters
Typed tools
0
What it is
- 1A BROKEN / empty-payload shell of the CMS Medicare Advantage PBP (Plan Benefit Package) PUF Section B-3 for CORF (Comprehensive Outpatient Rehabilitation Facility) outpatient-rehab cost-sharing.
- 2It was meant to hold per-MA-plan copays, coinsurance, deductibles, prior-auth and plan maximums for CORF benefits, but the parse failed: all 78 benefit/plan columns are 100% NULL and only 13 pipeline-provenance columns survived.
- 3It is not usable for cost analysis in its current state.
Grain
| Key | Grain |
|---|---|
sha256_content_hashsegment_idversion |
|
How to read it
- 1Operationally the only correct use today is a data-quality / provenance check, e.g.
- 2`SELECT quarter, source_url, COUNT(*) rows, COUNT(contract_id) populated_plans FROM medicare_silver.pbp_section_b3_corf GROUP BY quarter, source_url` — this returns rows>0 but populated_plans=0 for all 3 quarterly 2018 PUF files, confirming the CORF Section B-3 extract failed and must be re-run.
- 3For actual MA outpatient-rehab benefit/cost-sharing data, use the populated sibling medicare_silver.pbp_section_b3_cardiac_rehab instead.
Traps
- 1DO NOT USE FOR ANALYSIS — the table is an empty parse shell. All 78 benefit/plan columns (bid_id, contract_id, plan_id, orgtype, and every copay/coinsurance/deductible/auth/max/bendesc field) are 100% NULL across all 13,408 rows. Only 13 provenance columns are populated. There is zero cost or benefit data here.
- 2Row count (13,408) is meaningless duplication, NOT plan coverage. Within every (quarter, segment_id, version) group the rows are byte-identical (e.g. 598 rows in q4/v1/seg0 = exactly 1 distinct full row). The entire table holds only 234 distinct full rows, and those carry no benefit info. Counting rows here over-counts ~57x.
- 3There is NO grain key and NO way to identify a plan: bid_id/contract_id/plan_id are all null, so you cannot join this table to any plan, contract, or bid dimension. 'segment_id' and 'version' look key-ish but only ever combine into 234 hollow tuples.
- 4'version' (1-18) is a CMS file-revision tag, NOT a snapshot/is_current flag and NOT a plan attribute. 'quarter' (2/3/4) and sha256_content_hash are the real snapshot dimension: the SAME 2018 benefit year was re-published across 3 quarterly PUFs (2018 Q2/Q3/Q4). If you ever need a single snapshot, pick max cms_vintage_sequence (=4, the Q4 file).
- 5Coverage is far narrower than the source family suggests: only report_year 2018 and only 3 quarterly files exist. By contrast its ONLY sibling, medicare_silver.pbp_section_b3_cardiac_rehab, IS fully populated (113,962 rows, contract_id/bid_id 100% non-null, spanning 2019-2026). So this CORF table is specifically broken — prefer the cardiac_rehab table as the working B-3 example, and treat pbp_section_b3_corf as needing re-extraction.
- 6asserted_at (2026-05-20) is the Vlada load date and report_year/observed_period (2018) is the benefit year — bitemporal. Never mistake asserted_at for the data's effective date.
Columns (98)
| Column | Type | Meaning |
|---|---|---|
segment_id | string | PBP plan segment id ('0'-'9', 10 distinct). '0' = the base/non-segmented plan; 1-9 = geographic segments of a segmented plan. POPULATED. One of only 3 columns with any analytic differentiation (the rest are pure provenance). Higher segment numbers have far fewer rows (most plans are segment 0). |
version | double | PUF section/file version number (1-18, 17 distinct; value 16 absent). Identifies the CMS PBP file revision the row came from. POPULATED. NOT a plan attribute and NOT a snapshot/is_current flag — purely a source-file version tag. |
report_year | double | PUF reporting/benefit year. Always 2018.0 for every row — the only year this CORF extract covers. |
quarter | double | Calendar quarter of the CMS PUF release the row was extracted from: 2.0, 3.0, or 4.0 (2018 Q2/Q3/Q4). This is the snapshot/release dimension, NOT a plan attribute. Same 2018 benefit year re-published across 3 quarterly PUFs. |
observed_period | date | Date the data describes; always 2018-01-01. Single value across the whole table. |
asserted_at | date | Pipeline ingestion/assertion date; always 2026-05-20. When Vlada parsed and loaded these rows (bitemporal 'system time'), unrelated to the 2018 benefit content. |
effective_period_start | date | Benefit-year start; always 2018-01-01. |
effective_period_end | date | Benefit-year end; always 2018-12-31. |
cms_vintage_sequence | int | Integer ordering the CMS source vintages: 2 for the Q2 file, 3 for Q3, 4 for Q4 (1:1 with quarter here). Lets you pick the latest release. |
parse_revision | int | Vlada parser revision that produced the row; constant = 2 across all rows. |
parser_artifact_hash | string | SHA-256 of the parser artifact/output; one distinct value per source file (3 total). Provenance of the code that did the (failed) extraction. |
source_url | string | CMS download URL of the source zip. 3 distinct values: pbp-benefits-2018-q2.zip, -q3.zip, -q4.zip under cms.gov/.../pbp-pufs/. Confirms this is the public CMS MA-PD PBP PUF. |
sha256_content_hash | string | SHA-256 of the raw source file content; 3 distinct values (one per quarterly zip). The cleanest snapshot/file discriminator. |
bid_id | string | INTENDED: CMS bid id of the plan benefit package. 100% NULL — not populated. This is the field that would normally join to bid/plan tables; its absence is why the table has no grain. |
contract_id | string | INTENDED: MA contract id (Hxxxx/Rxxxx). 100% NULL. Cannot identify which plan/organization any row belongs to. |
orgtype | string | INTENDED: organization type (HMO/PPO/etc). 100% NULL. |
pbp_a_ben_cov | string | INTENDED: Section A benefit-coverage indicator carried onto the B-3 row. 100% NULL. |
pbp_a_plan_type | string | INTENDED: plan type code. 100% NULL. |
pbp_b3_auth | string | |
pbp_b3_auth_pos | string | |
pbp_b3_coins_cov_mc | string | |
pbp_b3_coins_cov_pos | string | |
pbp_b3_coins_yesno | string | |
pbp_b3_coins_yesno_pos | string | |
pbp_b3_coins_yn | string | |
pbp_b3_copay_yesno | string | |
pbp_b3_copay_yesno_pos | string | |
pbp_b3_copay_yn | string | |
pbp_b3_ded_yesno_pos | string | |
pbp_b3_ded_yn | string | |
pbp_b3_maxenr_per | string | |
pbp_b3_maxenr_yesno | string | |
pbp_b3_maxenr_yn | string | |
pbp_b3_maxenr_yn_pos | string | |
pbp_b3_maxplan_yesno_pos | string | |
pbp_b3_maxpln_cov_pos | string | |
pbp_b3_maxpln_per_pos | string | |
pbp_b3_refer_yn | string | INTENDED: referral-required yes/no for CORF. 100% NULL. |
pbp_b_3_ded_yesno | string | |
plan_id | string | INTENDED: 3-digit plan id within the contract (PBP id). 100% NULL — the other half of the missing plan key. |
pbp_b3_auth_yn | string | |
pbp_b3_bendesc_amo_crs | string | |
pbp_b3_bendesc_amo_icrs | string | |
pbp_b3_bendesc_amo_prs | string | |
pbp_b3_bendesc_ehc | string | |
pbp_b3_bendesc_lim_crs | string | |
pbp_b3_bendesc_lim_icrs | string | |
pbp_b3_bendesc_lim_prs | string | |
pbp_b3_bendesc_numv_crs | double | |
pbp_b3_bendesc_numv_icrs | double | |
pbp_b3_bendesc_numv_prs | double | |
pbp_b3_bendesc_per_crs | string | |
pbp_b3_bendesc_per_icrs | string | |
pbp_b3_bendesc_per_prs | string | |
pbp_b3_bendesc_yn | string | |
pbp_b3_coins_ehc | string | |
pbp_b3_coins_pct_max_crs | double | |
pbp_b3_coins_pct_max_icrs | double | |
pbp_b3_coins_pct_max_prs | double | |
pbp_b3_coins_pct_mc | double | |
pbp_b3_coins_pct_mc_max_crs | double | |
pbp_b3_coins_pct_mc_max_icrs | double | |
pbp_b3_coins_pct_mc_max_prs | double | |
pbp_b3_coins_pct_mc_min_crs | double | |
pbp_b3_coins_pct_mc_min_icrs | double | |
pbp_b3_coins_pct_mc_min_prs | double | |
pbp_b3_coins_pct_min_crs | double | |
pbp_b3_coins_pct_min_icrs | double | |
pbp_b3_coins_pct_min_prs | double | |
pbp_b3_coins_pct_pos | double | |
pbp_b3_copay_amt | double | |
pbp_b3_copay_amt_max_crs | double | |
pbp_b3_copay_amt_max_icrs | double | |
pbp_b3_copay_amt_max_prs | double | |
pbp_b3_copay_amt_mc_max_crs | double | |
pbp_b3_copay_amt_mc_max_icrs | double | |
pbp_b3_copay_amt_mc_max_prs | double | |
pbp_b3_copay_amt_mc_min_crs | double | |
pbp_b3_copay_amt_mc_min_icrs | double | |
pbp_b3_copay_amt_mc_min_prs | double | |
pbp_b3_copay_amt_min_crs | double | |
pbp_b3_copay_amt_min_icrs | double | |
pbp_b3_copay_amt_min_prs | double | |
pbp_b3_copay_amtv_pos | double | |
pbp_b3_copay_ehc | string | |
pbp_b3_ded_amt | double | |
pbp_b3_ded_amt_pos | double | |
pbp_b3_maxenr_amt | double | |
pbp_b3_maxenr_amt_pos | double | |
pbp_b3_maxpln_amt_pos | double | |
pbp_b_3_ded_amt | double | |
pbp_b3_auth / pbp_b3_auth_yn / pbp_b3_auth_pos | INTENDED: prior-authorization required flags for CORF services (overall and at point-of-service/POS). All 100% NULL. | |
pbp_b3_coins_* (coins_yn, coins_yesno[_pos], coins_cov_mc/pos, coins_ehc, coins_pct_mc[_min/max], coins_pct_min/max_{crs,icrs,prs}, coins_pct_mc_min/max_{crs,icrs,prs}, coins_pct_pos) | INTENDED: the full coinsurance block for CORF cost-sharing — whether coinsurance applies, Medicare-covered flags, and percent values (min/max) broken out by the three CORF sub-benefits crs/icrs/prs and by enhanced (ehc) and POS variants. ALL 100% NULL. This is the core cost-sharing payload that is missing. | |
pbp_b3_copay_* (copay_yn, copay_yesno[_pos], copay_ehc, copay_amt, copay_amtv_pos, copay_amt_min/max_{crs,icrs,prs}, copay_amt_mc_min/max_{crs,icrs,prs}) | INTENDED: the full copay block — whether a copay applies and the dollar copay amounts (min/max, Medicare-covered mc variants) for the crs/icrs/prs CORF sub-benefits plus POS/enhanced variants. ALL 100% NULL. | |
pbp_b3_ded_* (ded_yn, ded_yesno_pos, pbp_b_3_ded_yesno, ded_amt, ded_amt_pos, pbp_b_3_ded_amt) | INTENDED: deductible flags and dollar amounts for CORF (note duplicate spellings ded_* and b_3_ded_*). ALL 100% NULL. | |
pbp_b3_maxenr_* (maxenr_yn, maxenr_yesno, maxenr_yn_pos, maxenr_per, maxenr_amt, maxenr_amt_pos) | INTENDED: per-enrollee maximum (cap) flags, period, and dollar amounts. ALL 100% NULL. | |
pbp_b3_maxpln_/maxplan_* (maxplan_yesno_pos, maxpln_cov_pos, maxpln_per_pos, maxpln_amt_pos) | INTENDED: plan-level maximum/cap coverage, period, and amount fields. ALL 100% NULL. | |
pbp_b3_bendesc_* (bendesc_yn, bendesc_ehc, bendesc_amo_{crs,icrs,prs}, bendesc_lim_{crs,icrs,prs}, bendesc_numv_{crs,icrs,prs}, bendesc_per_{crs,icrs,prs}) | INTENDED: benefit-description / limitation block — whether limits exist, amount/limit text, number-of-visits (numv) and the limit period for each CORF sub-benefit (crs = cardiac/comprehensive rehab service, icrs/prs = intensive & pulmonary rehab service variants). ALL 100% NULL. |
Query it
describe_data_source(source_fqn="medicare_silver.pbp_section_b3_corf") # the card, live query_substrate(sql="SELECT * FROM medicare_silver.pbp_section_b3_corf WHERE sha256_content_hash = '<value>' AND segment_id = '<value>' AND version = '<value>' LIMIT 100")
| Item | Value |
|---|---|
| Typed tools that read it | none; raw SQL |
| Identity key | contract_id |
| Join | how_to_join(source_fqn="medicare_silver.pbp_section_b3_corf") |
| Raw door | Athena (read-only via query_substrate): medicare_silver.pbp_section_b3_corf |
| Note | Grain-governed; live in Glue / query_substrate. Source family pbp_benefits. |
This page as markdown: /docs-md/data/medicare_silver_pbp_section_b3_corf.md · every page in one file: /llms-full.txt