# MA pbp section b1a inpat hosp

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

Section B1a: Inpatient hospital (acute) cost-share. Splits from b1b psych starting 2010. Coverage: All years.

**Grain.** One row per Medicare Advantage plan-segment per quarterly CMS PBP landscape release, for the inpatient-hospital (acute) benefit. The MINIMAL verified key is (bid_id, report_year, quarter) — 179,479 distinct = exactly the row_count, 0 duplicate rows. Equivalent keys: bid_id + effective_period_start + quarter, or bid_id + observed_period + quarter (report_year ≡ effective_period_start ≡ observed_period). `version` is NOT part of the grain (exactly one version per snapshot). The profiler's 25-column key is a bloated superset (it mistakenly swept the maxplan benefit columns in because their names contain 'plan').

**How to use it.** To get one current-design row per plan for a plan year, pick the latest quarter per plan: e.g. `SELECT bid_id, pbp_a_plan_type, pbp_b1a_copay_mcs_amt_int1_t1, pbp_b1a_copay_mcs_bgnd_int1_t1, pbp_b1a_copay_mcs_endd_int1_t1 FROM medicare_silver.pbp_section_b1a_inpat_hosp WHERE report_year=2026 AND quarter=(SELECT max(quarter) FROM medicare_silver.pbp_section_b1a_inpat_hosp WHERE report_year=2026)`. Answers: 'what is the per-day inpatient copay (and for which days) for each MA plan in 2026?' To read a plan's day-tiered copay, walk int1->int2->int3 with their bgnd/endd day boundaries (e.g. $375/day for days 1-7, then $0).

**Traps.**
- NO is_current / latest flag exists. The table keeps EVERY quarterly snapshot, so there are multiple rows per plan-year (179,479 rows vs only 92,166 bid x year combos vs 19,819 distinct plans). A query like `WHERE report_year=2023` returns up to 4 rows per plan and will double/quadruple-count. ALWAYS filter to one quarter (e.g. quarter=max per year, or cms_vintage_sequence=max per year).
- The grain is (bid_id, report_year, quarter) -- NOT bid_id alone, NOT bid_id+report_year, and `version` is NOT part of it. The profiler reported a 25-column superset key only because the inpatient `maxplan` benefit columns contain the substring 'plan'; those are benefit attributes, not identifiers.
- Two parallel copay encodings: a plan populates EITHER the flat per-tier copay (pbp_b1a_copay_mcs_amt_t1) when cost does not vary by day, OR the per-day-interval set (pbp_b1a_copay_mcs_amt_int1_t1 + bgnd/endd day bounds) when it does. Reading only one family misses ~half the plans (in 2026Q1: 5,108 use flat _t1, 4,046 use _int1_t1). 'mcs' = Medicare-Covered Stay; that is the inpatient field -- not _ad (additional days), _up (uncovered), _lrd (lifetime reserve), or _nmcs.
- Coinsurance (pbp_b1a_coins_mcs_pct) and deductible (pbp_b1a_ded_amt) are essentially UNUSED for MA inpatient (0 populated in 2026Q1) -- MA inpatient cost-sharing is copay-based. Empty here means 'not how this benefit is structured', not missing data.
- The `_bonly` column family (e.g. pbp_b1a_coins_pct_bonly, copay_amt_ps_bonly) is populated ONLY for the ~2% of rows that are Part-B-only plans (pbp_a_ben_cov='2'); it is always null for standard Part-A plans (ben_cov='1'). Use the non-bonly fields for normal plans.
- asserted_at (2 values), parse_revision, parser_artifact_hash, sha256_content_hash, source_url, cms_vintage_sequence are silver-layer PROVENANCE/load metadata, not business data. asserted_at is the ingest date (May 2026), not a plan date; cms_vintage_sequence resets to 1 each year (it is the quarter-rank within the year, not a global version). effective_period_start/end and observed_period are fully redundant with report_year (Jan 1 / Dec 31 / Jan 1).
- Early years (2010-2017) have ONLY a Q1 snapshot while 2018+ have several quarters, and some year/quarter combos are absent (e.g. 2020 has Q1,Q2,Q4 but no Q3; 2024 has Q1,Q3,Q4 but no Q2). Do not assume four quarters per year. Within-year benefit drift is tiny though (only 2 of 7,741 plans changed inpatient copay between 2023 Q1 and Q4), so any single quarter is a fair representation of that plan-year's design -- but you must still pick exactly one.

