# MA pbp section c

`medicare_silver.pbp_section_c` · Medicare Advantage, Part D, Medicaid · status partial

Section C: Out-of-pocket maximums + optional supplemental benefits. 226 cols. Coverage: All years.

**Grain.** One row per Medicare Advantage plan segment, per benefit year, per quarterly PUF release, per plan-submission version, per legacy outpatient-benefit-group. The verified-unique key is contract_id + plan_id + segment_id + report_year + quarter + version + pbp_c_outpt_group_num_id, which yields exactly 170,652 distinct combinations = the 170,652 row_count (full uniqueness confirmed). The last column only matters for 2004-2006 rows; for 2012+ it is NULL and the effective grain collapses to contract_id+plan_id+segment_id+report_year+quarter+version.

**How to use it.** Latest out-of-network inpatient coinsurance for 2026 MA plans: SELECT contract_id, plan_id, segment_id, pbp_c_oon_coins_iph_pct FROM medicare_silver.pbp_section_c WHERE report_year=2026 AND quarter=(SELECT max(quarter) FROM medicare_silver.pbp_section_c WHERE report_year=2026) AND pbp_c_oon_coins_iph_pct IS NOT NULL. This answers 'what does each MA plan charge an enrollee in coinsurance for an out-of-network inpatient hospital stay in 2026' (real values cluster at 50%). Always pin quarter to the max for the year to avoid double-counting re-releases, and remember in-network cost-sharing columns are NULL for 2012+.

**Traps.**
- BIGGEST TRAP — in-network cost-sharing is empty for all modern years. Every pbp_c in-network benefit column (general deductible, in-network MOOP/gen_oop_med_amt, inpatient iha/iph/ihs copay & coinsurance, outpatient groups 1-5, gated_vs_open, auth/referral flags) is 100% NULL for benefit years 2012-2026. Only the OON (out-of-network), POS (point-of-service), and VT (visitor/travel) families are populated post-2012 (2023: pos 93/130 cols, oon 73/91, vt 3/3). In-network values exist ONLY in 2004-2006, and sparsely. Do NOT use this table to look up a current MA plan's in-network deductible/copay/MOOP — those columns are blank.
- No is_current / no snapshot dedup flag. The same plan-year is re-published every quarter (and at multiple submission versions), all stored as separate rows. quarter and version are BOTH part of the grain. To get the 'latest' view of a plan-year you must filter to the max quarter (and max version) per contract_id+plan_id+segment_id+report_year yourself — nothing does it for you. Naively counting rows double-counts plans across quarters.
- bid_id looks like the natural key but is NULL for all 2001-2006 rows (8,590 rows) and only 17,463 distinct vs 20,668 distinct contract+plan+segment. When non-null it is exactly contract_id||'_'||plan_id||'_'||segment_id. Use contract_id+plan_id+segment_id (not bid_id) for joins across the full history.
- pbp_c_outpt_group_num_id is the hidden grain disambiguator but is NULL 97.9% of the time — it only splits a plan into multiple rows (outpatient groups 1-10) in 2004-2006. For 2012+ ignore it. observed_period is also a false key: it equals Jan-1-of-report_year and is identical across a year's quarterly re-releases, so it is coarser than report_year+quarter.
- Time coverage has holes: benefit years 2007-2011 are entirely absent (data jumps from 2006 straight to 2012) and 2020 is missing its Q3 release. report_year is the benefit/effective year (what plan terms apply to), NOT a publication date. asserted_at (only 2 dates) is the Vlada ingest date, not a data dimension. All cost amounts are USD and all coinsurance fields are percentages 0-100; _yn flags use '1'=yes / '2'=no.

