Medicare Advantage, Part D, Medicaid

MA pbp section c

medicare_silver.pbp_section_c·partial·silver·annual·Medicare Advantage Plan Benefit Packages (PBP)
Rows
N/A
Columns
465
History
2001 (benefit year; observed_period/effective_period_start 2001-01-01) to 2026 (benefit year; effective_period_start 2026-01-01). 21 distinct benefit years present; years 2007-2011 are entirely missing (data jumps 2006 -> 2012), and 2020 is missing its Q3 release.
Card
yesgrain, traps, filters
Typed tools
1

What it is

  1. 1CMS Medicare Advantage Plan Benefit Package (PBP) "Section C" — the medical/hospital benefit cost-sharing detail (inpatient hospital, SNF, outpatient service groups, deductibles, plan maximum-out-of-pocket, prior-authorization/referral rules, and out-of-network / point-of-service / visitor-travel terms) for each MA plan, parsed from the public CMS PBP PUF zips.
  2. 2It documents what an MA enrollee pays for Part-A/Part-B-style medical services under each plan-year.

Grain

KeyGrain
contract_idplan_idsegment_idreport_yearquarterversionpbp_c_outpt_group_num_id
  1. 1One row per Medicare Advantage plan segment, per benefit year, per quarterly PUF release, per plan-submission version, per legacy outpatient-benefit-group.
  2. 2The 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).
  3. 3The 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 read it

  1. 1Latest 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.
  2. 2This 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%).
  3. 3Always 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

  1. 1BIGGEST 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.
  2. 2No 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.
  3. 3bid_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.
  4. 4pbp_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.
  5. 5Time 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.

Columns (465)

