Medicare Advantage, Part D, Medicaid

MA pbp section d

medicare_silver.pbp_section_d·partial·silver·annual·Medicare Advantage Plan Benefit Packages (PBP)
Rows
N/A
Columns
656
History
2001 (report_year 2001 / effective_period_start 2001-01-01) to 2026 (report_year 2026 / effective_period_start 2026-01-01)
Card
yesgrain, traps, filters
Typed tools
1

What it is

  1. 1CMS Plan Benefit Package (PBP) Section D for Medicare Advantage / Part C plans: the plan-level deductibles and Maximum-Enrollee out-of-pocket (MOOP) limits each MA plan files with CMS each year.
  2. 2Despite the 'D' it is NOT Medicare Part D prescription-drug data — drug formulary/tier/gap data lives in the sibling pbp_mrx* tables;
  3. 3Section D = the deductible & out-of-pocket-maximum section of the benefit package.
  4. 4It is the cost-exposure ceiling (deductible + MOOP) reference for every MA plan, usable to benchmark how much financial protection a plan offers.

Grain

KeyGrain
contract_idplan_idsegment_ideffective_period_startquarter
  1. 1One row = one Medicare Advantage / Part C plan-benefit-package SEGMENT, for one contract year, as captured in one quarterly PBP release — i.e. one (contract_id, plan_id, segment_id, plan-year, quarter).
  2. 2The MINIMAL verified key is contract_id + plan_id + segment_id + effective_period_start + quarter, which yields 201,488 distinct combinations against 201,597 total rows (99.95% unique; the ~109 residual collisions are all legacy 2002-2003 rows where segment_id='' and bid_id is NULL, a known data-quality wrinkle in pre-2007 data).
  3. 3Adding `version` does NOT reduce the count further, so version is redundant in the key.
  4. 4Each row carries that plan's Section-D content = plan-level deductibles and Maximum-Enrollee out-of-pocket (MOOP) limits.
  5. 5NOTE: a single plan-year can appear up to 4 times (once per quarterly re-release in 2018/2019/2023), so you must constrain to one quarter to get one-row-per-plan-year.

How to read it

  1. 1Benchmark MA plan out-of-pocket maximums for 2026: SELECT pbp_a_plan_type, round(avg(pbp_d_comb_max_enr_amt),0) avg_moop, max(pbp_d_comb_max_enr_amt) max_moop, count(*) plans FROM medicare_silver.pbp_section_d WHERE report_year=2026 AND quarter=1 AND pbp_d_comb_max_enr_amt_yn='1' GROUP BY pbp_a_plan_type ORDER BY plans DESC.
  2. 2Answers: what combined in+out-of-network MOOP do 2026 MA plans set, by plan type? (Local PPO ~$10,900; observed plan-level max $13,900.) Always pin quarter (use =1, or MAX(quarter) per year for the latest in-year revision) and join to pbp_section_a / the contract-plan dimension for plan names.
  3. 3For the medical deductible use pbp_d_ann_deduct_amt (gated by pbp_d_ann_deduct_yn='1'); do NOT use the bare pbp_d_deduct column, which is entirely NULL.