| column | type | meaning |
|---|---|---|
| contract_id | string | CMS MA contract id (e.g. H0022, R5342). 1,565 distinct. Part of identity. With plan_id+segment_id forms the plan-segment key; equals the prefix of bid_id. |
| plan_id | string | Plan number within the contract (e.g. '001','806'). 656 distinct. Identity. |
| segment_id | string | Plan segment ('0','1',...). 26 distinct, usually '0'. Identity; segments are geographic/benefit sub-divisions of a plan. |
| version | double | PBP submission/resubmission version of the plan's bid, 0-27 (double). Higher versions = later resubmissions and progressively rarer (v0=8,590 rows are the 2001-2006 legacy rows; v3 peak ~26k). Part of grain — the same plan-year-quarter can appear at multiple versions. |
| report_year | double | Benefit year the plan terms are effective for (double, 2001-2026). 21 distinct. Equals year(effective_period_start) and year(observed_period). Primary time dimension. |
| quarter | double | Which quarterly CMS PUF release the row came from (1-4, double). Older years carry only Q1; 2018/2019/2023 carry Q1-Q4; each quarter re-publishes the FULL plan set (e.g. 2019 Q1=Q2=Q3=Q4=5,002 rows). Part of grain — needed to separate re-releases of the same benefit year. |
| bid_id | string | Concatenated id = contract_id//'_'//plan_id//'_'//segment_id (e.g. 'H0022_001_0'). VERIFIED equal to the concat for all non-null rows. TRAP: NULL for all 2001-2006 rows (8,590 rows) and version=0 there, so it is NOT a universal key — use contract_id+plan_id+segment_id instead. 17,463 distinct (< the 20,668 distinct plan-segments because of the nulls). |
| orgtype | string | CMS organization type code (string, zero-padded). Domain observed: '01' (HMO/local CCP, 161,262 rows, dominant), '04','05','06','11','14'. Identifies the MA plan org structure. |
| pbp_a_ben_cov | string | Benefit-coverage indicator carried from PBP Section A. Domain: '1' (166,700 rows) and '2' (3,952). One of the very few non-pbp_c columns populated in modern years. |
| pbp_a_plan_type | string | MA plan type code from Section A (string). Domain: '01' (HMO, 89k), '04' (Local PPO, 54k), '02' (HMO-POS, 18k), '31','18','09','48','26', etc. Use this to distinguish HMO vs PPO vs POS plans. |
| pbp_c_accpt_new_bene_beg | double |  |
| pbp_c_accpt_new_bene_end | double |  |
| pbp_c_bene_contact | string |  |
| pbp_c_coins_iha_bgnd_intrvl1 | double |  |
| pbp_c_coins_iha_bgnd_intrvl2 | double |  |
| pbp_c_coins_iha_bgnd_intrvl3 | double |  |
| pbp_c_coins_iha_cov | string |  |
| pbp_c_coins_iha_endd_intrvl1 | double |  |
| pbp_c_coins_iha_endd_intrvl2 | double |  |
| pbp_c_coins_iha_endd_intrvl3 | double |  |
| pbp_c_coins_iha_intrvl_num | string |  |
| pbp_c_coins_iha_pct | double |  |
| pbp_c_coins_iha_pct_intrvl1 | double |  |
| pbp_c_coins_iha_pct_intrvl2 | double |  |
| pbp_c_coins_iha_pct_intrvl3 | double |  |
| pbp_c_coins_ihs_ben_type | string |  |
| pbp_c_coins_ihs_yn | string |  |
| pbp_c_coins_iph_bgnd_intrvl1 | double |  |
| pbp_c_coins_iph_bgnd_intrvl2 | double |  |
| pbp_c_coins_iph_bgnd_intrvl3 | double |  |
| pbp_c_coins_iph_cov | string |  |
| pbp_c_coins_iph_endd_intrvl1 | double |  |
| pbp_c_coins_iph_endd_intrvl2 | double |  |
| pbp_c_coins_iph_endd_intrvl3 | double |  |
| pbp_c_coins_iph_intrvl_num | string |  |
| pbp_c_coins_iph_pct | double |  |
| pbp_c_coins_iph_pct_intrvl1 | double |  |
| pbp_c_coins_iph_pct_intrvl2 | double |  |
| pbp_c_coins_iph_pct_intrvl3 | double |  |
| pbp_c_copay_iha_amt_intrvl1 | double |  |
| pbp_c_copay_iha_amt_intrvl2 | double |  |
| pbp_c_copay_iha_amt_intrvl3 | double |  |
| pbp_c_copay_iha_bgnd_intrvl1 | double |  |
| pbp_c_copay_iha_bgnd_intrvl2 | double |  |
| pbp_c_copay_iha_bgnd_intrvl3 | double |  |
| pbp_c_copay_iha_endd_intrvl1 | double |  |
| pbp_c_copay_iha_endd_intrvl2 | double |  |
| pbp_c_copay_iha_endd_intrvl3 | double |  |
| pbp_c_copay_iha_intrvl_num | string |  |
| pbp_c_copay_iha_ps_amt | double |  |
| pbp_c_copay_ihs_ben_type | string |  |
| pbp_c_copay_ihs_yn | string |  |
| pbp_c_copay_iph_amt_intrvl1 | double |  |
| pbp_c_copay_iph_amt_intrvl2 | double |  |
| pbp_c_copay_iph_amt_intrvl3 | double |  |
| pbp_c_copay_iph_bgnd_intrvl1 | double |  |
| pbp_c_copay_iph_bgnd_intrvl2 | double |  |
| pbp_c_copay_iph_bgnd_intrvl3 | double |  |
| pbp_c_copay_iph_endd_intrvl1 | double |  |
| pbp_c_copay_iph_endd_intrvl2 | double |  |
| pbp_c_copay_iph_endd_intrvl3 | double |  |
| pbp_c_copay_iph_intrvl_num | string |  |
| pbp_c_copay_iph_ps_amt | double |  |
| pbp_c_csc_clause_und_bba | string |  |
| pbp_c_dif_coor_care_outside | string |  |
| pbp_c_dif_coor_care_within | string |  |
| pbp_c_dualelig_freq_a | string |  |
| pbp_c_dualelig_freq_b | string |  |
| pbp_c_dualelig_freq_c | string |  |
| pbp_c_dualelig_freq_d | string |  |
| pbp_c_gated_vs_open | string |  |
| pbp_c_gen_auth | string |  |
| pbp_c_gen_auth_subcats | string |  |
| pbp_c_gen_auth_viol | string |  |
| pbp_c_gen_auth_viollist | string |  |
| pbp_c_gen_auth_yn | string |  |
| pbp_c_gen_bendesc_subcats | string |  |
| pbp_c_gen_ded_amt | double |  |
| pbp_c_gen_ded_cost_type | string |  |
| pbp_c_gen_ded_med_cat | string |  |
| pbp_c_gen_ded_med_yn | string |  |
| pbp_c_gen_ded_nm_amt | double |  |
| pbp_c_gen_ded_nm_cat | string |  |
| pbp_c_gen_ded_nm_yn | string |  |
| pbp_c_gen_ded_yn | string |  |
| pbp_c_gen_maxenr_amt | double |  |
| pbp_c_gen_maxenr_cost_type | string |  |
| pbp_c_gen_maxenr_per | string |  |
| pbp_c_gen_maxenr_yn | string |  |
| pbp_c_gen_maxplan_amt | double |  |
| pbp_c_gen_maxplan_cost_type | string |  |
| pbp_c_gen_maxplan_cov | string |  |
| pbp_c_gen_maxplan_per | string |  |
| pbp_c_gen_maxplan_yn | string |  |
| pbp_c_gen_offer_ben_yn | string |  |
| pbp_c_gen_oon_pre_yn | string |  |
| pbp_c_gen_oop_med_amt | double |  |
| pbp_c_gen_oop_med_yn | string |  |
| pbp_c_gen_oop_nm_amt | double |  |
| pbp_c_gen_oop_nm_cat | string |  |
| pbp_c_gen_oop_nm_per | string |  |
| pbp_c_gen_oop_nm_yn | string |  |
| pbp_c_gen_referral_subcats | string |  |
| pbp_c_gen_referral_yn | string |  |
| pbp_c_ihs_auth | string |  |
| pbp_c_ihs_auth_yn | string |  |
| pbp_c_ihs_ded_acu_amt | double |  |
| pbp_c_ihs_ded_comb_amt | double |  |
| pbp_c_ihs_ded_cost_type | string |  |
| pbp_c_ihs_ded_psyc_amt | double |  |
| pbp_c_ihs_ded_yn | string |  |
| pbp_c_ihs_maxenr_acu_amt | double |  |
| pbp_c_ihs_maxenr_comb_amt | double |  |
| pbp_c_ihs_maxenr_cost_type | string |  |
| pbp_c_ihs_maxenr_psyc_amt | double |  |
| pbp_c_ihs_maxenr_yn | string |  |
| pbp_c_ihs_maxplan_acu_amt | double |  |
| pbp_c_ihs_maxplan_comb_amt | double |  |
| pbp_c_ihs_maxplan_cost_type | string |  |
| pbp_c_ihs_maxplan_psyc_amt | double |  |
| pbp_c_ihs_maxplan_yn | string |  |
| pbp_c_oon_bendesc_bens | string |  |
| pbp_c_oon_bendesc_cats | string |  |
| pbp_c_oon_coins_iha_bgnd_i1 | double |  |
| pbp_c_oon_coins_iha_bgnd_i2 | double |  |
| pbp_c_oon_coins_iha_bgnd_i3 | double |  |
| pbp_c_oon_coins_iha_endd_i1 | double |  |
| pbp_c_oon_coins_iha_endd_i2 | double |  |
| pbp_c_oon_coins_iha_endd_i3 | double |  |
| pbp_c_oon_coins_iha_intrvl_num | string |  |
| pbp_c_oon_coins_iha_mc_cost_yn | string |  |
| pbp_c_oon_coins_iha_pct | double |  |
| pbp_c_oon_coins_iha_pct_i1 | double |  |
| pbp_c_oon_coins_iha_pct_i2 | double |  |
| pbp_c_oon_coins_iha_pct_i3 | double |  |
| pbp_c_oon_coins_ihs_ben_type | string |  |
| pbp_c_oon_coins_ihs_yn | string |  |
| pbp_c_oon_coins_iph_bgnd_i1 | double |  |
| pbp_c_oon_coins_iph_bgnd_i2 | double |  |
| pbp_c_oon_coins_iph_bgnd_i3 | double |  |
| pbp_c_oon_coins_iph_endd_i1 | double |  |
| pbp_c_oon_coins_iph_endd_i2 | double |  |
| pbp_c_oon_coins_iph_endd_i3 | double |  |
| pbp_c_oon_coins_iph_intrvl_num | string |  |
| pbp_c_oon_coins_iph_mc_cost_yn | string |  |
| pbp_c_oon_coins_iph_pct | double |  |
| pbp_c_oon_coins_iph_pct_i1 | double |  |
| pbp_c_oon_coins_iph_pct_i2 | double |  |
| pbp_c_oon_coins_iph_pct_i3 | double |  |
| pbp_c_oon_coins_snf_bgnd_i1 | double |  |
| pbp_c_oon_coins_snf_bgnd_i2 | double |  |
| pbp_c_oon_coins_snf_bgnd_i3 | double |  |
| pbp_c_oon_coins_snf_endd_i1 | double |  |
| pbp_c_oon_coins_snf_endd_i2 | double |  |
| pbp_c_oon_coins_snf_endd_i3 | double |  |
| pbp_c_oon_coins_snf_intrvl_num | string |  |
| pbp_c_oon_coins_snf_mc_cost_yn | string |  |
| pbp_c_oon_coins_snf_pct | double |  |
| pbp_c_oon_coins_snf_pct_i1 | double |  |
| pbp_c_oon_coins_snf_pct_i2 | double |  |
| pbp_c_oon_coins_snf_pct_i3 | double |  |
| pbp_c_oon_coins_snf_yn | string |  |
| pbp_c_oon_copay_iha_amt_i1 | double |  |
| pbp_c_oon_copay_iha_amt_i2 | double |  |
| pbp_c_oon_copay_iha_amt_i3 | double |  |
| pbp_c_oon_copay_iha_bgnd_i1 | double |  |
| pbp_c_oon_copay_iha_bgnd_i2 | double |  |
| pbp_c_oon_copay_iha_bgnd_i3 | double |  |
| pbp_c_oon_copay_iha_endd_i1 | double |  |
| pbp_c_oon_copay_iha_endd_i2 | double |  |
| pbp_c_oon_copay_iha_endd_i3 | double |  |
| pbp_c_oon_copay_iha_intrvl_num | string |  |
| pbp_c_oon_copay_iha_mc_cost_yn | string |  |
| pbp_c_oon_copay_iha_ps_amt | double |  |
| pbp_c_oon_copay_ihs_ben_type | string |  |
| pbp_c_oon_copay_ihs_yn | string |  |
| pbp_c_oon_copay_iph_amt_i1 | double |  |
| pbp_c_oon_copay_iph_amt_i2 | double |  |
| pbp_c_oon_copay_iph_amt_i3 | double |  |
| pbp_c_oon_copay_iph_bgnd_i1 | double |  |
| pbp_c_oon_copay_iph_bgnd_i2 | double |  |
| pbp_c_oon_copay_iph_bgnd_i3 | double |  |
| pbp_c_oon_copay_iph_endd_i1 | double |  |
| pbp_c_oon_copay_iph_endd_i2 | double |  |
| pbp_c_oon_copay_iph_endd_i3 | double |  |
| pbp_c_oon_copay_iph_intrvl_num | string |  |
| pbp_c_oon_copay_iph_mc_cost_yn | string |  |
| pbp_c_oon_copay_iph_ps_amt | double |  |
| pbp_c_oon_copay_snf_amt | double |  |
| pbp_c_oon_copay_snf_amt_i1 | double |  |
| pbp_c_oon_copay_snf_amt_i2 | double |  |
| pbp_c_oon_copay_snf_amt_i3 | double |  |
| pbp_c_oon_copay_snf_bgnd_i1 | double |  |
| pbp_c_oon_copay_snf_bgnd_i2 | double |  |
| pbp_c_oon_copay_snf_bgnd_i3 | double |  |
| pbp_c_oon_copay_snf_endd_i1 | double |  |
| pbp_c_oon_copay_snf_endd_i2 | double |  |
| pbp_c_oon_copay_snf_endd_i3 | double |  |
| pbp_c_oon_copay_snf_intrvl_num | string |  |
| pbp_c_oon_copay_snf_mc_cost_yn | string |  |
| pbp_c_oon_copay_snf_yn | string |  |
| pbp_c_oon_ihs_ded_acu_amt | double |  |
| pbp_c_oon_ihs_ded_comb_amt | double |  |
| pbp_c_oon_ihs_ded_cost_type | string |  |
| pbp_c_oon_ihs_ded_psyc_amt | double |  |
| pbp_c_oon_ihs_ded_yn | string |  |
| pbp_c_oon_mc_bendesc_cats | string |  |
| pbp_c_oon_nmc_bendesc_cats | string |  |
| pbp_c_oon_outpt_group_num | double |  |
| pbp_c_oon_snf_ded_amt | double |  |
| pbp_c_oon_snf_ded_yn | string |  |
| pbp_c_oon_yn | string |  |
| pbp_c_other_exc | string |  |
| pbp_c_outpt1_auth | string |  |
| pbp_c_outpt1_bendesc_cats | string |  |
| pbp_c_outpt1_coins_cov | string |  |
| pbp_c_outpt1_coins_max_pct | double |  |
| pbp_c_outpt1_coins_min_pct | double |  |
| pbp_c_outpt1_coins_yn | string |  |
| pbp_c_outpt1_copay_max_amt | double |  |
| pbp_c_outpt1_copay_min_amt | double |  |
| pbp_c_outpt1_copay_yn | string |  |
| pbp_c_outpt1_ded_amt | double |  |
| pbp_c_outpt1_ded_yn | string |  |
| pbp_c_outpt1_group_num | string |  |
| pbp_c_outpt1_maxenr_amt | double |  |
| pbp_c_outpt1_maxenr_per | string |  |
| pbp_c_outpt1_maxenr_yn | string |  |
| pbp_c_outpt1_maxplan_amt | double |  |
| pbp_c_outpt1_maxplan_cov | string |  |
| pbp_c_outpt1_maxplan_per | string |  |
| pbp_c_outpt1_maxplan_yn | string |  |
| pbp_c_outpt2_auth | string |  |
| pbp_c_outpt2_bendesc_cats | string |  |
| pbp_c_outpt2_coins_cov | string |  |
| pbp_c_outpt2_coins_max_pct | double |  |
| pbp_c_outpt2_coins_min_pct | double |  |
| pbp_c_outpt2_coins_yn | string |  |
| pbp_c_outpt2_copay_max_amt | double |  |
| pbp_c_outpt2_copay_min_amt | double |  |
| pbp_c_outpt2_copay_yn | string |  |
| pbp_c_outpt2_ded_amt | double |  |
| pbp_c_outpt2_ded_yn | string |  |
| pbp_c_outpt2_maxenr_amt | double |  |
| pbp_c_outpt2_maxenr_per | string |  |
| pbp_c_outpt2_maxenr_yn | string |  |
| pbp_c_outpt2_maxplan_amt | double |  |
| pbp_c_outpt2_maxplan_cov | string |  |
| pbp_c_outpt2_maxplan_per | string |  |
| pbp_c_outpt2_maxplan_yn | string |  |
| pbp_c_outpt3_auth | string |  |
| pbp_c_outpt3_bendesc_cats | string |  |
| pbp_c_outpt3_coins_cov | string |  |
| pbp_c_outpt3_coins_max_pct | double |  |
| pbp_c_outpt3_coins_min_pct | double |  |
| pbp_c_outpt3_coins_yn | string |  |
| pbp_c_outpt3_copay_max_amt | double |  |
| pbp_c_outpt3_copay_min_amt | double |  |
| pbp_c_outpt3_copay_yn | string |  |
| pbp_c_outpt3_ded_amt | double |  |
| pbp_c_outpt3_ded_yn | string |  |
| pbp_c_outpt3_maxenr_amt | double |  |
| pbp_c_outpt3_maxenr_per | string |  |
| pbp_c_outpt3_maxenr_yn | string |  |
| pbp_c_outpt3_maxplan_amt | double |  |
| pbp_c_outpt3_maxplan_cov | string |  |
| pbp_c_outpt3_maxplan_per | string |  |
| pbp_c_outpt3_maxplan_yn | string |  |
| pbp_c_outpt4_auth | string |  |
| pbp_c_outpt4_bendesc_cats | string |  |
| pbp_c_outpt4_coins_cov | string |  |
| pbp_c_outpt4_coins_max_pct | double |  |
| pbp_c_outpt4_coins_min_pct | double |  |
| pbp_c_outpt4_coins_yn | string |  |
| pbp_c_outpt4_copay_max_amt | double |  |
| pbp_c_outpt4_copay_min_amt | double |  |
| pbp_c_outpt4_copay_yn | string |  |
| pbp_c_outpt4_ded_amt | double |  |
| pbp_c_outpt4_ded_yn | string |  |
| pbp_c_outpt4_maxenr_amt | double |  |
| pbp_c_outpt4_maxenr_per | string |  |
| pbp_c_outpt4_maxenr_yn | string |  |
| pbp_c_outpt4_maxplan_amt | double |  |
| pbp_c_outpt4_maxplan_cov | string |  |
| pbp_c_outpt4_maxplan_per | string |  |
| pbp_c_outpt4_maxplan_yn | string |  |
| pbp_c_outpt5_auth | string |  |
| pbp_c_outpt5_bendesc_cats | string |  |
| pbp_c_outpt5_coins_cov | string |  |
| pbp_c_outpt5_coins_max_pct | double |  |
| pbp_c_outpt5_coins_min_pct | double |  |
| pbp_c_outpt5_coins_yn | string |  |
| pbp_c_outpt5_copay_max_amt | double |  |
| pbp_c_outpt5_copay_min_amt | double |  |
| pbp_c_outpt5_copay_yn | string |  |
| pbp_c_outpt5_ded_amt | double |  |
| pbp_c_outpt5_ded_yn | string |  |
| pbp_c_outpt5_maxenr_amt | double |  |
| pbp_c_outpt5_maxenr_per | string |  |
| pbp_c_outpt5_maxenr_yn | string |  |
| pbp_c_outpt5_maxplan_amt | double |  |
| pbp_c_outpt5_maxplan_cov | string |  |
| pbp_c_outpt5_maxplan_per | string |  |
| pbp_c_outpt5_maxplan_yn | string |  |
| pbp_c_outpt_bendesc_cats | string |  |
| pbp_c_outpt_coins_cov | string |  |
| pbp_c_outpt_coins_max_pct | double |  |
| pbp_c_outpt_coins_min_pct | double |  |
| pbp_c_outpt_coins_yn | string |  |
| pbp_c_outpt_copay_max_amt | double |  |
| pbp_c_outpt_copay_min_amt | double |  |
| pbp_c_outpt_copay_yn | string |  |
| pbp_c_outpt_group_num | string |  |
| pbp_c_outpt_group_num_id | string | Legacy disambiguator: outpatient-benefit group number '1'-'10'. TRAP: NULL for 167,181 of 170,652 rows (97.9%); only non-null in 2004-2006, where a single plan is split into up to 10 rows (one per outpatient benefit group). Required to make the grain unique for those legacy years. |
| pbp_c_pos_auth | string |  |
| pbp_c_pos_auth_bens | string |  |
| pbp_c_pos_auth_mc_subcats | string |  |
| pbp_c_pos_auth_nmc_subcats | string |  |
| pbp_c_pos_auth_subcats | string |  |
| pbp_c_pos_auth_yn | string |  |
| pbp_c_pos_bendesc_amo | string |  |
| pbp_c_pos_bendesc_bens | string |  |
| pbp_c_pos_bendesc_subcats | string |  |
| pbp_c_pos_coins_iha_bgnd_i1 | double |  |
| pbp_c_pos_coins_iha_bgnd_i2 | double |  |
| pbp_c_pos_coins_iha_bgnd_i3 | double |  |
| pbp_c_pos_coins_iha_endd_i1 | double |  |
| pbp_c_pos_coins_iha_endd_i2 | double |  |
| pbp_c_pos_coins_iha_endd_i3 | double |  |
| pbp_c_pos_coins_iha_intrvl_num | string |  |
| pbp_c_pos_coins_iha_mc_cost_yn | string |  |
| pbp_c_pos_coins_iha_pct | double |  |
| pbp_c_pos_coins_iha_pct_i1 | double |  |
| pbp_c_pos_coins_iha_pct_i2 | double |  |
| pbp_c_pos_coins_iha_pct_i3 | double |  |
| pbp_c_pos_coins_ihs_ben_type | string |  |
| pbp_c_pos_coins_ihs_yn | string |  |
| pbp_c_pos_coins_iph_bgnd_i1 | double |  |
| pbp_c_pos_coins_iph_bgnd_i2 | double |  |
| pbp_c_pos_coins_iph_bgnd_i3 | double |  |
| pbp_c_pos_coins_iph_endd_i1 | double |  |
| pbp_c_pos_coins_iph_endd_i2 | double |  |
| pbp_c_pos_coins_iph_endd_i3 | double |  |
| pbp_c_pos_coins_iph_intrvl_num | string |  |
| pbp_c_pos_coins_iph_mc_cost_yn | string |  |
| pbp_c_pos_coins_iph_pct | double |  |
| pbp_c_pos_coins_iph_pct_i1 | double |  |
| pbp_c_pos_coins_iph_pct_i2 | double |  |
| pbp_c_pos_coins_iph_pct_i3 | double |  |
| pbp_c_pos_coins_snf_bgnd_i1 | double |  |
| pbp_c_pos_coins_snf_bgnd_i2 | double |  |
| pbp_c_pos_coins_snf_bgnd_i3 | double |  |
| pbp_c_pos_coins_snf_endd_i1 | double |  |
| pbp_c_pos_coins_snf_endd_i2 | double |  |
| pbp_c_pos_coins_snf_endd_i3 | double |  |
| pbp_c_pos_coins_snf_intrvl_num | string |  |
| pbp_c_pos_coins_snf_mc_cost_yn | string |  |
| pbp_c_pos_coins_snf_pct | double |  |
| pbp_c_pos_coins_snf_pct_i1 | double |  |
| pbp_c_pos_coins_snf_pct_i2 | double |  |
| pbp_c_pos_coins_snf_pct_i3 | double |  |
| pbp_c_pos_coins_snf_yn | string |  |
| pbp_c_pos_comb_ded_amt | double |  |
| pbp_c_pos_copay_iha_amt_i1 | double |  |
| pbp_c_pos_copay_iha_amt_i2 | double |  |
| pbp_c_pos_copay_iha_amt_i3 | double |  |
| pbp_c_pos_copay_iha_bgnd_i1 | double |  |
| pbp_c_pos_copay_iha_bgnd_i2 | double |  |
| pbp_c_pos_copay_iha_bgnd_i3 | double |  |
| pbp_c_pos_copay_iha_endd_i1 | double |  |
| pbp_c_pos_copay_iha_endd_i2 | double |  |
| pbp_c_pos_copay_iha_endd_i3 | double |  |
| pbp_c_pos_copay_iha_intrvl_num | string |  |
| pbp_c_pos_copay_iha_mc_cost_yn | string |  |
| pbp_c_pos_copay_iha_ps_amt | double |  |
| pbp_c_pos_copay_ihs_ben_type | string |  |
| pbp_c_pos_copay_ihs_yn | string |  |
| pbp_c_pos_copay_iph_amt_i1 | double |  |
| pbp_c_pos_copay_iph_amt_i2 | double |  |
| pbp_c_pos_copay_iph_amt_i3 | double |  |
| pbp_c_pos_copay_iph_bgnd_i1 | double |  |
| pbp_c_pos_copay_iph_bgnd_i2 | double |  |
| pbp_c_pos_copay_iph_bgnd_i3 | double |  |
| pbp_c_pos_copay_iph_endd_i1 | double |  |
| pbp_c_pos_copay_iph_endd_i2 | double |  |
| pbp_c_pos_copay_iph_endd_i3 | double |  |
| pbp_c_pos_copay_iph_intrvl_num | string |  |
| pbp_c_pos_copay_iph_mc_cost_yn | string |  |
| pbp_c_pos_copay_iph_ps_amt | double |  |
| pbp_c_pos_copay_snf_amt | double |  |
| pbp_c_pos_copay_snf_amt_i1 | double |  |
| pbp_c_pos_copay_snf_amt_i2 | double |  |
| pbp_c_pos_copay_snf_amt_i3 | double |  |
| pbp_c_pos_copay_snf_bgnd_i1 | double |  |
| pbp_c_pos_copay_snf_bgnd_i2 | double |  |
| pbp_c_pos_copay_snf_bgnd_i3 | double |  |
| pbp_c_pos_copay_snf_endd_i1 | double |  |
| pbp_c_pos_copay_snf_endd_i2 | double |  |
| pbp_c_pos_copay_snf_endd_i3 | double |  |
| pbp_c_pos_copay_snf_intrvl_num | string |  |
| pbp_c_pos_copay_snf_mc_cost_yn | string |  |
| pbp_c_pos_copay_snf_yn | string |  |
| pbp_c_pos_ded_amt | double |  |
| pbp_c_pos_ded_yn | string |  |
| pbp_c_pos_iha_ded_amt | double |  |
| pbp_c_pos_iha_maxplan_per | string |  |
| pbp_c_pos_iha_maxplan_per_d | string |  |
| pbp_c_pos_ihp_maxplan_per | string |  |
| pbp_c_pos_ihp_maxplan_per_d | string |  |
| pbp_c_pos_ihs_ded_type | string |  |
| pbp_c_pos_ihs_ded_yn | string |  |
| pbp_c_pos_ihs_maxplan_acu_amt | double |  |
| pbp_c_pos_ihs_maxplan_comb_amt | double |  |
| pbp_c_pos_ihs_maxplan_per | string |  |
| pbp_c_pos_ihs_maxplan_per_d | string |  |
| pbp_c_pos_ihs_maxplan_psyc_amt | double |  |
| pbp_c_pos_ihs_maxplan_type | string |  |
| pbp_c_pos_ihs_maxplan_yn | string |  |
| pbp_c_pos_iph_ded_amt | double |  |
| pbp_c_pos_maxenr_oopc_amt | double |  |
| pbp_c_pos_maxenr_oopc_per | string |  |
| pbp_c_pos_maxenr_oopc_per_d | string |  |
| pbp_c_pos_maxenr_oopc_yn | string |  |
| pbp_c_pos_maxplan_amt | double |  |
| pbp_c_pos_maxplan_bens | string |  |
| pbp_c_pos_maxplan_mc_subcats | string |  |
| pbp_c_pos_maxplan_nmc_subcats | string |  |
| pbp_c_pos_maxplan_per | string |  |
| pbp_c_pos_maxplan_per_d | string |  |
| pbp_c_pos_maxplan_subcats | string |  |
| pbp_c_pos_maxplan_yn | string |  |
| pbp_c_pos_mc_bendesc_subcats | string |  |
| pbp_c_pos_nmc_bendesc_subcats | string |  |
| pbp_c_pos_outpt_group_num | double |  |
| pbp_c_pos_refer_benefit_bens | string |  |
| pbp_c_pos_refer_mc_subcats | string |  |
| pbp_c_pos_refer_nmc_subcats | string |  |
| pbp_c_pos_referral_subcats | string |  |
| pbp_c_pos_referral_yn | string |  |
| pbp_c_pos_snf_ded_amt | double |  |
| pbp_c_pos_snf_ded_yn | string |  |
| pbp_c_pos_state_limit_yn | string |  |
| pbp_c_pos_territories_yn | string |  |
| pbp_c_pos_yn | string |  |
| pbp_c_prof_monitor_care | string |  |
| pbp_c_prof_part | string |  |
| pbp_c_serv_prior_esd | string |  |
| pbp_c_special_avail | string |  |
| pbp_c_vt_geographic_area | string |  |
| pbp_c_vt_us_mo | string |  |
| pbp_c_vt_us_yn | string |  |
| observed_period | date | Snapshot date = Jan 1 of report_year (date). 21 distinct. TRAP: identical for all quarterly re-releases of a year, so it is COARSER than report_year+quarter and cannot separate quarters in the grain (using it instead of year+quarter drops you to 87,877 distinct). |
| asserted_at | date | Vlada load/ingest date (date). Only 2 values: 2026-05-16 (initial load of Q1 + all legacy years) and 2026-05-20 (backfill of the extra quarterly re-releases). A load-batch marker, NOT a benefit dimension. |
| effective_period_start | date |  |
| effective_period_end | date |  |
| cms_vintage_sequence | int | Integer 1-4 marking ingest vintage/order of the source files (1=74,378 rows, 2,3,4 smaller). Provenance ordering, correlated with but distinct from quarter; do not use as a benefit field. |
| parse_revision | int | Parser revision integer (2 distinct values). Silver-tier provenance — which version of the extraction code produced the row. |
| parser_artifact_hash | string | Hash of the parser artifact (35 distinct, one per source file). Provenance. |
| source_url | string | Exact CMS PBP PUF zip the row came from, e.g. .../pbp-benefits-2019-q1.zip or .../pbp-benefits-2024-quarter-3.zip. 35 distinct = one per (report_year, quarter). Full lineage. |
| sha256_content_hash | string | SHA-256 of the source file content (35 distinct, 1:1 with source_url). Provenance/integrity. |
| pbp_c_* (in-network cost-sharing families: coins_*, copay_*, gen_*, ihs_*, outpt1_*..outpt5_*, outpt_*, accpt_*, dif_*, dualelig_*, gated_vs_open, *_auth*, *_ded_*, *_maxenr_*, *_maxplan_*, *_oop_*) |  | The core in-network medical cost-sharing detail: inpatient hospital acute (iha) / psych (iph,ihs) copay & coinsurance by interval, outpatient service groups 1-5 (copay/coins min-max, deductible, plan max), general deductible (gen_ded_amt), in-network maximum-out-of-pocket (gen_oop_med_amt / gen_maxenr_amt), prior-auth & referral flags, gated-vs-open. CRITICAL TRAP: these are 100% NULL for every benefit year 2012-2026. They carry values ONLY in 2004-2006 (and even there sparsely: e.g. 2006 iph coinsurance populated on 2,017 of 3,516 rows). Amounts are USD; coinsurance fields are percent (0-100); _yn flags are '1'=yes/'2'=no. |
| pbp_c_oon_* (out-of-network family, ~91 cols) |  | Out-of-network cost-sharing for the plan: oon_yn (offers OON?), OON inpatient/SNF coinsurance pct (oon_coins_iph_pct, oon_coins_iha_pct, oon_coins_snf_pct — real values e.g. 50% common for OON inpatient), OON copays, OON deductibles, OON benefit-description category lists. POPULATED in modern years (2023: 73/91 cols; 2026: oon_yn on 2,600 rows). This is one of only three benefit families with data post-2012. |
| pbp_c_pos_* (point-of-service family, ~130 cols) |  | Point-of-service option cost-sharing (pos_yn, pos_maxplan_*, pos_ded_*, pos_auth_yn, pos_bendesc_*, per-service POS copay/coins). POPULATED in modern years (2023: 93/130 cols). The most-populated benefit family for 2012+. Lets an HMO offer limited out-of-network access. |
| pbp_c_vt_* (visitor/travel family: vt_us_yn, vt_us_mo, vt_geographic_area) |  | Visitor/travel benefit terms — whether the plan covers enrollees temporarily outside the service area and for how many months. Small family, populated in modern years (vt_us_yn on 29,603 rows in 2023). |
| effective_period_start / effective_period_end |  | Benefit-year window as dates: Jan 1 - Dec 31 of report_year (e.g. 2025-01-01 .. 2025-12-31). 21 distinct. Provenance/time field; year matches report_year exactly. |

Tools that read it: get_pbp_benefit

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