ColumnTypeMeaning
contract_idstringCMS 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_idstringPlan number within the contract (e.g. '001','806'). 656 distinct. Identity.
segment_idstringPlan segment ('0','1',...). 26 distinct, usually '0'. Identity; segments are geographic/benefit sub-divisions of a plan.
versiondoublePBP 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_yeardoubleBenefit year the plan terms are effective for (double, 2001-2026). 21 distinct. Equals year(effective_period_start) and year(observed_period). Primary time dimension.
quarterdoubleWhich 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_idstringConcatenated 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).
orgtypestringCMS 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_covstringBenefit-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_typestringMA 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_begdouble
pbp_c_accpt_new_bene_enddouble
pbp_c_bene_contactstring
pbp_c_coins_iha_bgnd_intrvl1double
pbp_c_coins_iha_bgnd_intrvl2double
pbp_c_coins_iha_bgnd_intrvl3double
pbp_c_coins_iha_covstring
pbp_c_coins_iha_endd_intrvl1double
pbp_c_coins_iha_endd_intrvl2double
pbp_c_coins_iha_endd_intrvl3double
pbp_c_coins_iha_intrvl_numstring
pbp_c_coins_iha_pctdouble
pbp_c_coins_iha_pct_intrvl1double
pbp_c_coins_iha_pct_intrvl2double
pbp_c_coins_iha_pct_intrvl3double
pbp_c_coins_ihs_ben_typestring
pbp_c_coins_ihs_ynstring
pbp_c_coins_iph_bgnd_intrvl1double
pbp_c_coins_iph_bgnd_intrvl2double
pbp_c_coins_iph_bgnd_intrvl3double
pbp_c_coins_iph_covstring
pbp_c_coins_iph_endd_intrvl1double
pbp_c_coins_iph_endd_intrvl2double
pbp_c_coins_iph_endd_intrvl3double
pbp_c_coins_iph_intrvl_numstring
pbp_c_coins_iph_pctdouble
pbp_c_coins_iph_pct_intrvl1double
pbp_c_coins_iph_pct_intrvl2double
pbp_c_coins_iph_pct_intrvl3double
pbp_c_copay_iha_amt_intrvl1double
pbp_c_copay_iha_amt_intrvl2double
pbp_c_copay_iha_amt_intrvl3double
pbp_c_copay_iha_bgnd_intrvl1double
pbp_c_copay_iha_bgnd_intrvl2double
pbp_c_copay_iha_bgnd_intrvl3double
pbp_c_copay_iha_endd_intrvl1double
pbp_c_copay_iha_endd_intrvl2double
pbp_c_copay_iha_endd_intrvl3double
pbp_c_copay_iha_intrvl_numstring
pbp_c_copay_iha_ps_amtdouble
pbp_c_copay_ihs_ben_typestring
pbp_c_copay_ihs_ynstring
pbp_c_copay_iph_amt_intrvl1double
pbp_c_copay_iph_amt_intrvl2double
pbp_c_copay_iph_amt_intrvl3double
pbp_c_copay_iph_bgnd_intrvl1double
pbp_c_copay_iph_bgnd_intrvl2double
pbp_c_copay_iph_bgnd_intrvl3double
pbp_c_copay_iph_endd_intrvl1double
pbp_c_copay_iph_endd_intrvl2double
pbp_c_copay_iph_endd_intrvl3double
pbp_c_copay_iph_intrvl_numstring
pbp_c_copay_iph_ps_amtdouble
pbp_c_csc_clause_und_bbastring
pbp_c_dif_coor_care_outsidestring
pbp_c_dif_coor_care_withinstring
pbp_c_dualelig_freq_astring
pbp_c_dualelig_freq_bstring
pbp_c_dualelig_freq_cstring
pbp_c_dualelig_freq_dstring
pbp_c_gated_vs_openstring
pbp_c_gen_authstring
pbp_c_gen_auth_subcatsstring
pbp_c_gen_auth_violstring
pbp_c_gen_auth_violliststring
pbp_c_gen_auth_ynstring
pbp_c_gen_bendesc_subcatsstring
pbp_c_gen_ded_amtdouble
pbp_c_gen_ded_cost_typestring
pbp_c_gen_ded_med_catstring
pbp_c_gen_ded_med_ynstring
pbp_c_gen_ded_nm_amtdouble
pbp_c_gen_ded_nm_catstring
pbp_c_gen_ded_nm_ynstring
pbp_c_gen_ded_ynstring
pbp_c_gen_maxenr_amtdouble
pbp_c_gen_maxenr_cost_typestring
pbp_c_gen_maxenr_perstring
pbp_c_gen_maxenr_ynstring
pbp_c_gen_maxplan_amtdouble
pbp_c_gen_maxplan_cost_typestring
pbp_c_gen_maxplan_covstring
pbp_c_gen_maxplan_perstring
pbp_c_gen_maxplan_ynstring
pbp_c_gen_offer_ben_ynstring
pbp_c_gen_oon_pre_ynstring
pbp_c_gen_oop_med_amtdouble
pbp_c_gen_oop_med_ynstring
pbp_c_gen_oop_nm_amtdouble
pbp_c_gen_oop_nm_catstring
pbp_c_gen_oop_nm_perstring
pbp_c_gen_oop_nm_ynstring
pbp_c_gen_referral_subcatsstring
pbp_c_gen_referral_ynstring
pbp_c_ihs_authstring
pbp_c_ihs_auth_ynstring
pbp_c_ihs_ded_acu_amtdouble
pbp_c_ihs_ded_comb_amtdouble
pbp_c_ihs_ded_cost_typestring
pbp_c_ihs_ded_psyc_amtdouble
pbp_c_ihs_ded_ynstring
pbp_c_ihs_maxenr_acu_amtdouble
pbp_c_ihs_maxenr_comb_amtdouble
pbp_c_ihs_maxenr_cost_typestring
pbp_c_ihs_maxenr_psyc_amtdouble
pbp_c_ihs_maxenr_ynstring
pbp_c_ihs_maxplan_acu_amtdouble
pbp_c_ihs_maxplan_comb_amtdouble
pbp_c_ihs_maxplan_cost_typestring
pbp_c_ihs_maxplan_psyc_amtdouble
pbp_c_ihs_maxplan_ynstring
pbp_c_oon_bendesc_bensstring
pbp_c_oon_bendesc_catsstring
pbp_c_oon_coins_iha_bgnd_i1double
pbp_c_oon_coins_iha_bgnd_i2double
pbp_c_oon_coins_iha_bgnd_i3double
pbp_c_oon_coins_iha_endd_i1double
pbp_c_oon_coins_iha_endd_i2double
pbp_c_oon_coins_iha_endd_i3double
pbp_c_oon_coins_iha_intrvl_numstring
pbp_c_oon_coins_iha_mc_cost_ynstring
pbp_c_oon_coins_iha_pctdouble
pbp_c_oon_coins_iha_pct_i1double
pbp_c_oon_coins_iha_pct_i2double
pbp_c_oon_coins_iha_pct_i3double
pbp_c_oon_coins_ihs_ben_typestring
pbp_c_oon_coins_ihs_ynstring
pbp_c_oon_coins_iph_bgnd_i1double
pbp_c_oon_coins_iph_bgnd_i2double
pbp_c_oon_coins_iph_bgnd_i3double
pbp_c_oon_coins_iph_endd_i1double
pbp_c_oon_coins_iph_endd_i2double
pbp_c_oon_coins_iph_endd_i3double
pbp_c_oon_coins_iph_intrvl_numstring
pbp_c_oon_coins_iph_mc_cost_ynstring
pbp_c_oon_coins_iph_pctdouble
pbp_c_oon_coins_iph_pct_i1double
pbp_c_oon_coins_iph_pct_i2double
pbp_c_oon_coins_iph_pct_i3double
pbp_c_oon_coins_snf_bgnd_i1double
pbp_c_oon_coins_snf_bgnd_i2double
pbp_c_oon_coins_snf_bgnd_i3double
pbp_c_oon_coins_snf_endd_i1double
pbp_c_oon_coins_snf_endd_i2double
pbp_c_oon_coins_snf_endd_i3double
pbp_c_oon_coins_snf_intrvl_numstring
pbp_c_oon_coins_snf_mc_cost_ynstring
pbp_c_oon_coins_snf_pctdouble
pbp_c_oon_coins_snf_pct_i1double
pbp_c_oon_coins_snf_pct_i2double
pbp_c_oon_coins_snf_pct_i3double
pbp_c_oon_coins_snf_ynstring
pbp_c_oon_copay_iha_amt_i1double
pbp_c_oon_copay_iha_amt_i2double
pbp_c_oon_copay_iha_amt_i3double
pbp_c_oon_copay_iha_bgnd_i1double
pbp_c_oon_copay_iha_bgnd_i2double
pbp_c_oon_copay_iha_bgnd_i3double
pbp_c_oon_copay_iha_endd_i1double
pbp_c_oon_copay_iha_endd_i2double
pbp_c_oon_copay_iha_endd_i3double
pbp_c_oon_copay_iha_intrvl_numstring
pbp_c_oon_copay_iha_mc_cost_ynstring
pbp_c_oon_copay_iha_ps_amtdouble
pbp_c_oon_copay_ihs_ben_typestring
pbp_c_oon_copay_ihs_ynstring
pbp_c_oon_copay_iph_amt_i1double
pbp_c_oon_copay_iph_amt_i2double
pbp_c_oon_copay_iph_amt_i3double
pbp_c_oon_copay_iph_bgnd_i1double
pbp_c_oon_copay_iph_bgnd_i2double
pbp_c_oon_copay_iph_bgnd_i3double
pbp_c_oon_copay_iph_endd_i1double
pbp_c_oon_copay_iph_endd_i2double
pbp_c_oon_copay_iph_endd_i3double
pbp_c_oon_copay_iph_intrvl_numstring
pbp_c_oon_copay_iph_mc_cost_ynstring
pbp_c_oon_copay_iph_ps_amtdouble
pbp_c_oon_copay_snf_amtdouble
pbp_c_oon_copay_snf_amt_i1double
pbp_c_oon_copay_snf_amt_i2double
pbp_c_oon_copay_snf_amt_i3double
pbp_c_oon_copay_snf_bgnd_i1double
pbp_c_oon_copay_snf_bgnd_i2double
pbp_c_oon_copay_snf_bgnd_i3double
pbp_c_oon_copay_snf_endd_i1double
pbp_c_oon_copay_snf_endd_i2double
pbp_c_oon_copay_snf_endd_i3double
pbp_c_oon_copay_snf_intrvl_numstring
pbp_c_oon_copay_snf_mc_cost_ynstring
pbp_c_oon_copay_snf_ynstring
pbp_c_oon_ihs_ded_acu_amtdouble
pbp_c_oon_ihs_ded_comb_amtdouble
pbp_c_oon_ihs_ded_cost_typestring
pbp_c_oon_ihs_ded_psyc_amtdouble
pbp_c_oon_ihs_ded_ynstring
pbp_c_oon_mc_bendesc_catsstring
pbp_c_oon_nmc_bendesc_catsstring
pbp_c_oon_outpt_group_numdouble
pbp_c_oon_snf_ded_amtdouble
pbp_c_oon_snf_ded_ynstring
pbp_c_oon_ynstring
pbp_c_other_excstring
pbp_c_outpt1_authstring
pbp_c_outpt1_bendesc_catsstring
pbp_c_outpt1_coins_covstring
pbp_c_outpt1_coins_max_pctdouble
pbp_c_outpt1_coins_min_pctdouble
pbp_c_outpt1_coins_ynstring
pbp_c_outpt1_copay_max_amtdouble
pbp_c_outpt1_copay_min_amtdouble
pbp_c_outpt1_copay_ynstring
pbp_c_outpt1_ded_amtdouble
pbp_c_outpt1_ded_ynstring
pbp_c_outpt1_group_numstring
pbp_c_outpt1_maxenr_amtdouble
pbp_c_outpt1_maxenr_perstring
pbp_c_outpt1_maxenr_ynstring
pbp_c_outpt1_maxplan_amtdouble
pbp_c_outpt1_maxplan_covstring
pbp_c_outpt1_maxplan_perstring
pbp_c_outpt1_maxplan_ynstring
pbp_c_outpt2_authstring
pbp_c_outpt2_bendesc_catsstring
pbp_c_outpt2_coins_covstring
pbp_c_outpt2_coins_max_pctdouble
pbp_c_outpt2_coins_min_pctdouble
pbp_c_outpt2_coins_ynstring
pbp_c_outpt2_copay_max_amtdouble
pbp_c_outpt2_copay_min_amtdouble
pbp_c_outpt2_copay_ynstring
pbp_c_outpt2_ded_amtdouble
pbp_c_outpt2_ded_ynstring
pbp_c_outpt2_maxenr_amtdouble
pbp_c_outpt2_maxenr_perstring
pbp_c_outpt2_maxenr_ynstring
pbp_c_outpt2_maxplan_amtdouble
pbp_c_outpt2_maxplan_covstring
pbp_c_outpt2_maxplan_perstring
pbp_c_outpt2_maxplan_ynstring
pbp_c_outpt3_authstring
pbp_c_outpt3_bendesc_catsstring
pbp_c_outpt3_coins_covstring
pbp_c_outpt3_coins_max_pctdouble
pbp_c_outpt3_coins_min_pctdouble
pbp_c_outpt3_coins_ynstring
pbp_c_outpt3_copay_max_amtdouble
pbp_c_outpt3_copay_min_amtdouble
pbp_c_outpt3_copay_ynstring
pbp_c_outpt3_ded_amtdouble
pbp_c_outpt3_ded_ynstring
pbp_c_outpt3_maxenr_amtdouble
pbp_c_outpt3_maxenr_perstring
pbp_c_outpt3_maxenr_ynstring
pbp_c_outpt3_maxplan_amtdouble
pbp_c_outpt3_maxplan_covstring
pbp_c_outpt3_maxplan_perstring
pbp_c_outpt3_maxplan_ynstring
pbp_c_outpt4_authstring
pbp_c_outpt4_bendesc_catsstring
pbp_c_outpt4_coins_covstring
pbp_c_outpt4_coins_max_pctdouble
pbp_c_outpt4_coins_min_pctdouble
pbp_c_outpt4_coins_ynstring
pbp_c_outpt4_copay_max_amtdouble
pbp_c_outpt4_copay_min_amtdouble
pbp_c_outpt4_copay_ynstring
pbp_c_outpt4_ded_amtdouble
pbp_c_outpt4_ded_ynstring
pbp_c_outpt4_maxenr_amtdouble
pbp_c_outpt4_maxenr_perstring
pbp_c_outpt4_maxenr_ynstring
pbp_c_outpt4_maxplan_amtdouble
pbp_c_outpt4_maxplan_covstring
pbp_c_outpt4_maxplan_perstring
pbp_c_outpt4_maxplan_ynstring
pbp_c_outpt5_authstring
pbp_c_outpt5_bendesc_catsstring
pbp_c_outpt5_coins_covstring
pbp_c_outpt5_coins_max_pctdouble
pbp_c_outpt5_coins_min_pctdouble
pbp_c_outpt5_coins_ynstring
pbp_c_outpt5_copay_max_amtdouble
pbp_c_outpt5_copay_min_amtdouble
pbp_c_outpt5_copay_ynstring
pbp_c_outpt5_ded_amtdouble
pbp_c_outpt5_ded_ynstring
pbp_c_outpt5_maxenr_amtdouble
pbp_c_outpt5_maxenr_perstring
pbp_c_outpt5_maxenr_ynstring
pbp_c_outpt5_maxplan_amtdouble
pbp_c_outpt5_maxplan_covstring
pbp_c_outpt5_maxplan_perstring
pbp_c_outpt5_maxplan_ynstring
pbp_c_outpt_bendesc_catsstring
pbp_c_outpt_coins_covstring
pbp_c_outpt_coins_max_pctdouble
pbp_c_outpt_coins_min_pctdouble
pbp_c_outpt_coins_ynstring
pbp_c_outpt_copay_max_amtdouble
pbp_c_outpt_copay_min_amtdouble
pbp_c_outpt_copay_ynstring
pbp_c_outpt_group_numstring
pbp_c_outpt_group_num_idstringLegacy 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_authstring
pbp_c_pos_auth_bensstring
pbp_c_pos_auth_mc_subcatsstring
pbp_c_pos_auth_nmc_subcatsstring
pbp_c_pos_auth_subcatsstring
pbp_c_pos_auth_ynstring
pbp_c_pos_bendesc_amostring
pbp_c_pos_bendesc_bensstring
pbp_c_pos_bendesc_subcatsstring
pbp_c_pos_coins_iha_bgnd_i1double
pbp_c_pos_coins_iha_bgnd_i2double
pbp_c_pos_coins_iha_bgnd_i3double
pbp_c_pos_coins_iha_endd_i1double
pbp_c_pos_coins_iha_endd_i2double
pbp_c_pos_coins_iha_endd_i3double
pbp_c_pos_coins_iha_intrvl_numstring
pbp_c_pos_coins_iha_mc_cost_ynstring
pbp_c_pos_coins_iha_pctdouble
pbp_c_pos_coins_iha_pct_i1double
pbp_c_pos_coins_iha_pct_i2double
pbp_c_pos_coins_iha_pct_i3double
pbp_c_pos_coins_ihs_ben_typestring
pbp_c_pos_coins_ihs_ynstring
pbp_c_pos_coins_iph_bgnd_i1double
pbp_c_pos_coins_iph_bgnd_i2double
pbp_c_pos_coins_iph_bgnd_i3double
pbp_c_pos_coins_iph_endd_i1double
pbp_c_pos_coins_iph_endd_i2double
pbp_c_pos_coins_iph_endd_i3double
pbp_c_pos_coins_iph_intrvl_numstring
pbp_c_pos_coins_iph_mc_cost_ynstring
pbp_c_pos_coins_iph_pctdouble
pbp_c_pos_coins_iph_pct_i1double
pbp_c_pos_coins_iph_pct_i2double
pbp_c_pos_coins_iph_pct_i3double
pbp_c_pos_coins_snf_bgnd_i1double
pbp_c_pos_coins_snf_bgnd_i2double
pbp_c_pos_coins_snf_bgnd_i3double
pbp_c_pos_coins_snf_endd_i1double
pbp_c_pos_coins_snf_endd_i2double
pbp_c_pos_coins_snf_endd_i3double
pbp_c_pos_coins_snf_intrvl_numstring
pbp_c_pos_coins_snf_mc_cost_ynstring
pbp_c_pos_coins_snf_pctdouble
pbp_c_pos_coins_snf_pct_i1double
pbp_c_pos_coins_snf_pct_i2double
pbp_c_pos_coins_snf_pct_i3double
pbp_c_pos_coins_snf_ynstring
pbp_c_pos_comb_ded_amtdouble
pbp_c_pos_copay_iha_amt_i1double
pbp_c_pos_copay_iha_amt_i2double
pbp_c_pos_copay_iha_amt_i3double
pbp_c_pos_copay_iha_bgnd_i1double
pbp_c_pos_copay_iha_bgnd_i2double
pbp_c_pos_copay_iha_bgnd_i3double
pbp_c_pos_copay_iha_endd_i1double
pbp_c_pos_copay_iha_endd_i2double
pbp_c_pos_copay_iha_endd_i3double
pbp_c_pos_copay_iha_intrvl_numstring
pbp_c_pos_copay_iha_mc_cost_ynstring
pbp_c_pos_copay_iha_ps_amtdouble
pbp_c_pos_copay_ihs_ben_typestring
pbp_c_pos_copay_ihs_ynstring
pbp_c_pos_copay_iph_amt_i1double
pbp_c_pos_copay_iph_amt_i2double
pbp_c_pos_copay_iph_amt_i3double
pbp_c_pos_copay_iph_bgnd_i1double
pbp_c_pos_copay_iph_bgnd_i2double
pbp_c_pos_copay_iph_bgnd_i3double
pbp_c_pos_copay_iph_endd_i1double
pbp_c_pos_copay_iph_endd_i2double
pbp_c_pos_copay_iph_endd_i3double
pbp_c_pos_copay_iph_intrvl_numstring
pbp_c_pos_copay_iph_mc_cost_ynstring
pbp_c_pos_copay_iph_ps_amtdouble
pbp_c_pos_copay_snf_amtdouble
pbp_c_pos_copay_snf_amt_i1double
pbp_c_pos_copay_snf_amt_i2double
pbp_c_pos_copay_snf_amt_i3double
pbp_c_pos_copay_snf_bgnd_i1double
pbp_c_pos_copay_snf_bgnd_i2double
pbp_c_pos_copay_snf_bgnd_i3double
pbp_c_pos_copay_snf_endd_i1double
pbp_c_pos_copay_snf_endd_i2double
pbp_c_pos_copay_snf_endd_i3double
pbp_c_pos_copay_snf_intrvl_numstring
pbp_c_pos_copay_snf_mc_cost_ynstring
pbp_c_pos_copay_snf_ynstring
pbp_c_pos_ded_amtdouble
pbp_c_pos_ded_ynstring
pbp_c_pos_iha_ded_amtdouble
pbp_c_pos_iha_maxplan_perstring
pbp_c_pos_iha_maxplan_per_dstring
pbp_c_pos_ihp_maxplan_perstring
pbp_c_pos_ihp_maxplan_per_dstring
pbp_c_pos_ihs_ded_typestring
pbp_c_pos_ihs_ded_ynstring
pbp_c_pos_ihs_maxplan_acu_amtdouble
pbp_c_pos_ihs_maxplan_comb_amtdouble
pbp_c_pos_ihs_maxplan_perstring
pbp_c_pos_ihs_maxplan_per_dstring
pbp_c_pos_ihs_maxplan_psyc_amtdouble
pbp_c_pos_ihs_maxplan_typestring
pbp_c_pos_ihs_maxplan_ynstring
pbp_c_pos_iph_ded_amtdouble
pbp_c_pos_maxenr_oopc_amtdouble
pbp_c_pos_maxenr_oopc_perstring
pbp_c_pos_maxenr_oopc_per_dstring
pbp_c_pos_maxenr_oopc_ynstring
pbp_c_pos_maxplan_amtdouble
pbp_c_pos_maxplan_bensstring
pbp_c_pos_maxplan_mc_subcatsstring
pbp_c_pos_maxplan_nmc_subcatsstring
pbp_c_pos_maxplan_perstring
pbp_c_pos_maxplan_per_dstring
pbp_c_pos_maxplan_subcatsstring
pbp_c_pos_maxplan_ynstring
pbp_c_pos_mc_bendesc_subcatsstring
pbp_c_pos_nmc_bendesc_subcatsstring
pbp_c_pos_outpt_group_numdouble
pbp_c_pos_refer_benefit_bensstring
pbp_c_pos_refer_mc_subcatsstring
pbp_c_pos_refer_nmc_subcatsstring
pbp_c_pos_referral_subcatsstring
pbp_c_pos_referral_ynstring
pbp_c_pos_snf_ded_amtdouble
pbp_c_pos_snf_ded_ynstring
pbp_c_pos_state_limit_ynstring
pbp_c_pos_territories_ynstring
pbp_c_pos_ynstring
pbp_c_prof_monitor_carestring
pbp_c_prof_partstring
pbp_c_serv_prior_esdstring
pbp_c_special_availstring
pbp_c_vt_geographic_areastring
pbp_c_vt_us_mostring
pbp_c_vt_us_ynstring
observed_perioddateSnapshot 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_atdateVlada 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_startdate
effective_period_enddate
cms_vintage_sequenceintInteger 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_revisionintParser revision integer (2 distinct values). Silver-tier provenance — which version of the extraction code produced the row.
parser_artifact_hashstringHash of the parser artifact (35 distinct, one per source file). Provenance.
source_urlstringExact 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_hashstringSHA-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_endBenefit-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.

Query it

describe_data_source(source_fqn="medicare_silver.pbp_section_c")     # the card, live
query_substrate(sql="SELECT * FROM medicare_silver.pbp_section_c WHERE contract_id = '<value>' AND plan_id = '<value>' AND segment_id = '<value>' AND report_year = '<value>' AND quarter = '<value>' AND version = '<value>' AND pbp_c_outpt_group_num_id = '<value>' LIMIT 100")
ItemValue
Typed tools that read itget_pbp_benefit
Identity keycontract_id
Joinhow_to_join(source_fqn="medicare_silver.pbp_section_c")
Raw doorAthena (read-only via query_substrate): medicare_silver.pbp_section_c
NoteGrain-governed; live in Glue / query_substrate. Source family pbp_benefits.

This page as markdown: /docs-md/data/medicare_silver_pbp_section_c.md · every page in one file: /llms-full.txt