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

  1. 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.
  2. 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.
  3. 3It is not usable for cost analysis in its current state.

Grain

KeyGrain
sha256_content_hashsegment_idversion
  1. 1There is NO valid business grain — the table never populated.
  2. 2Intended: one row per MA plan benefit package (contract_id × plan_id × segment_id) per quarterly PUF release for CORF Section B-3; but all plan-identifying columns are NULL.
  3. 3Empirically the 13,408 rows are hollow byte-identical duplicates within each (quarter × segment_id × version) group, collapsing to only 234 distinct full rows that contain no benefit data.
  4. 4Best treated as 3 quarterly snapshots (2018 Q2/Q3/Q4) of a failed extract.

How to read it

  1. 1Operationally the only correct use today is a data-quality / provenance check, e.g.
  2. 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.
  3. 3For actual MA outpatient-rehab benefit/cost-sharing data, use the populated sibling medicare_silver.pbp_section_b3_cardiac_rehab instead.

Traps

  1. 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.
  2. 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.
  3. 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. 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).
  5. 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.
  6. 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)

ColumnTypeMeaning
segment_idstringPBP 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).
versiondoublePUF 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_yeardoublePUF reporting/benefit year. Always 2018.0 for every row — the only year this CORF extract covers.
quarterdoubleCalendar 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_perioddateDate the data describes; always 2018-01-01. Single value across the whole table.
asserted_atdatePipeline 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_startdateBenefit-year start; always 2018-01-01.
effective_period_enddateBenefit-year end; always 2018-12-31.
cms_vintage_sequenceintInteger 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_revisionintVlada parser revision that produced the row; constant = 2 across all rows.
parser_artifact_hashstringSHA-256 of the parser artifact/output; one distinct value per source file (3 total). Provenance of the code that did the (failed) extraction.
source_urlstringCMS 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_hashstringSHA-256 of the raw source file content; 3 distinct values (one per quarterly zip). The cleanest snapshot/file discriminator.
bid_idstringINTENDED: 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_idstringINTENDED: MA contract id (Hxxxx/Rxxxx). 100% NULL. Cannot identify which plan/organization any row belongs to.
orgtypestringINTENDED: organization type (HMO/PPO/etc). 100% NULL.
pbp_a_ben_covstringINTENDED: Section A benefit-coverage indicator carried onto the B-3 row. 100% NULL.
pbp_a_plan_typestringINTENDED: plan type code. 100% NULL.
pbp_b3_authstring
pbp_b3_auth_posstring
pbp_b3_coins_cov_mcstring
pbp_b3_coins_cov_posstring
pbp_b3_coins_yesnostring
pbp_b3_coins_yesno_posstring
pbp_b3_coins_ynstring
pbp_b3_copay_yesnostring
pbp_b3_copay_yesno_posstring
pbp_b3_copay_ynstring
pbp_b3_ded_yesno_posstring
pbp_b3_ded_ynstring
pbp_b3_maxenr_perstring
pbp_b3_maxenr_yesnostring
pbp_b3_maxenr_ynstring
pbp_b3_maxenr_yn_posstring
pbp_b3_maxplan_yesno_posstring
pbp_b3_maxpln_cov_posstring
pbp_b3_maxpln_per_posstring
pbp_b3_refer_ynstringINTENDED: referral-required yes/no for CORF. 100% NULL.
pbp_b_3_ded_yesnostring
plan_idstringINTENDED: 3-digit plan id within the contract (PBP id). 100% NULL — the other half of the missing plan key.
pbp_b3_auth_ynstring
pbp_b3_bendesc_amo_crsstring
pbp_b3_bendesc_amo_icrsstring
pbp_b3_bendesc_amo_prsstring
pbp_b3_bendesc_ehcstring
pbp_b3_bendesc_lim_crsstring
pbp_b3_bendesc_lim_icrsstring
pbp_b3_bendesc_lim_prsstring
pbp_b3_bendesc_numv_crsdouble
pbp_b3_bendesc_numv_icrsdouble
pbp_b3_bendesc_numv_prsdouble
pbp_b3_bendesc_per_crsstring
pbp_b3_bendesc_per_icrsstring
pbp_b3_bendesc_per_prsstring
pbp_b3_bendesc_ynstring
pbp_b3_coins_ehcstring
pbp_b3_coins_pct_max_crsdouble
pbp_b3_coins_pct_max_icrsdouble
pbp_b3_coins_pct_max_prsdouble
pbp_b3_coins_pct_mcdouble
pbp_b3_coins_pct_mc_max_crsdouble
pbp_b3_coins_pct_mc_max_icrsdouble
pbp_b3_coins_pct_mc_max_prsdouble
pbp_b3_coins_pct_mc_min_crsdouble
pbp_b3_coins_pct_mc_min_icrsdouble
pbp_b3_coins_pct_mc_min_prsdouble
pbp_b3_coins_pct_min_crsdouble
pbp_b3_coins_pct_min_icrsdouble
pbp_b3_coins_pct_min_prsdouble
pbp_b3_coins_pct_posdouble
pbp_b3_copay_amtdouble
pbp_b3_copay_amt_max_crsdouble
pbp_b3_copay_amt_max_icrsdouble
pbp_b3_copay_amt_max_prsdouble
pbp_b3_copay_amt_mc_max_crsdouble
pbp_b3_copay_amt_mc_max_icrsdouble
pbp_b3_copay_amt_mc_max_prsdouble
pbp_b3_copay_amt_mc_min_crsdouble
pbp_b3_copay_amt_mc_min_icrsdouble
pbp_b3_copay_amt_mc_min_prsdouble
pbp_b3_copay_amt_min_crsdouble
pbp_b3_copay_amt_min_icrsdouble
pbp_b3_copay_amt_min_prsdouble
pbp_b3_copay_amtv_posdouble
pbp_b3_copay_ehcstring
pbp_b3_ded_amtdouble
pbp_b3_ded_amt_posdouble
pbp_b3_maxenr_amtdouble
pbp_b3_maxenr_amt_posdouble
pbp_b3_maxpln_amt_posdouble
pbp_b_3_ded_amtdouble
pbp_b3_auth / pbp_b3_auth_yn / pbp_b3_auth_posINTENDED: 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")
ItemValue
Typed tools that read itnone; raw SQL
Identity keycontract_id
Joinhow_to_join(source_fqn="medicare_silver.pbp_section_b3_corf")
Raw doorAthena (read-only via query_substrate): medicare_silver.pbp_section_b3_corf
NoteGrain-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