# MA pbp section d

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

Section D: Part D plan-level benefit detail. 463 cols (widest single file). Pharma use case.

**Grain.** One 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). The 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). Adding `version` does NOT reduce the count further, so version is redundant in the key. Each row carries that plan's Section-D content = plan-level deductibles and Maximum-Enrollee out-of-pocket (MOOP) limits. NOTE: 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 use it.** Benchmark 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. Answers: 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. For 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.**
- NOT 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.
- quarter 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.
- No 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.
- bid_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.
- Pervasive 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.

| column | type | meaning |
|---|---|---|
| contract_id | string | CMS 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_id | string | 3-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_id | string | Sub-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'). |
| version | double | PBP 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_year | double | Contract/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. |
| quarter | double | CRITICAL 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_id | string | Concatenated 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. |
| orgtype | string | CMS 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_cov | string | Benefit-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_type | string | PBP 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_premium | double | Monthly 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_yn | string |  |
| pbp_d_ann_deduct_amt | double | Annual 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_type | string |  |
| pbp_d_ann_deduct_bens | string |  |
| pbp_d_ann_deduct_comb_type | string |  |
| pbp_d_ann_deduct_inn_mc_cats | string |  |
| pbp_d_ann_deduct_inn_mc_yn | string |  |
| pbp_d_ann_deduct_inn_nmc_cats | string |  |
| pbp_d_ann_deduct_inn_nmc_yn | string |  |
| pbp_d_ann_deduct_oon_nmc_cats | string |  |
| pbp_d_ann_deduct_oon_nmc_yn | string |  |
| pbp_d_ann_deduct_yn | string | Does 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_yn | string |  |
| pbp_d_balbill_ded_yn | string |  |
| pbp_d_balbill_max_pct | double |  |
| pbp_d_balbill_min_pct | double |  |
| pbp_d_balbill_oopc_max_paid_yn | string |  |
| pbp_d_balbill_oopc_max_yn | string |  |
| pbp_d_balbill_prov_cats | string |  |
| pbp_d_balbill_yn | string |  |
| pbp_d_comb_deduct_all_svcs_yn | string |  |
| pbp_d_comb_deduct_amt | double | COMBINED 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_bens | string |  |
| pbp_d_comb_deduct_inn_m_cats | string |  |
| pbp_d_comb_deduct_inn_m_yn | string |  |
| pbp_d_comb_deduct_inn_nm_cats | string |  |
| pbp_d_comb_deduct_inn_nm_yn | string |  |
| pbp_d_comb_deduct_oon_m_cats | string |  |
| pbp_d_comb_deduct_oon_m_yn | string |  |
| pbp_d_comb_deduct_oon_nm_cats | string |  |
| pbp_d_comb_deduct_oon_nm_yn | string |  |
| pbp_d_comb_deduct_partb_yn | string |  |
| pbp_d_comb_deduct_services | string |  |
| pbp_d_comb_deduct_type | string |  |
| pbp_d_comb_deduct_yn | string |  |
| pbp_d_comb_max_enr_all_svcs_yn | string |  |
| pbp_d_comb_max_enr_amt | double | HEADLINE 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_type | string |  |
| pbp_d_comb_max_enr_amt_yn | string | Whether 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_cats | string |  |
| pbp_d_comb_max_enr_inn_m_yn | string |  |
| pbp_d_comb_max_enr_inn_mcat_ex | string |  |
| pbp_d_comb_max_enr_inn_nm_cats | string |  |
| pbp_d_comb_max_enr_inn_nm_yn | string |  |
| pbp_d_comb_max_enr_inn_nmcatex | string |  |
| pbp_d_comb_max_enr_mc_only_amt | double |  |
| pbp_d_comb_max_enr_oon_m_cats | string |  |
| pbp_d_comb_max_enr_oon_m_yn | string |  |
| pbp_d_comb_max_enr_oon_mcat_ex | string |  |
| pbp_d_comb_max_enr_oon_nm_cats | string |  |
| pbp_d_comb_max_enr_oon_nm_yn | string |  |
| pbp_d_comb_max_enr_oon_nmcatex | string |  |
| pbp_d_comb_max_enr_oopc_bens | string |  |
| pbp_d_comb_max_enr_period | string |  |
| pbp_d_comb_max_enr_services | string |  |
| pbp_d_comb_max_enr_type | string |  |
| pbp_d_comb_max_mc_only_flag | string |  |
| pbp_d_comb_mc_ben_only_amt | double |  |
| pbp_d_combo_enrollee_lim_yn_1 | string |  |
| pbp_d_combo_enrollee_lim_yn_2 | string |  |
| pbp_d_combo_enrollee_lim_yn_3 | string |  |
| pbp_d_combo_enrollee_lim_yn_4 | string |  |
| pbp_d_combo_enrollee_lim_yn_5 | string |  |
| pbp_d_combo_grp_name_1 | string |  |
| pbp_d_combo_grp_name_2 | string |  |
| pbp_d_combo_grp_name_3 | string |  |
| pbp_d_combo_grp_name_4 | string |  |
| pbp_d_combo_grp_name_5 | string |  |
| pbp_d_combo_max_plan_ben_amt_1 | double |  |
| pbp_d_combo_max_plan_ben_amt_2 | double |  |
| pbp_d_combo_max_plan_ben_amt_3 | double |  |
| pbp_d_combo_max_plan_ben_amt_4 | double |  |
| pbp_d_combo_max_plan_ben_amt_5 | double |  |
| pbp_d_combo_max_plan_ben_yn_1 | string |  |
| pbp_d_combo_max_plan_ben_yn_2 | string |  |
| pbp_d_combo_max_plan_ben_yn_3 | string |  |
| pbp_d_combo_max_plan_ben_yn_4 | string |  |
| pbp_d_combo_max_plan_ben_yn_5 | string |  |
| pbp_d_combo_max_plan_perdoth_1 | string |  |
| pbp_d_combo_max_plan_perdoth_2 | string |  |
| pbp_d_combo_max_plan_perdoth_3 | string |  |
| pbp_d_combo_max_plan_period_1 | string |  |
| pbp_d_combo_max_plan_period_2 | string |  |
| pbp_d_combo_max_plan_period_3 | string |  |
| pbp_d_combo_max_plan_period_4 | string |  |
| pbp_d_combo_max_plan_period_5 | string |  |
| pbp_d_combo_max_plan_prd_d_1 | string |  |
| pbp_d_combo_max_plan_prd_d_2 | string |  |
| pbp_d_combo_max_plan_prd_d_3 | string |  |
| pbp_d_combo_max_plan_prd_d_4 | string |  |
| pbp_d_combo_max_plan_prd_d_5 | string |  |
| pbp_d_combo_mode_1 | string |  |
| pbp_d_combo_mode_2 | string |  |
| pbp_d_combo_mode_3 | string |  |
| pbp_d_combo_mode_4 | string |  |
| pbp_d_combo_mode_5 | string |  |
| pbp_d_combo_mode_other_1 | string |  |
| pbp_d_combo_mode_other_2 | string |  |
| pbp_d_combo_mode_other_3 | string |  |
| pbp_d_combo_mode_other_4 | string |  |
| pbp_d_combo_mode_other_5 | string |  |
| pbp_d_combo_nmc_cats_1 | string |  |
| pbp_d_combo_nmc_cats_2 | string |  |
| pbp_d_combo_nmc_cats_3 | string |  |
| pbp_d_combo_nmc_cats_4 | string |  |
| pbp_d_combo_nmc_cats_5 | string |  |
| pbp_d_combo_num_grps | string |  |
| pbp_d_combo_share_visit_amt_1 | double |  |
| pbp_d_combo_share_visit_amt_2 | double |  |
| pbp_d_combo_share_visit_amt_3 | double |  |
| pbp_d_combo_share_visit_amt_4 | double |  |
| pbp_d_combo_share_visit_amt_5 | double |  |
| pbp_d_combo_share_visit_yn_1 | string |  |
| pbp_d_combo_share_visit_yn_2 | string |  |
| pbp_d_combo_share_visit_yn_3 | string |  |
| pbp_d_combo_share_visit_yn_4 | string |  |
| pbp_d_combo_share_visit_yn_5 | string |  |
| pbp_d_combo_shr_vst_period_1 | string |  |
| pbp_d_combo_shr_vst_period_2 | string |  |
| pbp_d_combo_shr_vst_period_3 | string |  |
| pbp_d_combo_shr_vst_period_4 | string |  |
| pbp_d_combo_shr_vst_period_5 | string |  |
| pbp_d_combo_supp_ben_yn | string |  |
| pbp_d_deduct | double |  |
| pbp_d_deduct_14c_amt | double |  |
| pbp_d_deduct_acupunc_amt | double |  |
| pbp_d_deduct_all_services_yn | string |  |
| pbp_d_deduct_ape_amt | double |  |
| pbp_d_deduct_chiro_amt | double |  |
| pbp_d_deduct_compdental_amt | double |  |
| pbp_d_deduct_cprs_amt | double |  |
| pbp_d_deduct_dsnp_his_amt | double |  |
| pbp_d_deduct_eyeexam_amt | double |  |
| pbp_d_deduct_eyewear_amt | double |  |
| pbp_d_deduct_hearaid_amt | double |  |
| pbp_d_deduct_hearexam_amt | double |  |
| pbp_d_deduct_iha_amt | double |  |
| pbp_d_deduct_ihp_amt | double |  |
| pbp_d_deduct_meal_amt | double |  |
| pbp_d_deduct_obs_amt | double |  |
| pbp_d_deduct_otc_amt | double |  |
| pbp_d_deduct_other1_amt | double |  |
| pbp_d_deduct_other2_amt | double |  |
| pbp_d_deduct_other3_amt | double |  |
| pbp_d_deduct_pod_amt | double |  |
| pbp_d_deduct_prevdental_amt | double |  |
| pbp_d_deduct_services | string |  |
| pbp_d_deduct_snf_amt | double |  |
| pbp_d_deduct_trans_amt | double |  |
| pbp_d_deduct_type | string |  |
| pbp_d_deduct_weuc_amt | double |  |
| pbp_d_deduct_yn | string |  |
| pbp_d_diff_deduct_10a1_amt | double |  |
| pbp_d_diff_deduct_10a2_amt | double |  |
| pbp_d_diff_deduct_10a_amt | double |  |
| pbp_d_diff_deduct_10b1_amt | double |  |
| pbp_d_diff_deduct_10b2_amt | double |  |
| pbp_d_diff_deduct_10b_amt | double |  |
| pbp_d_diff_deduct_11a_amt | double |  |
| pbp_d_diff_deduct_11b1_amt | double |  |
| pbp_d_diff_deduct_11b2_amt | double |  |
| pbp_d_diff_deduct_11b_amt | double |  |
| pbp_d_diff_deduct_11c1_amt | double |  |
| pbp_d_diff_deduct_11c2_amt | double |  |
| pbp_d_diff_deduct_11c_amt | double |  |
| pbp_d_diff_deduct_12_amt | double |  |
| pbp_d_diff_deduct_13a_amt | double |  |
| pbp_d_diff_deduct_13b_amt | double |  |
| pbp_d_diff_deduct_13c_amt | double |  |
| pbp_d_diff_deduct_13d_amt | double |  |
| pbp_d_diff_deduct_13e_amt | double |  |
| pbp_d_diff_deduct_13f_amt | double |  |
| pbp_d_diff_deduct_13g_amt | double |  |
| pbp_d_diff_deduct_14a_amt | double |  |
| pbp_d_diff_deduct_14b_amt | double |  |
| pbp_d_diff_deduct_14c10_amt | double |  |
| pbp_d_diff_deduct_14c11_amt | double |  |
| pbp_d_diff_deduct_14c12_amt | double |  |
| pbp_d_diff_deduct_14c13_amt | double |  |
| pbp_d_diff_deduct_14c14_amt | double |  |
| pbp_d_diff_deduct_14c15_amt | double |  |
| pbp_d_diff_deduct_14c16_amt | double |  |
| pbp_d_diff_deduct_14c17_amt | double |  |
| pbp_d_diff_deduct_14c18_amt | double |  |
| pbp_d_diff_deduct_14c19_amt | double |  |
| pbp_d_diff_deduct_14c1_amt | double |  |
| pbp_d_diff_deduct_14c20_amt | double |  |
| pbp_d_diff_deduct_14c21_amt | double |  |
| pbp_d_diff_deduct_14c22_amt | double |  |
| pbp_d_diff_deduct_14c2_amt | double |  |
| pbp_d_diff_deduct_14c3_amt | double |  |
| pbp_d_diff_deduct_14c4_amt | double |  |
| pbp_d_diff_deduct_14c5_amt | double |  |
| pbp_d_diff_deduct_14c6_amt | double |  |
| pbp_d_diff_deduct_14c7_amt | double |  |
| pbp_d_diff_deduct_14c8_amt | double |  |
| pbp_d_diff_deduct_14c9_amt | double |  |
| pbp_d_diff_deduct_14c_amt | double |  |
| pbp_d_diff_deduct_14d_amt | double |  |
| pbp_d_diff_deduct_14e1_amt | double |  |
| pbp_d_diff_deduct_14e2_amt | double |  |
| pbp_d_diff_deduct_14e3_amt | double |  |
| pbp_d_diff_deduct_14e4_amt | double |  |
| pbp_d_diff_deduct_14e5_amt | double |  |
| pbp_d_diff_deduct_14e6_amt | double |  |
| pbp_d_diff_deduct_14e_amt | double |  |
| pbp_d_diff_deduct_14f_amt | double |  |
| pbp_d_diff_deduct_14g_amt | double |  |
| pbp_d_diff_deduct_14h_amt | double |  |
| pbp_d_diff_deduct_14i_amt | double |  |
| pbp_d_diff_deduct_14j_amt | double |  |
| pbp_d_diff_deduct_15_1_amt | double |  |
| pbp_d_diff_deduct_15_2_amt | double |  |
| pbp_d_diff_deduct_15_3_amt | double |  |
| pbp_d_diff_deduct_15_amt | double |  |
| pbp_d_diff_deduct_15_nmc_amt | double |  |
| pbp_d_diff_deduct_16a1_amt | double |  |
| pbp_d_diff_deduct_16a2_amt | double |  |
| pbp_d_diff_deduct_16a3_amt | double |  |
| pbp_d_diff_deduct_16a4_amt | double |  |
| pbp_d_diff_deduct_16a_amt | double |  |
| pbp_d_diff_deduct_16a_n_amt | double |  |
| pbp_d_diff_deduct_16b1_amt | double |  |
| pbp_d_diff_deduct_16b1_n_amt | double |  |
| pbp_d_diff_deduct_16b2_amt | double |  |
| pbp_d_diff_deduct_16b2_n_amt | double |  |
| pbp_d_diff_deduct_16b3_amt | double |  |
| pbp_d_diff_deduct_16b3_n_amt | double |  |
| pbp_d_diff_deduct_16b4_amt | double |  |
| pbp_d_diff_deduct_16b4_n_amt | double |  |
| pbp_d_diff_deduct_16b5_amt | double |  |
| pbp_d_diff_deduct_16b5_n_amt | double |  |
| pbp_d_diff_deduct_16b6_amt | double |  |
| pbp_d_diff_deduct_16b6_n_amt | double |  |
| pbp_d_diff_deduct_16b7_amt | double |  |
| pbp_d_diff_deduct_16b_amt | double |  |
| pbp_d_diff_deduct_16c10_n_amt | double |  |
| pbp_d_diff_deduct_16c1_n_amt | double |  |
| pbp_d_diff_deduct_16c2_n_amt | double |  |
| pbp_d_diff_deduct_16c3_n_amt | double |  |
| pbp_d_diff_deduct_16c4_n_amt | double |  |
| pbp_d_diff_deduct_16c5_n_amt | double |  |
| pbp_d_diff_deduct_16c6_n_amt | double |  |
| pbp_d_diff_deduct_16c7_n_amt | double |  |
| pbp_d_diff_deduct_16c8_n_amt | double |  |
| pbp_d_diff_deduct_16c9_n_amt | double |  |
| pbp_d_diff_deduct_17a1_amt | double |  |
| pbp_d_diff_deduct_17a2_amt | double |  |
| pbp_d_diff_deduct_17a_amt | double |  |
| pbp_d_diff_deduct_17b1_amt | double |  |
| pbp_d_diff_deduct_17b2_amt | double |  |
| pbp_d_diff_deduct_17b3_amt | double |  |
| pbp_d_diff_deduct_17b4_amt | double |  |
| pbp_d_diff_deduct_17b5_amt | double |  |
| pbp_d_diff_deduct_17b_amt | double |  |
| pbp_d_diff_deduct_18a1_amt | double |  |
| pbp_d_diff_deduct_18a2_amt | double |  |
| pbp_d_diff_deduct_18a_amt | double |  |
| pbp_d_diff_deduct_18b1_amt | double |  |
| pbp_d_diff_deduct_18b2_amt | double |  |
| pbp_d_diff_deduct_18b3_amt | double |  |
| pbp_d_diff_deduct_18b4_amt | double |  |
| pbp_d_diff_deduct_18b_amt | double |  |
| pbp_d_diff_deduct_18c_amt | double |  |
| pbp_d_diff_deduct_1a1_amt | double |  |
| pbp_d_diff_deduct_1a1_t2_amt | double |  |
| pbp_d_diff_deduct_1a1_t3_amt | double |  |
| pbp_d_diff_deduct_1a2_amt | double |  |
| pbp_d_diff_deduct_1a3_amt | double |  |
| pbp_d_diff_deduct_1a_amt | double |  |
| pbp_d_diff_deduct_1a_b_amt | double |  |
| pbp_d_diff_deduct_1a_t1_amt | double |  |
| pbp_d_diff_deduct_1a_t2_amt | double |  |
| pbp_d_diff_deduct_1a_t3_amt | double |  |
| pbp_d_diff_deduct_1b1_amt | double |  |
| pbp_d_diff_deduct_1b1_t2_amt | double |  |
| pbp_d_diff_deduct_1b1_t3_amt | double |  |
| pbp_d_diff_deduct_1b2_amt | double |  |
| pbp_d_diff_deduct_1b_amt | double |  |
| pbp_d_diff_deduct_1b_b_amt | double |  |
| pbp_d_diff_deduct_1b_t1_amt | double |  |
| pbp_d_diff_deduct_1b_t2_amt | double |  |
| pbp_d_diff_deduct_1b_t3_amt | double |  |
| pbp_d_diff_deduct_20_amt | double |  |
| pbp_d_diff_deduct_2_1_amt | double |  |
| pbp_d_diff_deduct_2_1_t2_amt | double |  |
| pbp_d_diff_deduct_2_1_t3_amt | double |  |
| pbp_d_diff_deduct_2_2_amt | double |  |
| pbp_d_diff_deduct_2_amt | double |  |
| pbp_d_diff_deduct_2_b_amt | double |  |
| pbp_d_diff_deduct_2_t1_amt | double |  |
| pbp_d_diff_deduct_2_t2_amt | double |  |
| pbp_d_diff_deduct_2_t3_amt | double |  |
| pbp_d_diff_deduct_3_1_amt | double |  |
| pbp_d_diff_deduct_3_1_nmc_amt | double |  |
| pbp_d_diff_deduct_3_2_amt | double |  |
| pbp_d_diff_deduct_3_2_nmc_amt | double |  |
| pbp_d_diff_deduct_3_3_amt | double |  |
| pbp_d_diff_deduct_3_3_nmc_amt | double |  |
| pbp_d_diff_deduct_3_4_amt | double |  |
| pbp_d_diff_deduct_3_4_nmc_amt | double |  |
| pbp_d_diff_deduct_3_amt | double |  |
| pbp_d_diff_deduct_4a_amt | double |  |
| pbp_d_diff_deduct_4b_amt | double |  |
| pbp_d_diff_deduct_4c1_amt | double |  |
| pbp_d_diff_deduct_4c2_amt | double |  |
| pbp_d_diff_deduct_4c3_amt | double |  |
| pbp_d_diff_deduct_4c_amt | double |  |
| pbp_d_diff_deduct_5_amt | double |  |
| pbp_d_diff_deduct_5b_amt | double |  |
| pbp_d_diff_deduct_6_amt | double |  |
| pbp_d_diff_deduct_7a_amt | double |  |
| pbp_d_diff_deduct_7b1_amt | double |  |
| pbp_d_diff_deduct_7b2_amt | double |  |
| pbp_d_diff_deduct_7b_amt | double |  |
| pbp_d_diff_deduct_7c_amt | double |  |
| pbp_d_diff_deduct_7d_amt | double |  |
| pbp_d_diff_deduct_7e1_amt | double |  |
| pbp_d_diff_deduct_7e2_amt | double |  |
| pbp_d_diff_deduct_7e_amt | double |  |
| pbp_d_diff_deduct_7f_amt | double |  |
| pbp_d_diff_deduct_7f_nmc_amt | double |  |
| pbp_d_diff_deduct_7g_amt | double |  |
| pbp_d_diff_deduct_7h1_amt | double |  |
| pbp_d_diff_deduct_7h2_amt | double |  |
| pbp_d_diff_deduct_7h_amt | double |  |
| pbp_d_diff_deduct_7i_amt | double |  |
| pbp_d_diff_deduct_7j_amt | double |  |
| pbp_d_diff_deduct_7k_amt | double |  |
| pbp_d_diff_deduct_8a1_amt | double |  |
| pbp_d_diff_deduct_8a2_amt | double |  |
| pbp_d_diff_deduct_8a_amt | double |  |
| pbp_d_diff_deduct_8b1_amt | double |  |
| pbp_d_diff_deduct_8b2_amt | double |  |
| pbp_d_diff_deduct_8b3_amt | double |  |
| pbp_d_diff_deduct_8b_amt | double |  |
| pbp_d_diff_deduct_9a1_amt | double |  |
| pbp_d_diff_deduct_9a2_amt | double |  |
| pbp_d_diff_deduct_9a_amt | double |  |
| pbp_d_diff_deduct_9b_amt | double |  |
| pbp_d_diff_deduct_9c1_amt | double |  |
| pbp_d_diff_deduct_9c2_amt | double |  |
| pbp_d_diff_deduct_9c_amt | double |  |
| pbp_d_diff_deduct_9d_amt | double |  |
| pbp_d_diff_deduct_9d_nmc_amt | double |  |
| pbp_d_diff_deduct_cats | string |  |
| pbp_d_diff_deduct_yn | string |  |
| pbp_d_in_coins_amt | double |  |
| pbp_d_in_coins_period | string |  |
| pbp_d_in_coins_yn | string |  |
| pbp_d_inn_deduct_all_svcs_yn | string |  |
| pbp_d_inn_deduct_amt | double |  |
| pbp_d_inn_deduct_bens | string |  |
| pbp_d_inn_deduct_m_cats | string |  |
| pbp_d_inn_deduct_m_yn | string |  |
| pbp_d_inn_deduct_nm_cats | string |  |
| pbp_d_inn_deduct_nm_yn | string |  |
| pbp_d_inn_deduct_partb_yn | string |  |
| pbp_d_inn_deduct_services | string |  |
| pbp_d_inn_deduct_type | string |  |
| pbp_d_inn_deduct_yn | string |  |
| pbp_d_inn_max_enr_m_cat_ex | string |  |
| pbp_d_inn_max_enr_m_cats | string |  |
| pbp_d_inn_max_enr_m_yn | string |  |
| pbp_d_inn_max_enr_nm_cat_ex | string |  |
| pbp_d_inn_max_enr_nm_cats | string |  |
| pbp_d_inn_max_enr_nm_yn | string |  |
| pbp_d_inn_max_enr_oopc_bens | string |  |
| pbp_d_inn_maxplan_nm_cats | string |  |
| pbp_d_inn_maxplan_nm_yn | string |  |
| pbp_d_inn_mc_ben_only_amt | double |  |
| pbp_d_mand_deduct_10b1_amt | double |  |
| pbp_d_mand_deduct_10b2_amt | double |  |
| pbp_d_mand_deduct_14c10_amt | double |  |
| pbp_d_mand_deduct_14c11_amt | double |  |
| pbp_d_mand_deduct_14c12_amt | double |  |
| pbp_d_mand_deduct_14c13_amt | double |  |
| pbp_d_mand_deduct_14c14_amt | double |  |
| pbp_d_mand_deduct_14c15_amt | double |  |
| pbp_d_mand_deduct_14c16_amt | double |  |
| pbp_d_mand_deduct_14c17_amt | double |  |
| pbp_d_mand_deduct_14c18_amt | double |  |
| pbp_d_mand_deduct_14c19_amt | double |  |
| pbp_d_mand_deduct_14c1_amt | double |  |
| pbp_d_mand_deduct_14c20_amt | double |  |
| pbp_d_mand_deduct_14c21_amt | double |  |
| pbp_d_mand_deduct_14c22_amt | double |  |
| pbp_d_mand_deduct_14c2_amt | double |  |
| pbp_d_mand_deduct_14c3_amt | double |  |
| pbp_d_mand_deduct_14c4_amt | double |  |
| pbp_d_mand_deduct_14c5_amt | double |  |
| pbp_d_mand_deduct_14c6_amt | double |  |
| pbp_d_mand_deduct_14c7_amt | double |  |
| pbp_d_mand_deduct_14c8_amt | double |  |
| pbp_d_mand_deduct_14c9_amt | double |  |
| pbp_d_mand_deduct_15_1_amt | double |  |
| pbp_d_mand_deduct_15_2_amt | double |  |
| pbp_d_mand_deduct_15_3_amt | double |  |
| pbp_d_mand_deduct_16a1_amt | double |  |
| pbp_d_mand_deduct_16a2_amt | double |  |
| pbp_d_mand_deduct_16a3_amt | double |  |
| pbp_d_mand_deduct_16a4_amt | double |  |
| pbp_d_mand_deduct_16b1_amt | double |  |
| pbp_d_mand_deduct_16b1_n_amt | double |  |
| pbp_d_mand_deduct_16b2_amt | double |  |
| pbp_d_mand_deduct_16b2_n_amt | double |  |
| pbp_d_mand_deduct_16b3_amt | double |  |
| pbp_d_mand_deduct_16b3_n_amt | double |  |
| pbp_d_mand_deduct_16b4_amt | double |  |
| pbp_d_mand_deduct_16b4_n_amt | double |  |
| pbp_d_mand_deduct_16b5_amt | double |  |
| pbp_d_mand_deduct_16b5_n_amt | double |  |
| pbp_d_mand_deduct_16b6_amt | double |  |
| pbp_d_mand_deduct_16b6_n_amt | double |  |
| pbp_d_mand_deduct_16b7_amt | double |  |
| pbp_d_mand_deduct_16c10_n_amt | double |  |
| pbp_d_mand_deduct_16c1_n_amt | double |  |
| pbp_d_mand_deduct_16c2_n_amt | double |  |
| pbp_d_mand_deduct_16c3_n_amt | double |  |
| pbp_d_mand_deduct_16c4_n_amt | double |  |
| pbp_d_mand_deduct_16c5_n_amt | double |  |
| pbp_d_mand_deduct_16c6_n_amt | double |  |
| pbp_d_mand_deduct_16c7_n_amt | double |  |
| pbp_d_mand_deduct_16c8_n_amt | double |  |
| pbp_d_mand_deduct_16c9_n_amt | double |  |
| pbp_d_mand_deduct_17a1_amt | double |  |
| pbp_d_mand_deduct_17a2_amt | double |  |
| pbp_d_mand_deduct_17b1_amt | double |  |
| pbp_d_mand_deduct_17b2_amt | double |  |
| pbp_d_mand_deduct_17b3_amt | double |  |
| pbp_d_mand_deduct_17b4_amt | double |  |
| pbp_d_mand_deduct_17b5_amt | double |  |
| pbp_d_mand_deduct_18a1_amt | double |  |
| pbp_d_mand_deduct_18a2_amt | double |  |
| pbp_d_mand_deduct_18b1_amt | double |  |
| pbp_d_mand_deduct_18b2_amt | double |  |
| pbp_d_mand_deduct_18b3_amt | double |  |
| pbp_d_mand_deduct_18b4_amt | double |  |
| pbp_d_mand_deduct_18c_amt | double |  |
| pbp_d_mand_deduct_1a1_amt | double |  |
| pbp_d_mand_deduct_1a2_amt | double |  |
| pbp_d_mand_deduct_1a3_amt | double |  |
| pbp_d_mand_deduct_1b1_amt | double |  |
| pbp_d_mand_deduct_1b2_amt | double |  |
| pbp_d_mand_deduct_2_1_amt | double |  |
| pbp_d_mand_deduct_2_2_amt | double |  |
| pbp_d_mand_deduct_3_1_amt | double |  |
| pbp_d_mand_deduct_3_2_amt | double |  |
| pbp_d_mand_deduct_3_3_amt | double |  |
| pbp_d_mand_deduct_3_4_amt | double |  |
| pbp_d_mand_deduct_4c1_amt | double |  |
| pbp_d_mand_deduct_4c2_amt | double |  |
| pbp_d_mand_deduct_4c3_amt | double |  |
| pbp_d_mand_deduct_7b1_amt | double |  |
| pbp_d_mand_deduct_7b2_amt | double |  |
| pbp_d_max_plan_ben_all_svcs_yn | string |  |
| pbp_d_max_plan_ben_cov | double |  |
| pbp_d_max_plan_ben_cov_pos | double |  |
| pbp_d_max_plan_ben_cov_pos_yn | string |  |
| pbp_d_max_plan_ben_cov_yn | string |  |
| pbp_d_max_plan_ben_services | string |  |
| pbp_d_max_plan_bens | string |  |
| pbp_d_max_plan_period | string |  |
| pbp_d_max_plan_period_d | string |  |
| pbp_d_max_plan_period_pos | string |  |
| pbp_d_maxenr_oopc_amt | double |  |
| pbp_d_maxenr_oopc_bens | string |  |
| pbp_d_maxenr_oopc_m_cats | string |  |
| pbp_d_maxenr_oopc_m_cats_yn | string |  |
| pbp_d_maxenr_oopc_nm_cats | string |  |
| pbp_d_maxenr_oopc_nm_cats_yn | string |  |
| pbp_d_maxenr_oopc_type | string |  |
| pbp_d_maxenr_oopc_yn | string |  |
| pbp_d_mco_pay_reduct_amt | double |  |
| pbp_d_mco_pay_reduct_yn | string |  |
| pbp_d_mmp_medcaid_bendesc_cats | string |  |
| pbp_d_mmp_nm_yn | string |  |
| pbp_d_mmp_plancov_bendesc_cats | string |  |
| pbp_d_mplusc_bonly_premium | double |  |
| pbp_d_mplusc_premium | double |  |
| pbp_d_msa_annual_amt | double |  |
| pbp_d_msa_ded_amt | double |  |
| pbp_d_nmc_deduct_cats | string |  |
| pbp_d_nmc_deduct_yn | string |  |
| pbp_d_non_deduct_amt | double |  |
| pbp_d_non_deduct_bens | string |  |
| pbp_d_non_deduct_m_cats | string |  |
| pbp_d_non_deduct_m_yn | string |  |
| pbp_d_non_deduct_nm_cats | string |  |
| pbp_d_non_deduct_nm_yn | string |  |
| pbp_d_non_deduct_partb_yn | string |  |
| pbp_d_non_deduct_yn | string |  |
| pbp_d_non_maxplan_amt | double |  |
| pbp_d_non_maxplan_nm_cats | string |  |
| pbp_d_non_maxplan_nm_yn | string |  |
| pbp_d_non_maxplan_per | string |  |
| pbp_d_non_maxplan_per_d | string |  |
| pbp_d_non_maxplan_yn | string |  |
| pbp_d_oon_deduct_all_svcs_yn | string |  |
| pbp_d_oon_deduct_amt | double |  |
| pbp_d_oon_deduct_bens | string |  |
| pbp_d_oon_deduct_m_cats | string |  |
| pbp_d_oon_deduct_m_yn | string |  |
| pbp_d_oon_deduct_nm_cats | string |  |
| pbp_d_oon_deduct_nm_yn | string |  |
| pbp_d_oon_deduct_partb_yn | string |  |
| pbp_d_oon_deduct_services | string |  |
| pbp_d_oon_deduct_type | string |  |
| pbp_d_oon_deduct_yn | string |  |
| pbp_d_oon_max_enr_m_cat_ex | string |  |
| pbp_d_oon_max_enr_m_cats | string |  |
| pbp_d_oon_max_enr_m_yn | string |  |
| pbp_d_oon_max_enr_nm_cat_ex | string |  |
| pbp_d_oon_max_enr_nm_cats | string |  |
| pbp_d_oon_max_enr_nm_yn | string |  |
| pbp_d_oon_max_enr_oopc_amt | double |  |
| pbp_d_oon_max_enr_oopc_bens | string |  |
| pbp_d_oon_max_enr_oopc_type | string |  |
| pbp_d_oon_max_enr_oopc_yn | string |  |
| pbp_d_oon_maxplan_nm_cats | string |  |
| pbp_d_oon_maxplan_nm_yn | string |  |
| pbp_d_oon_mc_ben_only_amt | double |  |
| pbp_d_opt_identifier | string |  |
| pbp_d_out_coins_amt | double |  |
| pbp_d_out_coins_period | string |  |
| pbp_d_out_coins_yn | string |  |
| pbp_d_out_pocket_all_svcs_yn | string |  |
| pbp_d_out_pocket_amt | double |  |
| pbp_d_out_pocket_amt_pos | double |  |
| pbp_d_out_pocket_amt_pos_yn | string |  |
| pbp_d_out_pocket_amt_type | string |  |
| pbp_d_out_pocket_amt_yn | string |  |
| pbp_d_out_pocket_mc_only_amt | double |  |
| pbp_d_out_pocket_mc_only_flag | string |  |
| pbp_d_out_pocket_period | string |  |
| pbp_d_out_pocket_period_pos | string |  |
| pbp_d_out_pocket_services | string |  |
| pbp_d_out_pocket_type | string |  |
| pbp_d_partb_prem_reduct_amt | double |  |
| pbp_d_partb_prem_reduct_yn | string |  |
| pbp_d_partb_premium_reduce_amt | double |  |
| pbp_d_partb_reduct_amt_calc | double |  |
| pbp_d_prev_svcs_pre_ded_cats | string |  |
| pbp_d_prev_svcs_pre_ded_yn | string |  |
| pbp_d_prev_svcs_vary_yn | string |  |
| pbp_d_rics_app_ded_yn_1 | string |  |
| pbp_d_rics_app_ded_yn_2 | string |  |
| pbp_d_rics_app_ded_yn_3 | string |  |
| pbp_d_rics_app_ded_yn_4 | string |  |
| pbp_d_rics_app_ded_yn_5 | string |  |
| pbp_d_rics_cats_ehc_1 | string |  |
| pbp_d_rics_cats_ehc_2 | string |  |
| pbp_d_rics_cats_ehc_3 | string |  |
| pbp_d_rics_cats_ehc_4 | string |  |
| pbp_d_rics_cats_ehc_5 | string |  |
| pbp_d_rics_cnt | string |  |
| pbp_d_rics_comb_pkg_num_1 | string |  |
| pbp_d_rics_comb_pkg_num_2 | string |  |
| pbp_d_rics_comb_pkg_num_3 | string |  |
| pbp_d_rics_comb_pkg_num_4 | string |  |
| pbp_d_rics_comb_pkg_num_5 | string |  |
| pbp_d_rics_comb_shr_yn_1 | string |  |
| pbp_d_rics_comb_shr_yn_2 | string |  |
| pbp_d_rics_comb_shr_yn_3 | string |  |
| pbp_d_rics_comb_shr_yn_4 | string |  |
| pbp_d_rics_comb_shr_yn_5 | string |  |
| pbp_d_rics_grp_name_1 | string |  |
| pbp_d_rics_grp_name_2 | string |  |
| pbp_d_rics_grp_name_3 | string |  |
| pbp_d_rics_grp_name_4 | string |  |
| pbp_d_rics_grp_name_5 | string |  |
| pbp_d_rics_max_bene_amt_1 | double |  |
| pbp_d_rics_max_bene_amt_2 | double |  |
| pbp_d_rics_max_bene_amt_3 | double |  |
| pbp_d_rics_max_bene_amt_4 | double |  |
| pbp_d_rics_max_bene_amt_5 | double |  |
| pbp_d_rics_mc_cats_1 | string |  |
| pbp_d_rics_mc_cats_2 | string |  |
| pbp_d_rics_mc_cats_3 | string |  |
| pbp_d_rics_mc_cats_4 | string |  |
| pbp_d_rics_mc_cats_5 | string |  |
| pbp_d_rics_mod_1 | string |  |
| pbp_d_rics_mod_1_d | string |  |
| pbp_d_rics_mod_2 | string |  |
| pbp_d_rics_mod_2_d | string |  |
| pbp_d_rics_mod_3 | string |  |
| pbp_d_rics_mod_3_d | string |  |
| pbp_d_rics_mod_4 | string |  |
| pbp_d_rics_mod_4_d | string |  |
| pbp_d_rics_mod_5 | string |  |
| pbp_d_rics_mod_5_d | string |  |
| pbp_d_rics_nmc_cats_1 | string |  |
| pbp_d_rics_nmc_cats_2 | string |  |
| pbp_d_rics_nmc_cats_3 | string |  |
| pbp_d_rics_nmc_cats_4 | string |  |
| pbp_d_rics_nmc_cats_5 | string |  |
| pbp_d_rics_period_1 | string |  |
| pbp_d_rics_period_2 | string |  |
| pbp_d_rics_period_3 | string |  |
| pbp_d_rics_period_4 | string |  |
| pbp_d_rics_period_5 | string |  |
| pbp_d_rics_period_d_1 | string |  |
| pbp_d_rics_period_d_2 | string |  |
| pbp_d_rics_period_d_3 | string |  |
| pbp_d_rics_period_d_4 | string |  |
| pbp_d_rics_period_d_5 | string |  |
| pbp_d_rics_yn | string |  |
| observed_period | date |  |
| asserted_at | date |  |
| effective_period_start | date |  |
| effective_period_end | date |  |
| cms_vintage_sequence | int |  |
| parse_revision | int |  |
| parser_artifact_hash | string |  |
| source_url | string |  |
| sha256_content_hash | string |  |
| pbp_d_combo_19b_lim_extnd_yn_1 | string |  |
| pbp_d_combo_19b_lim_extnd_yn_2 | string |  |
| pbp_d_combo_19b_lim_extnd_yn_3 | string |  |
| pbp_d_combo_19b_lim_extnd_yn_4 | string |  |
| pbp_d_combo_19b_lim_extnd_yn_5 | string |  |
| pbp_d_combo_19b_max_extnd_yn_1 | string |  |
| pbp_d_combo_19b_max_extnd_yn_2 | string |  |
| pbp_d_combo_19b_max_extnd_yn_3 | string |  |
| pbp_d_combo_19b_max_extnd_yn_4 | string |  |
| pbp_d_combo_19b_max_extnd_yn_5 | string |  |
| pbp_d_combo_19b_ssbci_nm_cats_1 | string |  |
| pbp_d_combo_19b_ssbci_nm_cats_2 | string |  |
| pbp_d_combo_19b_ssbci_nm_cats_3 | string |  |
| pbp_d_combo_19b_ssbci_nm_cats_4 | string |  |
| pbp_d_combo_19b_ssbci_nm_cats_5 | string |  |
| pbp_d_combo_19b_uf_nmc_cats_1 | string |  |
| pbp_d_combo_19b_uf_nmc_cats_2 | string |  |
| pbp_d_combo_19b_uf_nmc_cats_3 | string |  |
| pbp_d_combo_19b_uf_nmc_cats_4 | string |  |
| pbp_d_combo_19b_uf_nmc_cats_5 | string |  |
| pbp_d_diff_deduct_11c3_amt | double |  |
| 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_yn |  | Generic 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_cats |  | Medicare-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_period |  | Ingestion-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. |

Tools that read it: get_pbp_benefit

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