Traps

  1. 1NOT Part D drugs. The 'D' is PBP Section D = plan deductibles + Maximum-Enrollee out-of-pocket (MOOP), for Medicare ADVANTAGE plans. Prescription-drug formulary/tier/coverage-gap data is in the SIBLING tables pbp_mrx, pbp_mrx_tier, pbp_mrx_gap_coverage (and Part B drugs in pbp_section_b15). Querying this table for drug costs returns nothing useful.
  2. 2quarter is a MANDATORY grain dimension and silently inflates counts. Most years store only quarter=1, but 2018/2019/2023 store all 4 quarterly PBP re-releases (so each plan appears ~4x) and 2020/2022/2024 store partial sets. Without a quarter filter, a multi-year COUNT or AVG over-counts those years 3-4x. Use WHERE quarter=1 (or MAX(quarter) per plan-year) to get one row per plan.
  3. 3No is_current / snapshot-active flag exists. Every retained quarterly release is its own row; you must do the 'pick one quarter' dedup yourself. effective_period_start, effective_period_end, observed_period and report_year are all just encodings of the plan YEAR (start=year-01-01, end=year-12-31), verified identical for all 201,597 rows — none of them is a publication/load timestamp.
  4. 4bid_id looks like the natural key but is NULL for 8,425 legacy rows (years 2001-2006, before CMS assigned bid IDs) and is therefore unusable as a full-history key; for years >=2007 it equals contract_id+'_'+plan_id+'_'+segment_id. segment_id is an EMPTY STRING '' (not NULL) in those same legacy years.
  5. 5Pervasive NULL-means-not-applicable, plus dead columns. _yn fields use 1=Yes / 2=No / NULL=not-applicable (commonly because the plan type doesn't use that field — e.g. HMO plans leave combined-MOOP pbp_d_comb_max_enr_amt NULL because their MOOP is in Section C). Many dollar columns are populated only when their gating _yn='1'. The bare pbp_d_deduct column is 100% NULL (a defined-but-unused legacy slot) — use pbp_d_ann_deduct_amt instead. The table is 627 columns wide mostly because of hundreds of near-empty per-benefit-line pbp_d_diff_deduct_* and 1-5 repeated pbp_d_combo_* cells.

Columns (656)

ColumnTypeMeaning
contract_idstringCMS Medicare Advantage / Part C contract number (e.g. 'H0084','E5088','H0028'). Letter prefix encodes contract family: H/R = MA/Part C coordinated-care, E = employer/union group (EGWP), S = standalone PDP. 1,972 distinct values. With plan_id+segment_id forms the plan identity. Never NULL.
plan_idstring3-digit Plan Benefit Package ID within a contract (e.g. '001','801','056'). A contract offers many plans. 656 distinct values. Never NULL. (contract_id, plan_id) = the public 'H#### / ###' plan you see in Medicare Plan Finder.
segment_idstringSub-geography/segment of a plan that varies cost-sharing by service area ('0','1','2','3'...). 27 distinct. EMPTY STRING '' (not NULL) for legacy years 2001-2006 when CMS did not segment. Most plans are single-segment ('0').
versiondoublePBP submission/amendment version for that plan-year (double, 0.0-27.0). Higher = later in-year resubmission. 0.0 for legacy 2001-2006. NOT needed in the grain key once quarter is included — it does not further split rows. Within a (plan, year, quarter) it is effectively constant.
report_yeardoubleContract/benefit year the package applies to (double, 2001.0-2026.0). Identical information to effective_period_start (= report_year-01-01) and observed_period for ALL 201,597 rows. This is the plan year, not a publication date.
quarterdoubleCRITICAL for grain. Which quarterly PBP re-release of that plan-year this row came from (1.0/2.0/3.0/4.0). Most years have only quarter=1, but 2018/2019/2023 carry all 4 quarters (so a plan appears ~4x) and 2020/2022/2024 carry partial sets. Distribution: Q1=114,185, Q2=30,867, Q3=25,220, Q4=31,325. You MUST filter to one quarter to get one-row-per-plan-year.
bid_idstringConcatenated key contract_id+'_'+plan_id+'_'+segment_id (e.g. 'H0104_010_2'). 23,191 distinct. NULL for 8,425 legacy rows (years 2001-2006, before CMS assigned bid IDs) — so it is UNUSABLE as a grain key across full history. For years >=2007 it equals the composite and is non-null.
orgtypestringCMS organization type code (string): '01' Local CCP (dominant, 177,840 rows), '08' Regional PPO, '04' PFFS, '11' MSA, '06' 1876 Cost, '05' Employer/Direct, '02' national PACE, etc. Pairs with pbp_a_plan_type.
pbp_a_ben_covstringBenefit-coverage scope flag carried from PBP Section A: '1' = MA-only / medical (196,871 rows), '2' = MA-PD includes Part D drug coverage (4,384), NULL (342). High-level marker of whether the plan bundles drug coverage.
pbp_a_plan_typestringPBP plan-type code (string, from Section A): '01' HMO (101,596), '04' Local PPO (55,909), '02' HMOPOS/local PPO variant (20,114), '20' MSA (8,806), '09' PFFS (5,663), '31' Regional PPO (3,869), '18' (3,258), plus a long tail. Drives which Section-D fields are populated (PPO/PFFS/MSA types populate combined/OON MOOP; HMO often leaves them NULL).
pbp_d_amt_opt_premiumdoubleMonthly OPTIONAL supplemental premium amount (double). Sparse: 320 non-null, avg $29.27, range $0-$95. The add-on premium for the optional supplemental benefit package (detailed in sibling pbp_section_d_opt).
pbp_d_ann_deduct_14a_ynstring
pbp_d_ann_deduct_amtdoubleAnnual deductible dollar amount (double). Populated only when ann_deduct_yn='1' (7,941 non-null rows). Observed avg ~$683, range $0-$2,000. The combined medical deductible the enrollee pays before the plan starts paying.
pbp_d_ann_deduct_amt_typestring
pbp_d_ann_deduct_bensstring
pbp_d_ann_deduct_comb_typestring
pbp_d_ann_deduct_inn_mc_catsstring
pbp_d_ann_deduct_inn_mc_ynstring
pbp_d_ann_deduct_inn_nmc_catsstring
pbp_d_ann_deduct_inn_nmc_ynstring
pbp_d_ann_deduct_oon_nmc_catsstring
pbp_d_ann_deduct_oon_nmc_ynstring
pbp_d_ann_deduct_ynstringDoes the plan have an ANNUAL plan-level deductible? '1'=Yes (24,589), '2'=No (26,863), NULL=not applicable (150,145, mostly HMO/legacy). Standard CMS _yn convention: 1=Yes, 2=No, NULL=not asked.
pbp_d_balbill_ded_paid_ynstring
pbp_d_balbill_ded_ynstring
pbp_d_balbill_max_pctdouble
pbp_d_balbill_min_pctdouble
pbp_d_balbill_oopc_max_paid_ynstring
pbp_d_balbill_oopc_max_ynstring
pbp_d_balbill_prov_catsstring
pbp_d_balbill_ynstring
pbp_d_comb_deduct_all_svcs_ynstring
pbp_d_comb_deduct_amtdoubleCOMBINED deductible amount spanning multiple service categories (double). Populated only when pbp_d_comb_deduct_yn='1' (703 non-null). Avg ~$543, max $3,000. Companion to a large family of pbp_d_comb_deduct_* flags (inn/oon, medical/non-medical, services list).
pbp_d_comb_deduct_bensstring
pbp_d_comb_deduct_inn_m_catsstring
pbp_d_comb_deduct_inn_m_ynstring
pbp_d_comb_deduct_inn_nm_catsstring
pbp_d_comb_deduct_inn_nm_ynstring
pbp_d_comb_deduct_oon_m_catsstring
pbp_d_comb_deduct_oon_m_ynstring
pbp_d_comb_deduct_oon_nm_catsstring
pbp_d_comb_deduct_oon_nm_ynstring
pbp_d_comb_deduct_partb_ynstring
pbp_d_comb_deduct_servicesstring
pbp_d_comb_deduct_typestring
pbp_d_comb_deduct_ynstring
pbp_d_comb_max_enr_all_svcs_ynstring
pbp_d_comb_max_enr_amtdoubleHEADLINE COST FIELD: the COMBINED Maximum Enrollee out-of-pocket / MOOP (in+out-of-network combined), double. Populated when pbp_d_comb_max_enr_amt_yn='1' (61,834 non-null). Tracks real MA MOOP: avg ~$8,993 overall, rising by year ($9,142 in 2022 -> $10,569 in 2026), max $13,900 in 2026. NULL for 121,538 rows (mostly HMO, which carry their in-network MOOP in Section C instead).
pbp_d_comb_max_enr_amt_typestring
pbp_d_comb_max_enr_amt_ynstringWhether a combined (in+OON) MOOP applies: '1'=Yes (80,059), '2'=No (18,224), NULL (121,538). The gate for whether pbp_d_comb_max_enr_amt is populated.
pbp_d_comb_max_enr_inn_m_catsstring
pbp_d_comb_max_enr_inn_m_ynstring
pbp_d_comb_max_enr_inn_mcat_exstring
pbp_d_comb_max_enr_inn_nm_catsstring
pbp_d_comb_max_enr_inn_nm_ynstring
pbp_d_comb_max_enr_inn_nmcatexstring
pbp_d_comb_max_enr_mc_only_amtdouble
pbp_d_comb_max_enr_oon_m_catsstring
pbp_d_comb_max_enr_oon_m_ynstring
pbp_d_comb_max_enr_oon_mcat_exstring
pbp_d_comb_max_enr_oon_nm_catsstring
pbp_d_comb_max_enr_oon_nm_ynstring
pbp_d_comb_max_enr_oon_nmcatexstring
pbp_d_comb_max_enr_oopc_bensstring
pbp_d_comb_max_enr_periodstring
pbp_d_comb_max_enr_servicesstring
pbp_d_comb_max_enr_typestring
pbp_d_comb_max_mc_only_flagstring
pbp_d_comb_mc_ben_only_amtdouble
pbp_d_combo_enrollee_lim_yn_1string
pbp_d_combo_enrollee_lim_yn_2string
pbp_d_combo_enrollee_lim_yn_3string
pbp_d_combo_enrollee_lim_yn_4string
pbp_d_combo_enrollee_lim_yn_5string
pbp_d_combo_grp_name_1string
pbp_d_combo_grp_name_2string
pbp_d_combo_grp_name_3string
pbp_d_combo_grp_name_4string
pbp_d_combo_grp_name_5string
pbp_d_combo_max_plan_ben_amt_1double
pbp_d_combo_max_plan_ben_amt_2double
pbp_d_combo_max_plan_ben_amt_3double
pbp_d_combo_max_plan_ben_amt_4double
pbp_d_combo_max_plan_ben_amt_5double
pbp_d_combo_max_plan_ben_yn_1string
pbp_d_combo_max_plan_ben_yn_2string
pbp_d_combo_max_plan_ben_yn_3string
pbp_d_combo_max_plan_ben_yn_4string
pbp_d_combo_max_plan_ben_yn_5string
pbp_d_combo_max_plan_perdoth_1string
pbp_d_combo_max_plan_perdoth_2string
pbp_d_combo_max_plan_perdoth_3string
pbp_d_combo_max_plan_period_1string
pbp_d_combo_max_plan_period_2string
pbp_d_combo_max_plan_period_3string
pbp_d_combo_max_plan_period_4string
pbp_d_combo_max_plan_period_5string
pbp_d_combo_max_plan_prd_d_1string
pbp_d_combo_max_plan_prd_d_2string
pbp_d_combo_max_plan_prd_d_3string
pbp_d_combo_max_plan_prd_d_4string
pbp_d_combo_max_plan_prd_d_5string
pbp_d_combo_mode_1string
pbp_d_combo_mode_2string
pbp_d_combo_mode_3string
pbp_d_combo_mode_4string
pbp_d_combo_mode_5string
pbp_d_combo_mode_other_1string
pbp_d_combo_mode_other_2string
pbp_d_combo_mode_other_3string
pbp_d_combo_mode_other_4string
pbp_d_combo_mode_other_5string
pbp_d_combo_nmc_cats_1string
pbp_d_combo_nmc_cats_2string
pbp_d_combo_nmc_cats_3string
pbp_d_combo_nmc_cats_4string
pbp_d_combo_nmc_cats_5string
pbp_d_combo_num_grpsstring
pbp_d_combo_share_visit_amt_1double
pbp_d_combo_share_visit_amt_2double
pbp_d_combo_share_visit_amt_3double
pbp_d_combo_share_visit_amt_4double
pbp_d_combo_share_visit_amt_5double
pbp_d_combo_share_visit_yn_1string
pbp_d_combo_share_visit_yn_2string
pbp_d_combo_share_visit_yn_3string
pbp_d_combo_share_visit_yn_4string
pbp_d_combo_share_visit_yn_5string
pbp_d_combo_shr_vst_period_1string
pbp_d_combo_shr_vst_period_2string
pbp_d_combo_shr_vst_period_3string
pbp_d_combo_shr_vst_period_4string
pbp_d_combo_shr_vst_period_5string
pbp_d_combo_supp_ben_ynstring
pbp_d_deductdouble
pbp_d_deduct_14c_amtdouble
pbp_d_deduct_acupunc_amtdouble
pbp_d_deduct_all_services_ynstring
pbp_d_deduct_ape_amtdouble
pbp_d_deduct_chiro_amtdouble
pbp_d_deduct_compdental_amtdouble
pbp_d_deduct_cprs_amtdouble
pbp_d_deduct_dsnp_his_amtdouble
pbp_d_deduct_eyeexam_amtdouble
pbp_d_deduct_eyewear_amtdouble
pbp_d_deduct_hearaid_amtdouble
pbp_d_deduct_hearexam_amtdouble
pbp_d_deduct_iha_amtdouble
pbp_d_deduct_ihp_amtdouble
pbp_d_deduct_meal_amtdouble
pbp_d_deduct_obs_amtdouble
pbp_d_deduct_otc_amtdouble
pbp_d_deduct_other1_amtdouble
pbp_d_deduct_other2_amtdouble
pbp_d_deduct_other3_amtdouble
pbp_d_deduct_pod_amtdouble
pbp_d_deduct_prevdental_amtdouble
pbp_d_deduct_servicesstring
pbp_d_deduct_snf_amtdouble
pbp_d_deduct_trans_amtdouble
pbp_d_deduct_typestring
pbp_d_deduct_weuc_amtdouble
pbp_d_deduct_ynstring
pbp_d_diff_deduct_10a1_amtdouble
pbp_d_diff_deduct_10a2_amtdouble
pbp_d_diff_deduct_10a_amtdouble
pbp_d_diff_deduct_10b1_amtdouble
pbp_d_diff_deduct_10b2_amtdouble
pbp_d_diff_deduct_10b_amtdouble
pbp_d_diff_deduct_11a_amtdouble
pbp_d_diff_deduct_11b1_amtdouble
pbp_d_diff_deduct_11b2_amtdouble
pbp_d_diff_deduct_11b_amtdouble
pbp_d_diff_deduct_11c1_amtdouble
pbp_d_diff_deduct_11c2_amtdouble
pbp_d_diff_deduct_11c_amtdouble
pbp_d_diff_deduct_12_amtdouble
pbp_d_diff_deduct_13a_amtdouble
pbp_d_diff_deduct_13b_amtdouble
pbp_d_diff_deduct_13c_amtdouble
pbp_d_diff_deduct_13d_amtdouble
pbp_d_diff_deduct_13e_amtdouble
pbp_d_diff_deduct_13f_amtdouble
pbp_d_diff_deduct_13g_amtdouble
pbp_d_diff_deduct_14a_amtdouble
pbp_d_diff_deduct_14b_amtdouble
pbp_d_diff_deduct_14c10_amtdouble
pbp_d_diff_deduct_14c11_amtdouble
pbp_d_diff_deduct_14c12_amtdouble
pbp_d_diff_deduct_14c13_amtdouble
pbp_d_diff_deduct_14c14_amtdouble
pbp_d_diff_deduct_14c15_amtdouble
pbp_d_diff_deduct_14c16_amtdouble
pbp_d_diff_deduct_14c17_amtdouble
pbp_d_diff_deduct_14c18_amtdouble
pbp_d_diff_deduct_14c19_amtdouble
pbp_d_diff_deduct_14c1_amtdouble
pbp_d_diff_deduct_14c20_amtdouble
pbp_d_diff_deduct_14c21_amtdouble
pbp_d_diff_deduct_14c22_amtdouble
pbp_d_diff_deduct_14c2_amtdouble
pbp_d_diff_deduct_14c3_amtdouble
pbp_d_diff_deduct_14c4_amtdouble
pbp_d_diff_deduct_14c5_amtdouble
pbp_d_diff_deduct_14c6_amtdouble
pbp_d_diff_deduct_14c7_amtdouble
pbp_d_diff_deduct_14c8_amtdouble
pbp_d_diff_deduct_14c9_amtdouble
pbp_d_diff_deduct_14c_amtdouble
pbp_d_diff_deduct_14d_amtdouble
pbp_d_diff_deduct_14e1_amtdouble
pbp_d_diff_deduct_14e2_amtdouble
pbp_d_diff_deduct_14e3_amtdouble
pbp_d_diff_deduct_14e4_amtdouble
pbp_d_diff_deduct_14e5_amtdouble
pbp_d_diff_deduct_14e6_amtdouble
pbp_d_diff_deduct_14e_amtdouble
pbp_d_diff_deduct_14f_amtdouble
pbp_d_diff_deduct_14g_amtdouble
pbp_d_diff_deduct_14h_amtdouble
pbp_d_diff_deduct_14i_amtdouble
pbp_d_diff_deduct_14j_amtdouble
pbp_d_diff_deduct_15_1_amtdouble
pbp_d_diff_deduct_15_2_amtdouble
pbp_d_diff_deduct_15_3_amtdouble
pbp_d_diff_deduct_15_amtdouble
pbp_d_diff_deduct_15_nmc_amtdouble
pbp_d_diff_deduct_16a1_amtdouble
pbp_d_diff_deduct_16a2_amtdouble
pbp_d_diff_deduct_16a3_amtdouble
pbp_d_diff_deduct_16a4_amtdouble
pbp_d_diff_deduct_16a_amtdouble
pbp_d_diff_deduct_16a_n_amtdouble
pbp_d_diff_deduct_16b1_amtdouble
pbp_d_diff_deduct_16b1_n_amtdouble
pbp_d_diff_deduct_16b2_amtdouble
pbp_d_diff_deduct_16b2_n_amtdouble
pbp_d_diff_deduct_16b3_amtdouble
pbp_d_diff_deduct_16b3_n_amtdouble
pbp_d_diff_deduct_16b4_amtdouble
pbp_d_diff_deduct_16b4_n_amtdouble
pbp_d_diff_deduct_16b5_amtdouble
pbp_d_diff_deduct_16b5_n_amtdouble
pbp_d_diff_deduct_16b6_amtdouble
pbp_d_diff_deduct_16b6_n_amtdouble
pbp_d_diff_deduct_16b7_amtdouble
pbp_d_diff_deduct_16b_amtdouble
pbp_d_diff_deduct_16c10_n_amtdouble
pbp_d_diff_deduct_16c1_n_amtdouble
pbp_d_diff_deduct_16c2_n_amtdouble
pbp_d_diff_deduct_16c3_n_amtdouble
pbp_d_diff_deduct_16c4_n_amtdouble
pbp_d_diff_deduct_16c5_n_amtdouble
pbp_d_diff_deduct_16c6_n_amtdouble
pbp_d_diff_deduct_16c7_n_amtdouble
pbp_d_diff_deduct_16c8_n_amtdouble
pbp_d_diff_deduct_16c9_n_amtdouble
pbp_d_diff_deduct_17a1_amtdouble
pbp_d_diff_deduct_17a2_amtdouble
pbp_d_diff_deduct_17a_amtdouble
pbp_d_diff_deduct_17b1_amtdouble
pbp_d_diff_deduct_17b2_amtdouble
pbp_d_diff_deduct_17b3_amtdouble
pbp_d_diff_deduct_17b4_amtdouble
pbp_d_diff_deduct_17b5_amtdouble
pbp_d_diff_deduct_17b_amtdouble
pbp_d_diff_deduct_18a1_amtdouble
pbp_d_diff_deduct_18a2_amtdouble
pbp_d_diff_deduct_18a_amtdouble
pbp_d_diff_deduct_18b1_amtdouble
pbp_d_diff_deduct_18b2_amtdouble
pbp_d_diff_deduct_18b3_amtdouble
pbp_d_diff_deduct_18b4_amtdouble
pbp_d_diff_deduct_18b_amtdouble
pbp_d_diff_deduct_18c_amtdouble
pbp_d_diff_deduct_1a1_amtdouble
pbp_d_diff_deduct_1a1_t2_amtdouble
pbp_d_diff_deduct_1a1_t3_amtdouble
pbp_d_diff_deduct_1a2_amtdouble
pbp_d_diff_deduct_1a3_amtdouble
pbp_d_diff_deduct_1a_amtdouble
pbp_d_diff_deduct_1a_b_amtdouble
pbp_d_diff_deduct_1a_t1_amtdouble
pbp_d_diff_deduct_1a_t2_amtdouble
pbp_d_diff_deduct_1a_t3_amtdouble
pbp_d_diff_deduct_1b1_amtdouble
pbp_d_diff_deduct_1b1_t2_amtdouble
pbp_d_diff_deduct_1b1_t3_amtdouble
pbp_d_diff_deduct_1b2_amtdouble
pbp_d_diff_deduct_1b_amtdouble
pbp_d_diff_deduct_1b_b_amtdouble
pbp_d_diff_deduct_1b_t1_amtdouble
pbp_d_diff_deduct_1b_t2_amtdouble
pbp_d_diff_deduct_1b_t3_amtdouble
pbp_d_diff_deduct_20_amtdouble
pbp_d_diff_deduct_2_1_amtdouble
pbp_d_diff_deduct_2_1_t2_amtdouble
pbp_d_diff_deduct_2_1_t3_amtdouble
pbp_d_diff_deduct_2_2_amtdouble
pbp_d_diff_deduct_2_amtdouble
pbp_d_diff_deduct_2_b_amtdouble
pbp_d_diff_deduct_2_t1_amtdouble
pbp_d_diff_deduct_2_t2_amtdouble
pbp_d_diff_deduct_2_t3_amtdouble
pbp_d_diff_deduct_3_1_amtdouble
pbp_d_diff_deduct_3_1_nmc_amtdouble
pbp_d_diff_deduct_3_2_amtdouble
pbp_d_diff_deduct_3_2_nmc_amtdouble
pbp_d_diff_deduct_3_3_amtdouble
pbp_d_diff_deduct_3_3_nmc_amtdouble
pbp_d_diff_deduct_3_4_amtdouble
pbp_d_diff_deduct_3_4_nmc_amtdouble
pbp_d_diff_deduct_3_amtdouble
pbp_d_diff_deduct_4a_amtdouble
pbp_d_diff_deduct_4b_amtdouble
pbp_d_diff_deduct_4c1_amtdouble
pbp_d_diff_deduct_4c2_amtdouble
pbp_d_diff_deduct_4c3_amtdouble
pbp_d_diff_deduct_4c_amtdouble
pbp_d_diff_deduct_5_amtdouble
pbp_d_diff_deduct_5b_amtdouble
pbp_d_diff_deduct_6_amtdouble
pbp_d_diff_deduct_7a_amtdouble
pbp_d_diff_deduct_7b1_amtdouble
pbp_d_diff_deduct_7b2_amtdouble
pbp_d_diff_deduct_7b_amtdouble
pbp_d_diff_deduct_7c_amtdouble
pbp_d_diff_deduct_7d_amtdouble
pbp_d_diff_deduct_7e1_amtdouble
pbp_d_diff_deduct_7e2_amtdouble
pbp_d_diff_deduct_7e_amtdouble
pbp_d_diff_deduct_7f_amtdouble
pbp_d_diff_deduct_7f_nmc_amtdouble
pbp_d_diff_deduct_7g_amtdouble
pbp_d_diff_deduct_7h1_amtdouble
pbp_d_diff_deduct_7h2_amtdouble
pbp_d_diff_deduct_7h_amtdouble
pbp_d_diff_deduct_7i_amtdouble
pbp_d_diff_deduct_7j_amtdouble
pbp_d_diff_deduct_7k_amtdouble
pbp_d_diff_deduct_8a1_amtdouble
pbp_d_diff_deduct_8a2_amtdouble
pbp_d_diff_deduct_8a_amtdouble
pbp_d_diff_deduct_8b1_amtdouble
pbp_d_diff_deduct_8b2_amtdouble
pbp_d_diff_deduct_8b3_amtdouble
pbp_d_diff_deduct_8b_amtdouble
pbp_d_diff_deduct_9a1_amtdouble
pbp_d_diff_deduct_9a2_amtdouble
pbp_d_diff_deduct_9a_amtdouble
pbp_d_diff_deduct_9b_amtdouble
pbp_d_diff_deduct_9c1_amtdouble
pbp_d_diff_deduct_9c2_amtdouble
pbp_d_diff_deduct_9c_amtdouble
pbp_d_diff_deduct_9d_amtdouble
pbp_d_diff_deduct_9d_nmc_amtdouble
pbp_d_diff_deduct_catsstring
pbp_d_diff_deduct_ynstring
pbp_d_in_coins_amtdouble
pbp_d_in_coins_periodstring
pbp_d_in_coins_ynstring
pbp_d_inn_deduct_all_svcs_ynstring
pbp_d_inn_deduct_amtdouble
pbp_d_inn_deduct_bensstring
pbp_d_inn_deduct_m_catsstring
pbp_d_inn_deduct_m_ynstring
pbp_d_inn_deduct_nm_catsstring
pbp_d_inn_deduct_nm_ynstring
pbp_d_inn_deduct_partb_ynstring
pbp_d_inn_deduct_servicesstring
pbp_d_inn_deduct_typestring
pbp_d_inn_deduct_ynstring
pbp_d_inn_max_enr_m_cat_exstring
pbp_d_inn_max_enr_m_catsstring
pbp_d_inn_max_enr_m_ynstring
pbp_d_inn_max_enr_nm_cat_exstring
pbp_d_inn_max_enr_nm_catsstring
pbp_d_inn_max_enr_nm_ynstring
pbp_d_inn_max_enr_oopc_bensstring
pbp_d_inn_maxplan_nm_catsstring
pbp_d_inn_maxplan_nm_ynstring
pbp_d_inn_mc_ben_only_amtdouble
pbp_d_mand_deduct_10b1_amtdouble
pbp_d_mand_deduct_10b2_amtdouble
pbp_d_mand_deduct_14c10_amtdouble
pbp_d_mand_deduct_14c11_amtdouble
pbp_d_mand_deduct_14c12_amtdouble
pbp_d_mand_deduct_14c13_amtdouble
pbp_d_mand_deduct_14c14_amtdouble
pbp_d_mand_deduct_14c15_amtdouble
pbp_d_mand_deduct_14c16_amtdouble
pbp_d_mand_deduct_14c17_amtdouble
pbp_d_mand_deduct_14c18_amtdouble
pbp_d_mand_deduct_14c19_amtdouble
pbp_d_mand_deduct_14c1_amtdouble
pbp_d_mand_deduct_14c20_amtdouble
pbp_d_mand_deduct_14c21_amtdouble
pbp_d_mand_deduct_14c22_amtdouble
pbp_d_mand_deduct_14c2_amtdouble
pbp_d_mand_deduct_14c3_amtdouble
pbp_d_mand_deduct_14c4_amtdouble
pbp_d_mand_deduct_14c5_amtdouble
pbp_d_mand_deduct_14c6_amtdouble
pbp_d_mand_deduct_14c7_amtdouble
pbp_d_mand_deduct_14c8_amtdouble
pbp_d_mand_deduct_14c9_amtdouble
pbp_d_mand_deduct_15_1_amtdouble
pbp_d_mand_deduct_15_2_amtdouble
pbp_d_mand_deduct_15_3_amtdouble
pbp_d_mand_deduct_16a1_amtdouble
pbp_d_mand_deduct_16a2_amtdouble
pbp_d_mand_deduct_16a3_amtdouble
pbp_d_mand_deduct_16a4_amtdouble
pbp_d_mand_deduct_16b1_amtdouble
pbp_d_mand_deduct_16b1_n_amtdouble
pbp_d_mand_deduct_16b2_amtdouble
pbp_d_mand_deduct_16b2_n_amtdouble
pbp_d_mand_deduct_16b3_amtdouble
pbp_d_mand_deduct_16b3_n_amtdouble
pbp_d_mand_deduct_16b4_amtdouble
pbp_d_mand_deduct_16b4_n_amtdouble
pbp_d_mand_deduct_16b5_amtdouble
pbp_d_mand_deduct_16b5_n_amtdouble
pbp_d_mand_deduct_16b6_amtdouble
pbp_d_mand_deduct_16b6_n_amtdouble
pbp_d_mand_deduct_16b7_amtdouble
pbp_d_mand_deduct_16c10_n_amtdouble
pbp_d_mand_deduct_16c1_n_amtdouble
pbp_d_mand_deduct_16c2_n_amtdouble
pbp_d_mand_deduct_16c3_n_amtdouble
pbp_d_mand_deduct_16c4_n_amtdouble
pbp_d_mand_deduct_16c5_n_amtdouble
pbp_d_mand_deduct_16c6_n_amtdouble
pbp_d_mand_deduct_16c7_n_amtdouble
pbp_d_mand_deduct_16c8_n_amtdouble
pbp_d_mand_deduct_16c9_n_amtdouble
pbp_d_mand_deduct_17a1_amtdouble
pbp_d_mand_deduct_17a2_amtdouble
pbp_d_mand_deduct_17b1_amtdouble
pbp_d_mand_deduct_17b2_amtdouble
pbp_d_mand_deduct_17b3_amtdouble
pbp_d_mand_deduct_17b4_amtdouble
pbp_d_mand_deduct_17b5_amtdouble
pbp_d_mand_deduct_18a1_amtdouble
pbp_d_mand_deduct_18a2_amtdouble
pbp_d_mand_deduct_18b1_amtdouble
pbp_d_mand_deduct_18b2_amtdouble
pbp_d_mand_deduct_18b3_amtdouble
pbp_d_mand_deduct_18b4_amtdouble
pbp_d_mand_deduct_18c_amtdouble
pbp_d_mand_deduct_1a1_amtdouble
pbp_d_mand_deduct_1a2_amtdouble
pbp_d_mand_deduct_1a3_amtdouble
pbp_d_mand_deduct_1b1_amtdouble
pbp_d_mand_deduct_1b2_amtdouble
pbp_d_mand_deduct_2_1_amtdouble
pbp_d_mand_deduct_2_2_amtdouble
pbp_d_mand_deduct_3_1_amtdouble
pbp_d_mand_deduct_3_2_amtdouble
pbp_d_mand_deduct_3_3_amtdouble
pbp_d_mand_deduct_3_4_amtdouble
pbp_d_mand_deduct_4c1_amtdouble
pbp_d_mand_deduct_4c2_amtdouble
pbp_d_mand_deduct_4c3_amtdouble
pbp_d_mand_deduct_7b1_amtdouble
pbp_d_mand_deduct_7b2_amtdouble
pbp_d_max_plan_ben_all_svcs_ynstring
pbp_d_max_plan_ben_covdouble
pbp_d_max_plan_ben_cov_posdouble
pbp_d_max_plan_ben_cov_pos_ynstring
pbp_d_max_plan_ben_cov_ynstring
pbp_d_max_plan_ben_servicesstring
pbp_d_max_plan_bensstring
pbp_d_max_plan_periodstring
pbp_d_max_plan_period_dstring
pbp_d_max_plan_period_posstring
pbp_d_maxenr_oopc_amtdouble
pbp_d_maxenr_oopc_bensstring
pbp_d_maxenr_oopc_m_catsstring
pbp_d_maxenr_oopc_m_cats_ynstring
pbp_d_maxenr_oopc_nm_catsstring
pbp_d_maxenr_oopc_nm_cats_ynstring
pbp_d_maxenr_oopc_typestring
pbp_d_maxenr_oopc_ynstring
pbp_d_mco_pay_reduct_amtdouble
pbp_d_mco_pay_reduct_ynstring
pbp_d_mmp_medcaid_bendesc_catsstring
pbp_d_mmp_nm_ynstring
pbp_d_mmp_plancov_bendesc_catsstring
pbp_d_mplusc_bonly_premiumdouble
pbp_d_mplusc_premiumdouble
pbp_d_msa_annual_amtdouble
pbp_d_msa_ded_amtdouble
pbp_d_nmc_deduct_catsstring
pbp_d_nmc_deduct_ynstring
pbp_d_non_deduct_amtdouble
pbp_d_non_deduct_bensstring
pbp_d_non_deduct_m_catsstring
pbp_d_non_deduct_m_ynstring
pbp_d_non_deduct_nm_catsstring
pbp_d_non_deduct_nm_ynstring
pbp_d_non_deduct_partb_ynstring
pbp_d_non_deduct_ynstring
pbp_d_non_maxplan_amtdouble
pbp_d_non_maxplan_nm_catsstring
pbp_d_non_maxplan_nm_ynstring
pbp_d_non_maxplan_perstring
pbp_d_non_maxplan_per_dstring
pbp_d_non_maxplan_ynstring
pbp_d_oon_deduct_all_svcs_ynstring
pbp_d_oon_deduct_amtdouble
pbp_d_oon_deduct_bensstring
pbp_d_oon_deduct_m_catsstring
pbp_d_oon_deduct_m_ynstring
pbp_d_oon_deduct_nm_catsstring
pbp_d_oon_deduct_nm_ynstring
pbp_d_oon_deduct_partb_ynstring
pbp_d_oon_deduct_servicesstring
pbp_d_oon_deduct_typestring
pbp_d_oon_deduct_ynstring
pbp_d_oon_max_enr_m_cat_exstring
pbp_d_oon_max_enr_m_catsstring
pbp_d_oon_max_enr_m_ynstring
pbp_d_oon_max_enr_nm_cat_exstring
pbp_d_oon_max_enr_nm_catsstring
pbp_d_oon_max_enr_nm_ynstring
pbp_d_oon_max_enr_oopc_amtdouble
pbp_d_oon_max_enr_oopc_bensstring
pbp_d_oon_max_enr_oopc_typestring
pbp_d_oon_max_enr_oopc_ynstring
pbp_d_oon_maxplan_nm_catsstring
pbp_d_oon_maxplan_nm_ynstring
pbp_d_oon_mc_ben_only_amtdouble
pbp_d_opt_identifierstring
pbp_d_out_coins_amtdouble
pbp_d_out_coins_periodstring
pbp_d_out_coins_ynstring
pbp_d_out_pocket_all_svcs_ynstring
pbp_d_out_pocket_amtdouble
pbp_d_out_pocket_amt_posdouble
pbp_d_out_pocket_amt_pos_ynstring
pbp_d_out_pocket_amt_typestring
pbp_d_out_pocket_amt_ynstring
pbp_d_out_pocket_mc_only_amtdouble
pbp_d_out_pocket_mc_only_flagstring
pbp_d_out_pocket_periodstring
pbp_d_out_pocket_period_posstring
pbp_d_out_pocket_servicesstring
pbp_d_out_pocket_typestring
pbp_d_partb_prem_reduct_amtdouble
pbp_d_partb_prem_reduct_ynstring
pbp_d_partb_premium_reduce_amtdouble
pbp_d_partb_reduct_amt_calcdouble
pbp_d_prev_svcs_pre_ded_catsstring
pbp_d_prev_svcs_pre_ded_ynstring
pbp_d_prev_svcs_vary_ynstring
pbp_d_rics_app_ded_yn_1string
pbp_d_rics_app_ded_yn_2string
pbp_d_rics_app_ded_yn_3string
pbp_d_rics_app_ded_yn_4string
pbp_d_rics_app_ded_yn_5string
pbp_d_rics_cats_ehc_1string
pbp_d_rics_cats_ehc_2string
pbp_d_rics_cats_ehc_3string
pbp_d_rics_cats_ehc_4string
pbp_d_rics_cats_ehc_5string
pbp_d_rics_cntstring
pbp_d_rics_comb_pkg_num_1string
pbp_d_rics_comb_pkg_num_2string
pbp_d_rics_comb_pkg_num_3string
pbp_d_rics_comb_pkg_num_4string
pbp_d_rics_comb_pkg_num_5string
pbp_d_rics_comb_shr_yn_1string
pbp_d_rics_comb_shr_yn_2string
pbp_d_rics_comb_shr_yn_3string
pbp_d_rics_comb_shr_yn_4string
pbp_d_rics_comb_shr_yn_5string
pbp_d_rics_grp_name_1string
pbp_d_rics_grp_name_2string
pbp_d_rics_grp_name_3string
pbp_d_rics_grp_name_4string
pbp_d_rics_grp_name_5string
pbp_d_rics_max_bene_amt_1double
pbp_d_rics_max_bene_amt_2double
pbp_d_rics_max_bene_amt_3double
pbp_d_rics_max_bene_amt_4double
pbp_d_rics_max_bene_amt_5double
pbp_d_rics_mc_cats_1string
pbp_d_rics_mc_cats_2string
pbp_d_rics_mc_cats_3string
pbp_d_rics_mc_cats_4string
pbp_d_rics_mc_cats_5string
pbp_d_rics_mod_1string
pbp_d_rics_mod_1_dstring
pbp_d_rics_mod_2string
pbp_d_rics_mod_2_dstring
pbp_d_rics_mod_3string
pbp_d_rics_mod_3_dstring
pbp_d_rics_mod_4string
pbp_d_rics_mod_4_dstring
pbp_d_rics_mod_5string
pbp_d_rics_mod_5_dstring
pbp_d_rics_nmc_cats_1string
pbp_d_rics_nmc_cats_2string
pbp_d_rics_nmc_cats_3string
pbp_d_rics_nmc_cats_4string
pbp_d_rics_nmc_cats_5string
pbp_d_rics_period_1string
pbp_d_rics_period_2string
pbp_d_rics_period_3string
pbp_d_rics_period_4string
pbp_d_rics_period_5string
pbp_d_rics_period_d_1string
pbp_d_rics_period_d_2string
pbp_d_rics_period_d_3string
pbp_d_rics_period_d_4string
pbp_d_rics_period_d_5string
pbp_d_rics_ynstring
observed_perioddate
asserted_atdate
effective_period_startdate
effective_period_enddate
cms_vintage_sequenceint
parse_revisionint
parser_artifact_hashstring
source_urlstring
sha256_content_hashstring
pbp_d_combo_19b_lim_extnd_yn_1string
pbp_d_combo_19b_lim_extnd_yn_2string
pbp_d_combo_19b_lim_extnd_yn_3string
pbp_d_combo_19b_lim_extnd_yn_4string
pbp_d_combo_19b_lim_extnd_yn_5string
pbp_d_combo_19b_max_extnd_yn_1string
pbp_d_combo_19b_max_extnd_yn_2string
pbp_d_combo_19b_max_extnd_yn_3string
pbp_d_combo_19b_max_extnd_yn_4string
pbp_d_combo_19b_max_extnd_yn_5string
pbp_d_combo_19b_ssbci_nm_cats_1string
pbp_d_combo_19b_ssbci_nm_cats_2string
pbp_d_combo_19b_ssbci_nm_cats_3string
pbp_d_combo_19b_ssbci_nm_cats_4string
pbp_d_combo_19b_ssbci_nm_cats_5string
pbp_d_combo_19b_uf_nmc_cats_1string
pbp_d_combo_19b_uf_nmc_cats_2string
pbp_d_combo_19b_uf_nmc_cats_3string
pbp_d_combo_19b_uf_nmc_cats_4string
pbp_d_combo_19b_uf_nmc_cats_5string
pbp_d_diff_deduct_11c3_amtdouble
pbp_d_max_plan_ben_* / pbp_d_non_maxplan_* / pbp_d_inn_maxplan_* / pbp_d_oon_maxplan_*Family describing 'maximum plan benefit coverage' caps (annual dollar limits the plan pays on certain supplemental benefits), split by in-network (inn), out-of-network (oon), and non-medical (nm) categories, each with _yn flags, _cats (which benefit categories), _amt, and _period (annual/per-period). Mostly NULL; populated for the minority of plans imposing such caps (e.g. pbp_d_max_plan_bens code '01' = 1,805 rows).
pbp_d_balbill_* (yn, ded_yn, ded_paid_yn, max_pct, min_pct, oopc_max_yn, prov_cats)Balance-billing rules for PFFS/PPO plans: whether providers may balance-bill (yn), the min/max balance-bill percentage allowed (max_pct/min_pct, double), whether it counts toward deductible/MOOP, and which provider categories. Relevant mainly to PFFS (plan_type 09) and PPO.
pbp_d_combo_* (grp_name_1..5, num_grps, max_plan_ben_amt_1..5, share_visit_amt_1..5, mode_1..5, nmc_cats_1..5, period_1..5 ...)Repeating 1-5 'combination benefit group' structure: plans can define up to 5 named combined supplemental-benefit groups, each with its own max-plan-benefit dollar cap, per-visit share amount, frequency mode/period, and covered non-medical categories. pbp_d_combo_num_grps says how many are used. Wide and mostly NULL; this is why the profiler's superset grain pulled in dozens of pbp_d_combo_* columns.
pbp_d_deduct_<service>_amt (acupunc, chiro, dental, eyeexam, eyewear, hearaid, meal, otc, snf, trans, obs, iha, ihp, weuc, other1-3, ...)Per-supplemental-service deductible dollar amounts (double), one column per benefit (acupuncture, chiropractic, dental, vision exam/eyewear, hearing aid, meals, OTC, SNF, transportation, etc.). Sparse/mostly NULL — populated only when that specific supplemental benefit carries its own deductible.
pbp_d_diff_deduct_<NNx>_amt (e.g. 1a1, 10a, 14c1..22, 16b1..7, 17a1, 18c ...)Very large family (~hundreds of columns) of 'differential deductible' amounts keyed to specific PBP Section-B benefit line numbers (the codes like 1a, 10a, 14c10, 16b3 map to Section-B service rows). Each holds the deductible applied to that exact benefit line. Almost entirely NULL; these are the per-line-item deductible detail cells and account for most of the table's 627-column width.
pbp_d_deduct / pbp_d_deduct_14c_amt / pbp_d_deduct_type / pbp_d_deduct_services / pbp_d_deduct_ynGeneric plan-level deductible scalar + its type/services descriptors. NOTE pbp_d_deduct (the bare column) is ENTIRELY NULL in this data (0 non-null even 2020-2026) — a defined-but-unused legacy slot; do not rely on it. Use pbp_d_ann_deduct_amt for the medical deductible.
pbp_d_mmp_medcaid_bendesc_cats / pbp_d_mmp_plancov_bendesc_catsMedicare-Medicaid Plan (MMP / dual-demonstration) descriptors: which benefit-description categories are Medicaid-covered vs plan-covered. Populated only for MMP/dual plans.
effective_period_start / effective_period_end / observed_periodIngestion-added temporal columns. effective_period_start = report_year-01-01, effective_period_end = report_year-12-31 (full plan year), observed_period = report_year-01-01. ALL THREE equal report_year for every row (verified 201,597/201,597). There is NO is_current flag — every quarterly snapshot is retained as its own row.

Query it

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

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