| column | type | meaning |
|---|---|---|
| contract_id | string | CMS 5-char MA/MA-PD contract ID (e.g. 'H0028'). 1,680 distinct. First component of bid_id. Joins to other Medicare contract-level tables. |
| plan_id | string | 3-char Plan Benefit Package ID within the contract (e.g. '001'). 656 distinct values reused across contracts; NOT unique alone. |
| segment_id | string | Plan segment number as string ('0'..'15'). 92% are '0' (single-segment); >0 means a service-area segment of a regional/PPO plan that varies benefits by sub-area. |
| version | double | CMS bid submission version of this PBP record (1..27; double). The plan's bid can be refiled many times in a year. Exactly ONE version per (bid,year,quarter) snapshot (verified), so it is a carried attribute, NOT part of the grain. Lower mass at high versions. |
| report_year | double | Plan/contract year the benefit design applies to (double, 2010..2026). Equivalent to year(effective_period_start) and year(observed_period) (verified identical). Part of the grain. |
| quarter | double | Which quarterly CMS PBP landscape re-release within the plan year (1..4, double). Part of the grain. Early years (2010-2017) have only Q1; 2018+ have multiple quarters. The reason there are ~2.5x more rows than plan-years. |
| bid_id | string | The plan-segment identifier = contract_id//'_'//plan_id//'_'//segment_id EXACTLY (verified 0 mismatches), e.g. 'H0028_001_0'. 19,819 distinct plans. This is THE plan key; combine with report_year+quarter for the row grain. |
| orgtype | string | CMS contract organization-type code (string): '01'=Local CCP (HMO/PPO, ~90% of rows), '04'=PFFS, '02','05','06','08','11','14'=other org types. Plan-level attribute repeated each snapshot. |
| pbp_a_ben_cov | string | Part A/B coverage indicator: '1'=plan covers Part A+B (97.7%), '2'=Part B only (2.1%, has no standard inpatient stay -> uses the _bonly fields), null (288 rows). Gates which cost-share family is populated. |
| pbp_a_plan_type | string | MA plan-type code (string): '01'=HMO (50%), '04'=Local/Regional PPO (29%), '02'=HMO-POS, '20','31','18','09','48' etc. Describes the plan product type. |
| pbp_b1a_ad_cost_vary_low_tier | string |  |
| pbp_b1a_ad_cost_vary_tier_num | string |  |
| pbp_b1a_ad_cost_vary_tiers_yn | string |  |
| pbp_b1a_auth | string |  |
| pbp_b1a_auth_bonly | string |  |
| pbp_b1a_auth_yn | string |  |
| pbp_b1a_auth_yn_bonly | string |  |
| pbp_b1a_bendesc_ad_up_nmcs | string |  |
| pbp_b1a_bendesc_amo_ad | string |  |
| pbp_b1a_bendesc_amo_iact_bonly | string |  |
| pbp_b1a_bendesc_amo_nmcs | string |  |
| pbp_b1a_bendesc_amo_up | string |  |
| pbp_b1a_bendesc_amt_ad | double |  |
| pbp_b1a_bendesc_amt_days_bonly | double |  |
| pbp_b1a_bendesc_lim_ad | string |  |
| pbp_b1a_bendesc_per_bonly | string |  |
| pbp_b1a_bendesc_per_bonly_d | string |  |
| pbp_b1a_bendesc_ulim_bonly | string |  |
| pbp_b1a_bendesc_yn | string |  |
| pbp_b1a_bendesc_yn_bonly | string |  |
| pbp_b1a_coins_ad_bgnd_int1_t1 | double |  |
| pbp_b1a_coins_ad_bgnd_int1_t2 | double |  |
| pbp_b1a_coins_ad_bgnd_int1_t3 | double |  |
| pbp_b1a_coins_ad_bgnd_int2_t1 | double |  |
| pbp_b1a_coins_ad_bgnd_int2_t2 | double |  |
| pbp_b1a_coins_ad_bgnd_int2_t3 | double |  |
| pbp_b1a_coins_ad_bgnd_int3_t1 | double |  |
| pbp_b1a_coins_ad_bgnd_int3_t2 | double |  |
| pbp_b1a_coins_ad_bgnd_int3_t3 | double |  |
| pbp_b1a_coins_ad_bgnd_intrvl1 | double |  |
| pbp_b1a_coins_ad_bgnd_intrvl2 | double |  |
| pbp_b1a_coins_ad_bgnd_intrvl3 | double |  |
| pbp_b1a_coins_ad_endd_int1_t1 | double |  |
| pbp_b1a_coins_ad_endd_int1_t2 | double |  |
| pbp_b1a_coins_ad_endd_int1_t3 | double |  |
| pbp_b1a_coins_ad_endd_int2_t1 | double |  |
| pbp_b1a_coins_ad_endd_int2_t2 | double |  |
| pbp_b1a_coins_ad_endd_int2_t3 | double |  |
| pbp_b1a_coins_ad_endd_int3_t1 | double |  |
| pbp_b1a_coins_ad_endd_int3_t2 | double |  |
| pbp_b1a_coins_ad_endd_int3_t3 | double |  |
| pbp_b1a_coins_ad_endd_intrvl1 | double |  |
| pbp_b1a_coins_ad_endd_intrvl2 | double |  |
| pbp_b1a_coins_ad_endd_intrvl3 | double |  |
| pbp_b1a_coins_ad_intrvl_num | string |  |
| pbp_b1a_coins_ad_intrvl_num_t1 | string |  |
| pbp_b1a_coins_ad_intrvl_num_t2 | string |  |
| pbp_b1a_coins_ad_intrvl_num_t3 | string |  |
| pbp_b1a_coins_ad_pct_int1_t1 | double |  |
| pbp_b1a_coins_ad_pct_int1_t2 | double |  |
| pbp_b1a_coins_ad_pct_int1_t3 | double |  |
| pbp_b1a_coins_ad_pct_int2_t1 | double |  |
| pbp_b1a_coins_ad_pct_int2_t2 | double |  |
| pbp_b1a_coins_ad_pct_int2_t3 | double |  |
| pbp_b1a_coins_ad_pct_int3_t1 | double |  |
| pbp_b1a_coins_ad_pct_int3_t2 | double |  |
| pbp_b1a_coins_ad_pct_int3_t3 | double |  |
| pbp_b1a_coins_ad_pct_intrvl1 | double |  |
| pbp_b1a_coins_ad_pct_intrvl2 | double |  |
| pbp_b1a_coins_ad_pct_intrvl3 | double |  |
| pbp_b1a_coins_cov_ad | string |  |
| pbp_b1a_coins_cov_bonly | string |  |
| pbp_b1a_coins_cov_lrd | string |  |
| pbp_b1a_coins_cov_mcs | string |  |
| pbp_b1a_coins_cov_nmcs | string |  |
| pbp_b1a_coins_cov_up | string |  |
| pbp_b1a_coins_lrd_bgnd_int1_t1 | double |  |
| pbp_b1a_coins_lrd_bgnd_int1_t2 | double |  |
| pbp_b1a_coins_lrd_bgnd_int1_t3 | double |  |
| pbp_b1a_coins_lrd_bgnd_int2_t1 | double |  |
| pbp_b1a_coins_lrd_bgnd_int2_t2 | double |  |
| pbp_b1a_coins_lrd_bgnd_int2_t3 | double |  |
| pbp_b1a_coins_lrd_bgnd_int3_t1 | double |  |
| pbp_b1a_coins_lrd_bgnd_int3_t2 | double |  |
| pbp_b1a_coins_lrd_bgnd_int3_t3 | double |  |
| pbp_b1a_coins_lrd_bgnd_intrvl1 | double |  |
| pbp_b1a_coins_lrd_bgnd_intrvl2 | double |  |
| pbp_b1a_coins_lrd_bgnd_intrvl3 | double |  |
| pbp_b1a_coins_lrd_endd_int1_t1 | double |  |
| pbp_b1a_coins_lrd_endd_int1_t2 | double |  |
| pbp_b1a_coins_lrd_endd_int1_t3 | double |  |
| pbp_b1a_coins_lrd_endd_int2_t1 | double |  |
| pbp_b1a_coins_lrd_endd_int2_t2 | double |  |
| pbp_b1a_coins_lrd_endd_int2_t3 | double |  |
| pbp_b1a_coins_lrd_endd_int3_t1 | double |  |
| pbp_b1a_coins_lrd_endd_int3_t2 | double |  |
| pbp_b1a_coins_lrd_endd_int3_t3 | double |  |
| pbp_b1a_coins_lrd_endd_intrvl1 | double |  |
| pbp_b1a_coins_lrd_endd_intrvl2 | double |  |
| pbp_b1a_coins_lrd_endd_intrvl3 | double |  |
| pbp_b1a_coins_lrd_int_num_t1 | string |  |
| pbp_b1a_coins_lrd_int_num_t2 | string |  |
| pbp_b1a_coins_lrd_int_num_t3 | string |  |
| pbp_b1a_coins_lrd_intrvl_num | string |  |
| pbp_b1a_coins_lrd_pct_int1_t1 | double |  |
| pbp_b1a_coins_lrd_pct_int1_t2 | double |  |
| pbp_b1a_coins_lrd_pct_int1_t3 | double |  |
| pbp_b1a_coins_lrd_pct_int2_t1 | double |  |
| pbp_b1a_coins_lrd_pct_int2_t2 | double |  |
| pbp_b1a_coins_lrd_pct_int2_t3 | double |  |
| pbp_b1a_coins_lrd_pct_int3_t1 | double |  |
| pbp_b1a_coins_lrd_pct_int3_t2 | double |  |
| pbp_b1a_coins_lrd_pct_int3_t3 | double |  |
| pbp_b1a_coins_lrd_pct_intrvl1 | double |  |
| pbp_b1a_coins_lrd_pct_intrvl2 | double |  |
| pbp_b1a_coins_lrd_pct_intrvl3 | double |  |
| pbp_b1a_coins_mcs_bgnd_int1_t1 | double |  |
| pbp_b1a_coins_mcs_bgnd_int1_t2 | double |  |
| pbp_b1a_coins_mcs_bgnd_int1_t3 | double |  |
| pbp_b1a_coins_mcs_bgnd_int2_t1 | double |  |
| pbp_b1a_coins_mcs_bgnd_int2_t2 | double |  |
| pbp_b1a_coins_mcs_bgnd_int2_t3 | double |  |
| pbp_b1a_coins_mcs_bgnd_int3_t1 | double |  |
| pbp_b1a_coins_mcs_bgnd_int3_t2 | double |  |
| pbp_b1a_coins_mcs_bgnd_int3_t3 | double |  |
| pbp_b1a_coins_mcs_bgnd_intrvl1 | double |  |
| pbp_b1a_coins_mcs_bgnd_intrvl2 | double |  |
| pbp_b1a_coins_mcs_bgnd_intrvl3 | double |  |
| pbp_b1a_coins_mcs_endd_int1_t1 | double |  |
| pbp_b1a_coins_mcs_endd_int1_t2 | double |  |
| pbp_b1a_coins_mcs_endd_int1_t3 | double |  |
| pbp_b1a_coins_mcs_endd_int2_t1 | double |  |
| pbp_b1a_coins_mcs_endd_int2_t2 | double |  |
| pbp_b1a_coins_mcs_endd_int2_t3 | double |  |
| pbp_b1a_coins_mcs_endd_int3_t1 | double |  |
| pbp_b1a_coins_mcs_endd_int3_t2 | double |  |
| pbp_b1a_coins_mcs_endd_int3_t3 | double |  |
| pbp_b1a_coins_mcs_endd_intrvl1 | double |  |
| pbp_b1a_coins_mcs_endd_intrvl2 | double |  |
| pbp_b1a_coins_mcs_endd_intrvl3 | double |  |
| pbp_b1a_coins_mcs_int_num_t1 | string |  |
| pbp_b1a_coins_mcs_int_num_t2 | string |  |
| pbp_b1a_coins_mcs_int_num_t3 | string |  |
| pbp_b1a_coins_mcs_intrvl_num | string |  |
| pbp_b1a_coins_mcs_pct | double |  |
| pbp_b1a_coins_mcs_pct_int1_t1 | double |  |
| pbp_b1a_coins_mcs_pct_int1_t2 | double |  |
| pbp_b1a_coins_mcs_pct_int1_t3 | double |  |
| pbp_b1a_coins_mcs_pct_int2_t1 | double |  |
| pbp_b1a_coins_mcs_pct_int2_t2 | double |  |
| pbp_b1a_coins_mcs_pct_int2_t3 | double |  |
| pbp_b1a_coins_mcs_pct_int3_t1 | double |  |
| pbp_b1a_coins_mcs_pct_int3_t2 | double |  |
| pbp_b1a_coins_mcs_pct_int3_t3 | double |  |
| pbp_b1a_coins_mcs_pct_intrvl1 | double |  |
| pbp_b1a_coins_mcs_pct_intrvl2 | double |  |
| pbp_b1a_coins_mcs_pct_intrvl3 | double |  |
| pbp_b1a_coins_mcs_pct_t1 | double |  |
| pbp_b1a_coins_mcs_pct_t2 | double |  |
| pbp_b1a_coins_mcs_pct_t3 | double |  |
| pbp_b1a_coins_nmcs_bgnd_ntrvl1 | double |  |
| pbp_b1a_coins_nmcs_bgnd_ntrvl2 | double |  |
| pbp_b1a_coins_nmcs_bgnd_ntrvl3 | double |  |
| pbp_b1a_coins_nmcs_endd_ntrvl1 | double |  |
| pbp_b1a_coins_nmcs_endd_ntrvl2 | double |  |
| pbp_b1a_coins_nmcs_endd_ntrvl3 | double |  |
| pbp_b1a_coins_nmcs_intrvl_num | string |  |
| pbp_b1a_coins_nmcs_pct | double |  |
| pbp_b1a_coins_nmcs_pct_intrvl1 | double |  |
| pbp_b1a_coins_nmcs_pct_intrvl2 | double |  |
| pbp_b1a_coins_nmcs_pct_intrvl3 | double |  |
| pbp_b1a_coins_nmcs_struc_yn | string |  |
| pbp_b1a_coins_pct_bonly | double |  |
| pbp_b1a_coins_pct_up | double |  |
| pbp_b1a_coins_ps_bgnd1_bonly | double |  |
| pbp_b1a_coins_ps_bgnd2_bonly | double |  |
| pbp_b1a_coins_ps_bgnd3_bonly | double |  |
| pbp_b1a_coins_ps_endd1_bonly | double |  |
| pbp_b1a_coins_ps_endd2_bonly | double |  |
| pbp_b1a_coins_ps_endd3_bonly | double |  |
| pbp_b1a_coins_ps_num_bonly | string |  |
| pbp_b1a_coins_ps_pct1_bonly | double |  |
| pbp_b1a_coins_ps_pct2_bonly | double |  |
| pbp_b1a_coins_ps_pct3_bonly | double |  |
| pbp_b1a_coins_up_cstshr_yn | string |  |
| pbp_b1a_coins_yn | string |  |
| pbp_b1a_coins_yn_bonly | string |  |
| pbp_b1a_copay_ad_amt_int1_t1 | double |  |
| pbp_b1a_copay_ad_amt_int1_t2 | double |  |
| pbp_b1a_copay_ad_amt_int1_t3 | double |  |
| pbp_b1a_copay_ad_amt_int2_t1 | double |  |
| pbp_b1a_copay_ad_amt_int2_t2 | double |  |
| pbp_b1a_copay_ad_amt_int2_t3 | double |  |
| pbp_b1a_copay_ad_amt_int3_t1 | double |  |
| pbp_b1a_copay_ad_amt_int3_t2 | double |  |
| pbp_b1a_copay_ad_amt_int3_t3 | double |  |
| pbp_b1a_copay_ad_amt_intrvl1 | double |  |
| pbp_b1a_copay_ad_amt_intrvl2 | double |  |
| pbp_b1a_copay_ad_amt_intrvl3 | double |  |
| pbp_b1a_copay_ad_bgnd_int1_t1 | double |  |
| pbp_b1a_copay_ad_bgnd_int1_t2 | double |  |
| pbp_b1a_copay_ad_bgnd_int1_t3 | double |  |
| pbp_b1a_copay_ad_bgnd_int2_t1 | double |  |
| pbp_b1a_copay_ad_bgnd_int2_t2 | double |  |
| pbp_b1a_copay_ad_bgnd_int2_t3 | double |  |
| pbp_b1a_copay_ad_bgnd_int3_t1 | double |  |
| pbp_b1a_copay_ad_bgnd_int3_t2 | double |  |
| pbp_b1a_copay_ad_bgnd_int3_t3 | double |  |
| pbp_b1a_copay_ad_bgnd_intrvl1 | double |  |
| pbp_b1a_copay_ad_bgnd_intrvl2 | double |  |
| pbp_b1a_copay_ad_bgnd_intrvl3 | double |  |
| pbp_b1a_copay_ad_endd_int1_t1 | double |  |
| pbp_b1a_copay_ad_endd_int1_t2 | double |  |
| pbp_b1a_copay_ad_endd_int1_t3 | double |  |
| pbp_b1a_copay_ad_endd_int2_t1 | double |  |
| pbp_b1a_copay_ad_endd_int2_t2 | double |  |
| pbp_b1a_copay_ad_endd_int2_t3 | double |  |
| pbp_b1a_copay_ad_endd_int3_t1 | double |  |
| pbp_b1a_copay_ad_endd_int3_t2 | double |  |
| pbp_b1a_copay_ad_endd_int3_t3 | double |  |
| pbp_b1a_copay_ad_endd_intrvl1 | double |  |
| pbp_b1a_copay_ad_endd_intrvl2 | double |  |
| pbp_b1a_copay_ad_endd_intrvl3 | double |  |
| pbp_b1a_copay_ad_intrvl_num | string |  |
| pbp_b1a_copay_ad_intrvl_num_t1 | string |  |
| pbp_b1a_copay_ad_intrvl_num_t2 | string |  |
| pbp_b1a_copay_ad_intrvl_num_t3 | string |  |
| pbp_b1a_copay_amt_ps_bonly | double |  |
| pbp_b1a_copay_lrd_amt_int1_t1 | double |  |
| pbp_b1a_copay_lrd_amt_int1_t2 | double |  |
| pbp_b1a_copay_lrd_amt_int1_t3 | double |  |
| pbp_b1a_copay_lrd_amt_int2_t1 | double |  |
| pbp_b1a_copay_lrd_amt_int2_t2 | double |  |
| pbp_b1a_copay_lrd_amt_int2_t3 | double |  |
| pbp_b1a_copay_lrd_amt_int3_t1 | double |  |
| pbp_b1a_copay_lrd_amt_int3_t2 | double |  |
| pbp_b1a_copay_lrd_amt_int3_t3 | double |  |
| pbp_b1a_copay_lrd_amt_intrvl1 | double |  |
| pbp_b1a_copay_lrd_amt_intrvl2 | double |  |
| pbp_b1a_copay_lrd_amt_intrvl3 | double |  |
| pbp_b1a_copay_lrd_bgnd_int1_t1 | double |  |
| pbp_b1a_copay_lrd_bgnd_int1_t2 | double |  |
| pbp_b1a_copay_lrd_bgnd_int1_t3 | double |  |
| pbp_b1a_copay_lrd_bgnd_int2_t1 | double |  |
| pbp_b1a_copay_lrd_bgnd_int2_t2 | double |  |
| pbp_b1a_copay_lrd_bgnd_int2_t3 | double |  |
| pbp_b1a_copay_lrd_bgnd_int3_t1 | double |  |
| pbp_b1a_copay_lrd_bgnd_int3_t2 | double |  |
| pbp_b1a_copay_lrd_bgnd_int3_t3 | double |  |
| pbp_b1a_copay_lrd_bgnd_intrvl1 | double |  |
| pbp_b1a_copay_lrd_bgnd_intrvl2 | double |  |
| pbp_b1a_copay_lrd_bgnd_intrvl3 | double |  |
| pbp_b1a_copay_lrd_endd_int1_t1 | double |  |
| pbp_b1a_copay_lrd_endd_int1_t2 | double |  |
| pbp_b1a_copay_lrd_endd_int1_t3 | double |  |
| pbp_b1a_copay_lrd_endd_int2_t1 | double |  |
| pbp_b1a_copay_lrd_endd_int2_t2 | double |  |
| pbp_b1a_copay_lrd_endd_int2_t3 | double |  |
| pbp_b1a_copay_lrd_endd_int3_t1 | double |  |
| pbp_b1a_copay_lrd_endd_int3_t2 | double |  |
| pbp_b1a_copay_lrd_endd_int3_t3 | double |  |
| pbp_b1a_copay_lrd_endd_intrvl1 | double |  |
| pbp_b1a_copay_lrd_endd_intrvl2 | double |  |
| pbp_b1a_copay_lrd_endd_intrvl3 | double |  |
| pbp_b1a_copay_lrd_int_num_t1 | string |  |
| pbp_b1a_copay_lrd_int_num_t2 | string |  |
| pbp_b1a_copay_lrd_int_num_t3 | string |  |
| pbp_b1a_copay_lrd_intrvl_num | string |  |
| pbp_b1a_copay_mcs_amt | double |  |
| pbp_b1a_copay_mcs_amt_int1_t1 | double |  |
| pbp_b1a_copay_mcs_amt_int1_t2 | double |  |
| pbp_b1a_copay_mcs_amt_int1_t3 | double |  |
| pbp_b1a_copay_mcs_amt_int2_t1 | double |  |
| pbp_b1a_copay_mcs_amt_int2_t2 | double |  |
| pbp_b1a_copay_mcs_amt_int2_t3 | double |  |
| pbp_b1a_copay_mcs_amt_int3_t1 | double |  |
| pbp_b1a_copay_mcs_amt_int3_t2 | double |  |
| pbp_b1a_copay_mcs_amt_int3_t3 | double |  |
| pbp_b1a_copay_mcs_amt_intrvl1 | double |  |
| pbp_b1a_copay_mcs_amt_intrvl2 | double |  |
| pbp_b1a_copay_mcs_amt_intrvl3 | double |  |
| pbp_b1a_copay_mcs_amt_t1 | double |  |
| pbp_b1a_copay_mcs_amt_t2 | double |  |
| pbp_b1a_copay_mcs_amt_t3 | double |  |
| pbp_b1a_copay_mcs_bgnd_int1_t1 | double |  |
| pbp_b1a_copay_mcs_bgnd_int1_t2 | double |  |
| pbp_b1a_copay_mcs_bgnd_int1_t3 | double |  |
| pbp_b1a_copay_mcs_bgnd_int2_t1 | double |  |
| pbp_b1a_copay_mcs_bgnd_int2_t2 | double |  |
| pbp_b1a_copay_mcs_bgnd_int2_t3 | double |  |
| pbp_b1a_copay_mcs_bgnd_int3_t1 | double |  |
| pbp_b1a_copay_mcs_bgnd_int3_t2 | double |  |
| pbp_b1a_copay_mcs_bgnd_int3_t3 | double |  |
| pbp_b1a_copay_mcs_bgnd_intrvl1 | double |  |
| pbp_b1a_copay_mcs_bgnd_intrvl2 | double |  |
| pbp_b1a_copay_mcs_bgnd_intrvl3 | double |  |
| pbp_b1a_copay_mcs_endd_int1_t1 | double |  |
| pbp_b1a_copay_mcs_endd_int1_t2 | double |  |
| pbp_b1a_copay_mcs_endd_int1_t3 | double |  |
| pbp_b1a_copay_mcs_endd_int2_t1 | double |  |
| pbp_b1a_copay_mcs_endd_int2_t2 | double |  |
| pbp_b1a_copay_mcs_endd_int2_t3 | double |  |
| pbp_b1a_copay_mcs_endd_int3_t1 | double |  |
| pbp_b1a_copay_mcs_endd_int3_t2 | double |  |
| pbp_b1a_copay_mcs_endd_int3_t3 | double |  |
| pbp_b1a_copay_mcs_endd_intrvl1 | double |  |
| pbp_b1a_copay_mcs_endd_intrvl2 | double |  |
| pbp_b1a_copay_mcs_endd_intrvl3 | double |  |
| pbp_b1a_copay_mcs_int_num_t1 | string |  |
| pbp_b1a_copay_mcs_int_num_t2 | string |  |
| pbp_b1a_copay_mcs_int_num_t3 | string |  |
| pbp_b1a_copay_mcs_intrvl_num | string |  |
| pbp_b1a_copay_nmcs_amt | double |  |
| pbp_b1a_copay_nmcs_amt_intrvl1 | double |  |
| pbp_b1a_copay_nmcs_amt_intrvl2 | double |  |
| pbp_b1a_copay_nmcs_amt_intrvl3 | double |  |
| pbp_b1a_copay_nmcs_bgnd_ntrvl1 | double |  |
| pbp_b1a_copay_nmcs_bgnd_ntrvl2 | double |  |
| pbp_b1a_copay_nmcs_bgnd_ntrvl3 | double |  |
| pbp_b1a_copay_nmcs_endd_ntrvl1 | double |  |
| pbp_b1a_copay_nmcs_endd_ntrvl2 | double |  |
| pbp_b1a_copay_nmcs_endd_ntrvl3 | double |  |
| pbp_b1a_copay_nmcs_intrvl_num | string |  |
| pbp_b1a_copay_nmcs_struc_yn | string |  |
| pbp_b1a_copay_ps_amt1_bonly | double |  |
| pbp_b1a_copay_ps_amt2_bonly | double |  |
| pbp_b1a_copay_ps_amt3_bonly | double |  |
| pbp_b1a_copay_ps_bgnd1_bonly | double |  |
| pbp_b1a_copay_ps_bgnd2_bonly | double |  |
| pbp_b1a_copay_ps_bgnd3_bonly | double |  |
| pbp_b1a_copay_ps_endd1_bonly | double |  |
| pbp_b1a_copay_ps_endd2_bonly | double |  |
| pbp_b1a_copay_ps_endd3_bonly | double |  |
| pbp_b1a_copay_ps_num_bonly | string |  |
| pbp_b1a_copay_up_amt_day | double |  |
| pbp_b1a_copay_up_amt_stay | double |  |
| pbp_b1a_copay_up_cstshr_yn | string |  |
| pbp_b1a_copay_yn | string |  |
| pbp_b1a_copay_yn_bonly | string |  |
| pbp_b1a_cost_discharge_yn | string |  |
| pbp_b1a_cost_share_vary_yn | string |  |
| pbp_b1a_cost_vary_low_tier | string |  |
| pbp_b1a_cost_vary_tier_num | string |  |
| pbp_b1a_cost_vary_tiers_yn | string |  |
| pbp_b1a_ded_amt | double |  |
| pbp_b1a_ded_amt_bonly | double |  |
| pbp_b1a_ded_amt_t1 | double |  |
| pbp_b1a_ded_amt_t2 | double |  |
| pbp_b1a_ded_amt_t3 | double |  |
| pbp_b1a_ded_yn | string |  |
| pbp_b1a_ded_yn_bonly | string |  |
| pbp_b1a_discharge_yn_bonly | string |  |
| pbp_b1a_esrd_copay_amt | double |  |
| pbp_b1a_esrd_maxenr_amt | double |  |
| pbp_b1a_hosp_ben_period | string |  |
| pbp_b1a_hosp_ben_period_oth | string |  |
| pbp_b1a_maxenr_amt | double |  |
| pbp_b1a_maxenr_amt_bonly | double |  |
| pbp_b1a_maxenr_per | string |  |
| pbp_b1a_maxenr_per_bonly | string |  |
| pbp_b1a_maxenr_per_bonly_d | string |  |
| pbp_b1a_maxenr_per_d | string |  |
| pbp_b1a_maxenr_yn | string |  |
| pbp_b1a_maxenr_yn_bonly | string |  |
| pbp_b1a_maxplan_amt_bonly | double |  |
| pbp_b1a_maxplan_cov_bonly | string |  |
| pbp_b1a_maxplan_per_bonly | string |  |
| pbp_b1a_maxplan_per_bonly_d | string |  |
| pbp_b1a_maxplan_yn_bonly | string |  |
| pbp_b1a_mc_coins_cstshr_yn_t1 | string |  |
| pbp_b1a_mc_coins_cstshr_yn_t2 | string |  |
| pbp_b1a_mc_coins_cstshr_yn_t3 | string |  |
| pbp_b1a_mc_copay_cstshr_yn_t1 | string |  |
| pbp_b1a_mc_copay_cstshr_yn_t2 | string |  |
| pbp_b1a_mc_copay_cstshr_yn_t3 | string |  |
| pbp_b1a_mdcr_coins_cstshrs_yn | string |  |
| pbp_b1a_mdcr_copay_cstshrs_yn | string |  |
| pbp_b1a_pffs_copay_amt | double |  |
| pbp_b1a_pffs_maxenr_amt | double |  |
| pbp_b1a_refer_yn | string |  |
| pbp_b1a_refer_yn_bonly | string |  |
| observed_period | date | Date the snapshot represents = Jan 1 of report_year (date); identical to effective_period_start (verified). Silver-layer snapshot anchor. |
| asserted_at | date | Silver-layer LOAD date -- when Vlada asserted these facts (only 2 values: 2026-05-16, 2026-05-20). Pipeline metadata, NOT a business/CMS date. Do not use for plan-year logic. |
| effective_period_start | date | Plan year start = Jan 1 of report_year (date). Silver-layer temporal column; redundant with report_year. Profiler's primary time column (2010-01-01 .. 2026-01-01). |
| effective_period_end | date | Plan year end = Dec 31 of report_year (verified, 0 mismatch). Fully redundant with report_year. 17 distinct values. |
| cms_vintage_sequence | int | Ordinal of the snapshot WITHIN its report_year (int): 1=Q1, 2=Q2, 3=Q3, 4=Q4 -- it resets each year, it is NOT a global sequence. max(cms_vintage_sequence) per (bid,year) = the latest within-year release. |
| parse_revision | int | Parser version that produced the row (int, 1 or 2). Pipeline provenance metadata. |
| parser_artifact_hash | string | Hash of the parser artifact used (string). Provenance/lineage metadata. |
| source_url | string | URL of the CMS PBP landscape source file (string). Exactly 31 distinct = one per (report_year, quarter) snapshot. The provenance link for every row in a snapshot. |
| sha256_content_hash | string | SHA-256 content hash of the source record (string). Provenance/dedup integrity column. |
| pbp_b1a_auth_pos | string |  |
| pbp_b1a_auth_pos_bonly | string |  |
| pbp_b1a_bendec_yesno_bonly | string |  |
| pbp_b1a_bendes_per_bonly | string |  |
| pbp_b1a_coins_cov_pos | string |  |
| pbp_b1a_coins_cov_pos_bonly | string |  |
| pbp_b1a_coins_yesno | string |  |
| pbp_b1a_coins_yesno_bonly | string |  |
| pbp_b1a_coins_yesno_pos | string |  |
| pbp_b1a_coins_yesno_pos_bonly | string |  |
| pbp_b1a_copay_yesno_bonly | string |  |
| pbp_b1a_copay_yesno_pos | string |  |
| pbp_b1a_copay_yesno_pos_bonly | string |  |
| pbp_b1a_ded_yesno_pos | string |  |
| pbp_b1a_ded_yesno_pos_bonly | string |  |
| pbp_b1a_maxenr_yesno_bonly | string |  |
| pbp_b1a_maxenr_yesno_pos | string |  |
| pbp_b1a_maxenr_yn_pos_bonly | string |  |
| pbp_b1a_maxplan_yesno_bonly | string |  |
| pbp_b1a_maxplan_yesno_pos | string |  |
| pbp_b1a_maxplan_yesno_pos_b | string |  |
| pbp_b1a_maxpln_cov_pos | string |  |
| pbp_b1a_maxpln_cov_pos_bonly | string |  |
| pbp_b1a_maxpln_per_pos | string |  |
| pbp_b1a_maxpln_per_pos_bonly | string |  |
| pbp_b1b_auth_bonly | string |  |
| pbp_b1b_auth_pos | string |  |
| pbp_b1b_auth_pos_bonly | string |  |
| pbp_b1b_bendec_yesno_bonly | string |  |
| pbp_b1b_bendes_per_bonly | string |  |
| pbp_b1b_bendesc_amo_bonly | string |  |
| pbp_b1b_bendesc_lim_bonly | string |  |
| pbp_b1b_coins_cov_pos | string |  |
| pbp_b1b_coins_cov_pos_bonly | string |  |
| pbp_b1b_coins_yesno | string |  |
| pbp_b1b_coins_yesno_bonly | string |  |
| pbp_b1b_coins_yesno_pos | string |  |
| pbp_b1b_coins_yesno_pos_bonly | string |  |
| pbp_b1b_copay_yesno_bonly | string |  |
| pbp_b1b_copay_yesno_pos | string |  |
| pbp_b1b_copay_yesno_pos_bonly | string |  |
| pbp_b1b_ded_yesno_bonly | string |  |
| pbp_b1b_ded_yesno_pos | string |  |
| pbp_b1b_ded_yesno_pos_bonly | string |  |
| pbp_b1b_maxenr__cov_yn_pos | string |  |
| pbp_b1b_maxenr_cov_yn_pos_b | string |  |
| pbp_b1b_maxenr_per_bonly | string |  |
| pbp_b1b_maxenr_type_bonly | string |  |
| pbp_b1b_maxenr_yesno_bonly | string |  |
| pbp_b1b_maxenr_yesno_pos | string |  |
| pbp_b1b_maxenr_yesno_pos_bonly | string |  |
| pbp_b1b_maxplan_cov_bonly | string |  |
| pbp_b1b_maxplan_cov_pos | string |  |
| pbp_b1b_maxplan_cov_pos_bonly | string |  |
| pbp_b1b_maxplan_per_bonly | string |  |
| pbp_b1b_maxplan_type_bonly | string |  |
| pbp_b1b_maxplan_type_pos | string |  |
| pbp_b1b_maxplan_type_pos_bonly | string |  |
| pbp_b1b_maxplan_yesno_bonly | string |  |
| pbp_b1b_maxplan_yesno_pos | string |  |
| pbp_b1b_maxplan_yesno_pos_b | string |  |
| pbp_b1b_maxpln_per_pos | string |  |
| pbp_b1b_maxpln_per_pos_bonly | string |  |
| pbp_b_1a_auth | string |  |
| pbp_b_1a_auth_bonly | string |  |
| pbp_b_1a_bendec_ad_up | string |  |
| pbp_b_1a_bendec_yesno | string |  |
| pbp_b_1a_bendesc_amo_ad | string |  |
| pbp_b_1a_bendesc_amo_up | string |  |
| pbp_b_1a_bendesc_lim_ad | string |  |
| pbp_b_1a_coins_cov_ad | string |  |
| pbp_b_1a_coins_cov_mc | string |  |
| pbp_b_1a_coins_cov_up | string |  |
| pbp_b_1a_copay_yesno | string |  |
| pbp_b_1a_ded_yesno | string |  |
| pbp_b_1a_ded_yesno_bonly | string |  |
| pbp_b_1a_maxenr_per | string |  |
| pbp_b_1a_maxenr_yesno | string |  |
| pbp_b_1b_auth | string |  |
| pbp_b_1b_bendec_ad | string |  |
| pbp_b_1b_bendec_yesno | string |  |
| pbp_b_1b_bendesc_amo_ad | string |  |
| pbp_b_1b_bendesc_lim_ad | string |  |
| pbp_b_1b_coins_cov_ad | string |  |
| pbp_b_1b_coins_cov_bonly | string |  |
| pbp_b_1b_coins_cov_mc | string |  |
| pbp_b_1b_copay_yesno | string |  |
| pbp_b_1b_ded_yesno | string |  |
| pbp_b_1b_maxenr_per | string |  |
| pbp_b_1b_maxenr_type | string |  |
| pbp_b_1b_maxenr_yesno | string |  |
| pbp_b1a_copay_mcs_amt_int{1,2,3}_t{1,2,3} (+ _intrvl1..3) |  | Inpatient copay DOLLAR amount for a Medicare-Covered Stay (MCS=Medicare-covered stay), per day-interval (int1/2/3) and cost tier (t1/2/3). The headline cost field. Populated ~4,046/7,420 in 2026Q1. e.g. $375 for interval 1. The dominant inpatient cost-share mechanism (coinsurance/deductible are near-zero). |
| pbp_b1a_copay_mcs_bgnd_int{n}_t{m} / _endd_int{n}_t{m} |  | Begin-day (bgnd) and end-day (endd) of each copay day-interval, e.g. days 1-7 then 8+. Defines the 'pay $X/day for days 1..N then $0' structure. Pairs with the copay_mcs_amt fields. |
| pbp_b1a_copay_mcs_amt_t{1,2,3} |  | Flat (non-interval) MCS copay per tier, used when copay does NOT vary by day. ALTERNATIVE encoding to the _int* fields (~5,108 populated in 2026Q1). A plan populates EITHER the flat _t* OR the per-interval _int*_t* set, not both -> a real trap when reading copays. |
| pbp_b1a_coins_mcs_pct (+ _pct_int*_t*, _pct_t*) |  | Inpatient coinsurance PERCENTAGE for a Medicare-covered stay, per interval/tier. Near-zero population for MA (0 in 2026Q1) -- MA inpatient is copay-based, not coinsurance. The _ad (additional days), _up (uncovered/non-Medicare), _lrd (lifetime reserve days), _nmcs (non-MCS) variants exist for special day categories. |
| pbp_b1a_ded_amt (+ _t1..t3, _yn) |  | Inpatient deductible dollar amount and yes/no flags. ~0 populated for MA inpatient in 2026 (MA plans rarely use a Part-A-style deductible). Mostly null. |
| pbp_b1a_maxenr_amt / _per / _yn |  | Maximum enrollee out-of-pocket for THIS inpatient benefit, the period it applies over (_per), and yes/no flags. Sparse (~101/7,420 in 2026Q1). |
| pbp_b1a_maxplan_* and pbp_b1b_maxplan_* |  | Plan-side benefit maximums (amount/coverage/period/yesno) for B-1a and the related B-1b psychiatric section. Mostly null. NOTE: the profiler wrongly swept these into the grain key because their names contain 'plan'; they are benefit attributes, NOT keys. |
| pbp_b1a_*_bonly (e.g. coins_pct_bonly, copay_amt_ps_bonly, bendesc_*_bonly) |  | Parallel cost-share encoding used ONLY for Part-B-only plans (pbp_a_ben_cov='2'): populated for 274 rows, all under ben_cov='2', zero under '1'. Ignore for standard Part-A plans. |
| pbp_b1a_auth / _yn / _refer / _refer_yn (+ _bonly, _pos) |  | Prior-authorization and referral requirement codes/flags for inpatient hospital (e.g. auth='00001'). String coded fields describing utilization-management rules, not dollars. |
| pbp_b1a_bendesc_* (yn, amo, amt, lim, per, ulim) |  | Benefit-description fields: whether a benefit description exists (yn), amount/limit/period of any plan-defined day limit (e.g. amt_days_bonly), unlimited flag. Describe coverage limits on the inpatient benefit. |
| pbp_b1a_ad_cost_vary_* / cost_vary_tiers_yn / tier_num |  | Flags indicating whether additional-day (ad) cost-sharing varies, the number of cost tiers, and the lowest tier. Govern how to interpret the t1/t2/t3 tier suffixes. |

Tools that read it: get_pbp_benefit

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