Medicare Advantage, Part D, Medicaid

MA pbp section b1b inpat hosp psych

medicare_silver.pbp_section_b1b_inpat_hosp_psych·partial·silver·annual (benefit year), published in CMS quarterly snapshots (the `quarter` column); 2002-2017 typically single-quarter, 2018+ multi-quarter·Medicare Advantage Plan Benefit Packages (PBP)
Rows
N/A
Columns
392
History
2002 (report_year 2002, Q1) to 2026 (report_year 2026, Q1). 25 distinct report_years; 39 distinct year x quarter release snapshots. effective_period_start spans 2002-01-01 to 2026-01-01.
Card
yesgrain, traps, filters
Typed tools
1

What it is

  1. 1CMS Medicare Advantage Plan Benefit Package (PBP) Section B-1b: the member cost-sharing design (copays, coinsurance, deductible, prior-auth, day-based intervals, OOP caps) that each MA plan files for INPATIENT HOSPITAL - PSYCHIATRIC services.
  2. 2It is the benefit-design / cost-share-rules source for MA inpatient psych, used to compare what plans charge enrollees for a psychiatric hospital stay year over year.

Grain

KeyGrain
contract_idplan_idsegment_idreport_yearquarter
  1. 1One row per Medicare Advantage plan-segment per benefit year per CMS quarterly release snapshot.
  2. 2The MINIMAL verified-unique key is contract_id + plan_id + segment_id + report_year + quarter, which yields exactly 200,746 distinct combinations = the full row_count (verified one-to-one). 'quarter' is the within-year CMS publication snapshot, so a single plan-year can appear up to 4 times (once per released quarter in 2018+).

How to read it

  1. 1Get one row per plan-year (de-duplicating the quarterly snapshots) and read the primary Medicare-covered-stay inpatient-psych copay: SELECT contract_id, plan_id, segment_id, pbp_b1b_copay_mcs_amt_int1_t1 AS copay_days1to5, pbp_b1b_copay_mcs_bgnd_int1_t1 AS begin_day, pbp_b1b_copay_mcs_endd_int1_t1 AS end_day, pbp_b1b_auth_yn FROM pbp_section_b1b_inpat_hosp_psych WHERE report_year=2026 AND quarter=1 AND pbp_a_ben_cov='1'.
  2. 2Answers: 'for plan H#### in 2026, what does a member pay per day for the first days of a psychiatric inpatient stay, and is prior authorization required?' (median first-interval copay ~$333/day for days 1-5, then $0 days 6-90; auth required for ~87% of plans).

Traps

  1. 1MINIMAL GRAIN is 5 columns: contract_id + plan_id + segment_id + report_year + quarter = 200,746 distinct = exactly the row count. The profiler's 14-column key is a SUPERSET — it needlessly pads with bid_id and six pbp_b1b_maxplan_* columns. Do NOT add bid_id (NULL in 7,574 old rows) or version to the key.
  2. 2`quarter` is the killer trap. It is the CMS WITHIN-YEAR release snapshot, not a benefit attribute. 2002-2017 have only Q1, but 2018+ carry Q1-Q4 (e.g. 2023 = 4 near-identical copies, ~7,750 rows each). Counting plans across years WITHOUT pinning quarter inflates recent years up to 4x. There are 39 distinct year x quarter snapshots vs only 25 report_years. To get one row per plan-year, filter to one quarter (e.g. MAX(quarter) per year) or GROUP BY year only.
  3. 3No `is_current` column and no snapshot fan-out: the table is already deduped to ONE physical row per logical key (max rows/key=1; exactly 1 cms_vintage_sequence / asserted_at / parse_revision / sha256 per key). It is a 'best-vintage' silver snapshot, NOT SCD-2 history — there is no current-flag to filter and no de-dup step needed beyond picking a quarter.
  4. 4Cost-share columns are SPARSE and split into day-phase FAMILIES, so naive 'pick the copay column' fails. The populated family for inpatient psych is `mcs` (Medicare-Covered Stay): use pbp_b1b_copay_mcs_amt_int{1,2,3}_t1 (~4,034 plans in 2026) with paired bgnd/endd day boundaries. The `ad` (additional-days) and `lrd` (lifetime-reserve-days) families are tiny (73 / 210 plans). Verified day structure: int1 = days 1-5 (~$333/day copay), int2 = days 6-90 ($0). pct_* columns hold % coinsurance instead of $.
  5. 5Y/N flags use CMS encoding 1=Yes, 2=No (NOT 1/0, NOT true/false), and NULL means 'not applicable / benefit not covered'. E.g. ded_yn=2 for ~all plans (no separate psych deductible); auth_yn=1 for the vast majority (prior auth required). Also observed_period == effective_period_start == Jan 1 of report_year for every row (redundant), and `version` (PBP software version) varies plan-to-plan within a single year and is NOT a time/dedup key.
  6. 6Sibling table: pbp_section_b1a_inpat_hosp is ACUTE inpatient hospital; this b1b table is the PSYCHIATRIC inpatient sub-section (Medicare's psych benefit has the unique 190-day lifetime limit and its own day-interval cost-sharing). Don't confuse the two; join both for total inpatient cost-share. All `*_bonly` (Part-B-only-enrollee) columns are effectively empty in modern data.

Columns (392)

ColumnTypeMeaning
contract_idstringCMS Medicare Advantage contract ID (e.g. 'H0104', 'H0150'). 1,932 distinct all-time, 914 in 2026. Part 1 of the plan identity. The 'H/R/S/E' prefix encodes contract type.
plan_idstringPlan benefit package (PBP) number within the contract (e.g. '001','002','801'). 656 distinct values reused across contracts (NOT unique on its own). Part 2 of plan identity.
segment_idstringPlan segment, mostly '000' (non-segmented) with real segment numbers for segmented/regional plans; 27 distinct. Empty-string '' in 4,332 old rows (pre-segment era). Part 3 of plan identity — DO NOT drop it; needed for the unique grain.
versiondoubleCMS PBP-authoring software version for that plan filing (double; 27 distinct overall, up to ~22 distinct WITHIN a single year). NOT a snapshot/dedup key, NOT part of the grain — it varies plan-to-plan within one year×quarter.
report_yeardoubleCMS contract/benefit year the PBP describes (double: 2002.0 .. 2026.0; 25 distinct). One of the two true time keys. year(observed_period)=report_year for every row.
quarterdoubleCMS within-year RELEASE snapshot (1-4). THE non-obvious grain key. Older years (2002-2017) have only Q1; 2018+ carry multiple quarters (e.g. 2023 has Q1-Q4 ~7,750 rows each). Same plan-year is repeated once per released quarter.
bid_idstringCMS bid identifier; NULL for 7,574 oldest rows (pre-bid-id era). Redundant given contract+plan+segment+year — the profiler wrongly included it in the key. Informational only.
orgtypestringOrganization type code (string; 9 distinct). 2026: 01=Local CCP (6,860), 08=Regional CCP/PPO (396), 11=PFFS, 06, 04, 02. Standard CMS PBP org-type enum.
pbp_a_ben_covstringCarried-down Section-A flag: does the plan cover this benefit. 1=Yes (7,276 in 2026), 2=No (125), NULL (19). Gate: when 2/NULL the b1b cost fields are typically empty.
pbp_a_plan_typestringCarried-down plan type code (string; 30 distinct). 2026: 01=HMO (3,056), 04=Local PPO (2,502), 02=HMOPOS (1,302), 20=Regional PPO (396), 31, 18, 09, 07. Standard CMS enum.
pbp_b1b_ad_cost_vary_low_tierstring
pbp_b1b_ad_cost_vary_tier_numstring
pbp_b1b_ad_cost_vary_tiers_ynstring
pbp_b1b_authstring
pbp_b1b_auth_bonlystring
pbp_b1b_auth_ynstring
pbp_b1b_auth_yn_bonlystring
pbp_b1b_bendesc_ad_nmcsstring
pbp_b1b_bendesc_amo_adstring
pbp_b1b_bendesc_amo_bonlystring
pbp_b1b_bendesc_amo_nmcsstring
pbp_b1b_bendesc_amt_addouble
pbp_b1b_bendesc_amt_bonlydouble
pbp_b1b_bendesc_lim_adstring
pbp_b1b_bendesc_lim_bonlystring
pbp_b1b_bendesc_per_bonlystring
pbp_b1b_bendesc_per_bonly_dstring
pbp_b1b_bendesc_ynstring
pbp_b1b_bendesc_yn_bonlystring
pbp_b1b_coins_ad_bgnd_int1_t1double
pbp_b1b_coins_ad_bgnd_int1_t2double
pbp_b1b_coins_ad_bgnd_int1_t3double
pbp_b1b_coins_ad_bgnd_int2_t1double
pbp_b1b_coins_ad_bgnd_int2_t2double
pbp_b1b_coins_ad_bgnd_int2_t3double
pbp_b1b_coins_ad_bgnd_int3_t1double
pbp_b1b_coins_ad_bgnd_int3_t2double
pbp_b1b_coins_ad_bgnd_int3_t3double
pbp_b1b_coins_ad_bgnd_intrvl1double
pbp_b1b_coins_ad_bgnd_intrvl2double
pbp_b1b_coins_ad_bgnd_intrvl3double
pbp_b1b_coins_ad_endd_int1_t1double
pbp_b1b_coins_ad_endd_int1_t2double
pbp_b1b_coins_ad_endd_int1_t3double
pbp_b1b_coins_ad_endd_int2_t1double
pbp_b1b_coins_ad_endd_int2_t2double
pbp_b1b_coins_ad_endd_int2_t3double
pbp_b1b_coins_ad_endd_int3_t1double
pbp_b1b_coins_ad_endd_int3_t2double
pbp_b1b_coins_ad_endd_int3_t3double
pbp_b1b_coins_ad_endd_intrvl1double
pbp_b1b_coins_ad_endd_intrvl2double
pbp_b1b_coins_ad_endd_intrvl3double
pbp_b1b_coins_ad_intrvl_numstring
pbp_b1b_coins_ad_intrvl_num_t1string
pbp_b1b_coins_ad_intrvl_num_t2string
pbp_b1b_coins_ad_intrvl_num_t3string
pbp_b1b_coins_ad_pct_int1_t1double
pbp_b1b_coins_ad_pct_int1_t2double
pbp_b1b_coins_ad_pct_int1_t3double
pbp_b1b_coins_ad_pct_int2_t1double
pbp_b1b_coins_ad_pct_int2_t2double
pbp_b1b_coins_ad_pct_int2_t3double
pbp_b1b_coins_ad_pct_int3_t1double
pbp_b1b_coins_ad_pct_int3_t2double
pbp_b1b_coins_ad_pct_int3_t3double
pbp_b1b_coins_ad_pct_intrvl1double
pbp_b1b_coins_ad_pct_intrvl2double
pbp_b1b_coins_ad_pct_intrvl3double
pbp_b1b_coins_cov_adstring
pbp_b1b_coins_cov_bonlystring
pbp_b1b_coins_cov_lrdstring
pbp_b1b_coins_cov_mcsstring
pbp_b1b_coins_cov_nmcsstring
pbp_b1b_coins_lrd_bgnd_int1_t1double
pbp_b1b_coins_lrd_bgnd_int1_t2double
pbp_b1b_coins_lrd_bgnd_int1_t3double
pbp_b1b_coins_lrd_bgnd_int2_t1double
pbp_b1b_coins_lrd_bgnd_int2_t2double
pbp_b1b_coins_lrd_bgnd_int2_t3double
pbp_b1b_coins_lrd_bgnd_int3_t1double
pbp_b1b_coins_lrd_bgnd_int3_t2double
pbp_b1b_coins_lrd_bgnd_int3_t3double
pbp_b1b_coins_lrd_bgnd_intrvl1double
pbp_b1b_coins_lrd_bgnd_intrvl2double
pbp_b1b_coins_lrd_bgnd_intrvl3double
pbp_b1b_coins_lrd_endd_int1_t1double
pbp_b1b_coins_lrd_endd_int1_t2double
pbp_b1b_coins_lrd_endd_int1_t3double
pbp_b1b_coins_lrd_endd_int2_t1double
pbp_b1b_coins_lrd_endd_int2_t2double
pbp_b1b_coins_lrd_endd_int2_t3double
pbp_b1b_coins_lrd_endd_int3_t1double
pbp_b1b_coins_lrd_endd_int3_t2double
pbp_b1b_coins_lrd_endd_int3_t3double
pbp_b1b_coins_lrd_endd_intrvl1double
pbp_b1b_coins_lrd_endd_intrvl2double
pbp_b1b_coins_lrd_endd_intrvl3double
pbp_b1b_coins_lrd_int_num_t1string
pbp_b1b_coins_lrd_int_num_t2string
pbp_b1b_coins_lrd_int_num_t3string
pbp_b1b_coins_lrd_intrvl_numstring
pbp_b1b_coins_lrd_pct_int1_t1double
pbp_b1b_coins_lrd_pct_int1_t2double
pbp_b1b_coins_lrd_pct_int1_t3double
pbp_b1b_coins_lrd_pct_int2_t1double
pbp_b1b_coins_lrd_pct_int2_t2double
pbp_b1b_coins_lrd_pct_int2_t3double
pbp_b1b_coins_lrd_pct_int3_t1double
pbp_b1b_coins_lrd_pct_int3_t2double
pbp_b1b_coins_lrd_pct_int3_t3double
pbp_b1b_coins_lrd_pct_intrvl1double
pbp_b1b_coins_lrd_pct_intrvl2double
pbp_b1b_coins_lrd_pct_intrvl3double
pbp_b1b_coins_mcs_bgnd_int1_t1double
pbp_b1b_coins_mcs_bgnd_int1_t2double
pbp_b1b_coins_mcs_bgnd_int1_t3double
pbp_b1b_coins_mcs_bgnd_int2_t1double
pbp_b1b_coins_mcs_bgnd_int2_t2double
pbp_b1b_coins_mcs_bgnd_int2_t3double
pbp_b1b_coins_mcs_bgnd_int3_t1double
pbp_b1b_coins_mcs_bgnd_int3_t2double
pbp_b1b_coins_mcs_bgnd_int3_t3double
pbp_b1b_coins_mcs_bgnd_intrvl1double
pbp_b1b_coins_mcs_bgnd_intrvl2double
pbp_b1b_coins_mcs_bgnd_intrvl3double
pbp_b1b_coins_mcs_endd_int1_t1double
pbp_b1b_coins_mcs_endd_int1_t2double
pbp_b1b_coins_mcs_endd_int1_t3double
pbp_b1b_coins_mcs_endd_int2_t1double
pbp_b1b_coins_mcs_endd_int2_t2double
pbp_b1b_coins_mcs_endd_int2_t3double
pbp_b1b_coins_mcs_endd_int3_t1double
pbp_b1b_coins_mcs_endd_int3_t2double
pbp_b1b_coins_mcs_endd_int3_t3double
pbp_b1b_coins_mcs_endd_intrvl1double
pbp_b1b_coins_mcs_endd_intrvl2double
pbp_b1b_coins_mcs_endd_intrvl3double
pbp_b1b_coins_mcs_int_num_t1string
pbp_b1b_coins_mcs_int_num_t2string
pbp_b1b_coins_mcs_int_num_t3string
pbp_b1b_coins_mcs_intrvl_numstring
pbp_b1b_coins_mcs_pct_int1_t1double
pbp_b1b_coins_mcs_pct_int1_t2double
pbp_b1b_coins_mcs_pct_int1_t3double
pbp_b1b_coins_mcs_pct_int2_t1double
pbp_b1b_coins_mcs_pct_int2_t2double
pbp_b1b_coins_mcs_pct_int2_t3double
pbp_b1b_coins_mcs_pct_int3_t1double
pbp_b1b_coins_mcs_pct_int3_t2double
pbp_b1b_coins_mcs_pct_int3_t3double
pbp_b1b_coins_mcs_pct_intrvl1double
pbp_b1b_coins_mcs_pct_intrvl2double
pbp_b1b_coins_mcs_pct_intrvl3double
pbp_b1b_coins_mcs_pct_t1double
pbp_b1b_coins_mcs_pct_t2double
pbp_b1b_coins_mcs_pct_t3double
pbp_b1b_coins_nmcs_bgnd_ntrvl1double
pbp_b1b_coins_nmcs_bgnd_ntrvl2double
pbp_b1b_coins_nmcs_bgnd_ntrvl3double
pbp_b1b_coins_nmcs_endd_ntrvl1double
pbp_b1b_coins_nmcs_endd_ntrvl2double
pbp_b1b_coins_nmcs_endd_ntrvl3double
pbp_b1b_coins_nmcs_intrvl_numstring
pbp_b1b_coins_nmcs_pct_intrvl1double
pbp_b1b_coins_nmcs_pct_intrvl2double
pbp_b1b_coins_nmcs_pct_intrvl3double
pbp_b1b_coins_nmcs_struc_ynstring
pbp_b1b_coins_pct_bonlydouble
pbp_b1b_coins_pct_mcsdouble
pbp_b1b_coins_pct_nmcsdouble
pbp_b1b_coins_ps_bgnd1_bonlydouble
pbp_b1b_coins_ps_bgnd2_bonlydouble
pbp_b1b_coins_ps_bgnd3_bonlydouble
pbp_b1b_coins_ps_endd1_bonlydouble
pbp_b1b_coins_ps_endd2_bonlydouble
pbp_b1b_coins_ps_endd3_bonlydouble
pbp_b1b_coins_ps_num_bonlystring
pbp_b1b_coins_ps_pct1_bonlydouble
pbp_b1b_coins_ps_pct2_bonlydouble
pbp_b1b_coins_ps_pct3_bonlydouble
pbp_b1b_coins_ynstring
pbp_b1b_coins_yn_bonlystring
pbp_b1b_copay_ad_amt_int1_t1double
pbp_b1b_copay_ad_amt_int1_t2double
pbp_b1b_copay_ad_amt_int1_t3double
pbp_b1b_copay_ad_amt_int2_t1double
pbp_b1b_copay_ad_amt_int2_t2double
pbp_b1b_copay_ad_amt_int2_t3double
pbp_b1b_copay_ad_amt_int3_t1double
pbp_b1b_copay_ad_amt_int3_t2double
pbp_b1b_copay_ad_amt_int3_t3double
pbp_b1b_copay_ad_amt_intrvl1double
pbp_b1b_copay_ad_amt_intrvl2double
pbp_b1b_copay_ad_amt_intrvl3double
pbp_b1b_copay_ad_bgnd_int1_t1double
pbp_b1b_copay_ad_bgnd_int1_t2double
pbp_b1b_copay_ad_bgnd_int1_t3double
pbp_b1b_copay_ad_bgnd_int2_t1double
pbp_b1b_copay_ad_bgnd_int2_t2double
pbp_b1b_copay_ad_bgnd_int2_t3double
pbp_b1b_copay_ad_bgnd_int3_t1double
pbp_b1b_copay_ad_bgnd_int3_t2double
pbp_b1b_copay_ad_bgnd_int3_t3double
pbp_b1b_copay_ad_bgnd_intrvl1double
pbp_b1b_copay_ad_bgnd_intrvl2double
pbp_b1b_copay_ad_bgnd_intrvl3double
pbp_b1b_copay_ad_endd_int1_t1double
pbp_b1b_copay_ad_endd_int1_t2double
pbp_b1b_copay_ad_endd_int1_t3double
pbp_b1b_copay_ad_endd_int2_t1double
pbp_b1b_copay_ad_endd_int2_t2double
pbp_b1b_copay_ad_endd_int2_t3double
pbp_b1b_copay_ad_endd_int3_t1double
pbp_b1b_copay_ad_endd_int3_t2double
pbp_b1b_copay_ad_endd_int3_t3double
pbp_b1b_copay_ad_endd_intrvl1double
pbp_b1b_copay_ad_endd_intrvl2double
pbp_b1b_copay_ad_endd_intrvl3double
pbp_b1b_copay_ad_intrvl_numstring
pbp_b1b_copay_ad_intrvl_num_t1string
pbp_b1b_copay_ad_intrvl_num_t2string
pbp_b1b_copay_ad_intrvl_num_t3string
pbp_b1b_copay_amt_ps_bonlydouble
pbp_b1b_copay_lrd_amt_int1_t1double
pbp_b1b_copay_lrd_amt_int1_t2double
pbp_b1b_copay_lrd_amt_int1_t3double
pbp_b1b_copay_lrd_amt_int2_t1double
pbp_b1b_copay_lrd_amt_int2_t2double
pbp_b1b_copay_lrd_amt_int2_t3double
pbp_b1b_copay_lrd_amt_int3_t1double
pbp_b1b_copay_lrd_amt_int3_t2double
pbp_b1b_copay_lrd_amt_int3_t3double
pbp_b1b_copay_lrd_amt_intrvl1double
pbp_b1b_copay_lrd_amt_intrvl2double
pbp_b1b_copay_lrd_amt_intrvl3double
pbp_b1b_copay_lrd_bgnd_int1_t1double
pbp_b1b_copay_lrd_bgnd_int1_t2double
pbp_b1b_copay_lrd_bgnd_int1_t3double
pbp_b1b_copay_lrd_bgnd_int2_t1double
pbp_b1b_copay_lrd_bgnd_int2_t2double
pbp_b1b_copay_lrd_bgnd_int2_t3double
pbp_b1b_copay_lrd_bgnd_int3_t1double
pbp_b1b_copay_lrd_bgnd_int3_t2double
pbp_b1b_copay_lrd_bgnd_int3_t3double
pbp_b1b_copay_lrd_bgnd_intrvl1double
pbp_b1b_copay_lrd_bgnd_intrvl2double
pbp_b1b_copay_lrd_bgnd_intrvl3double
pbp_b1b_copay_lrd_endd_int1_t1double
pbp_b1b_copay_lrd_endd_int1_t2double
pbp_b1b_copay_lrd_endd_int1_t3double
pbp_b1b_copay_lrd_endd_int2_t1double
pbp_b1b_copay_lrd_endd_int2_t2double
pbp_b1b_copay_lrd_endd_int2_t3double
pbp_b1b_copay_lrd_endd_int3_t1double
pbp_b1b_copay_lrd_endd_int3_t2double
pbp_b1b_copay_lrd_endd_int3_t3double
pbp_b1b_copay_lrd_endd_intrvl1double
pbp_b1b_copay_lrd_endd_intrvl2double
pbp_b1b_copay_lrd_endd_intrvl3double
pbp_b1b_copay_lrd_int_num_t1string
pbp_b1b_copay_lrd_int_num_t2string
pbp_b1b_copay_lrd_int_num_t3string
pbp_b1b_copay_lrd_intrvl_numstring
pbp_b1b_copay_mcs_amtdouble
pbp_b1b_copay_mcs_amt_int1_t1double
pbp_b1b_copay_mcs_amt_int1_t2double
pbp_b1b_copay_mcs_amt_int1_t3double
pbp_b1b_copay_mcs_amt_int2_t1double
pbp_b1b_copay_mcs_amt_int2_t2double
pbp_b1b_copay_mcs_amt_int2_t3double
pbp_b1b_copay_mcs_amt_int3_t1double
pbp_b1b_copay_mcs_amt_int3_t2double
pbp_b1b_copay_mcs_amt_int3_t3double
pbp_b1b_copay_mcs_amt_intrvl1double
pbp_b1b_copay_mcs_amt_intrvl2double
pbp_b1b_copay_mcs_amt_intrvl3double
pbp_b1b_copay_mcs_amt_t1double
pbp_b1b_copay_mcs_amt_t2double
pbp_b1b_copay_mcs_amt_t3double
pbp_b1b_copay_mcs_bgnd_int1_t1double
pbp_b1b_copay_mcs_bgnd_int1_t2double
pbp_b1b_copay_mcs_bgnd_int1_t3double
pbp_b1b_copay_mcs_bgnd_int2_t1double
pbp_b1b_copay_mcs_bgnd_int2_t2double
pbp_b1b_copay_mcs_bgnd_int2_t3double
pbp_b1b_copay_mcs_bgnd_int3_t1double
pbp_b1b_copay_mcs_bgnd_int3_t2double
pbp_b1b_copay_mcs_bgnd_int3_t3double
pbp_b1b_copay_mcs_bgnd_intrvl1double
pbp_b1b_copay_mcs_bgnd_intrvl2double
pbp_b1b_copay_mcs_bgnd_intrvl3double
pbp_b1b_copay_mcs_endd_int1_t1double
pbp_b1b_copay_mcs_endd_int1_t2double
pbp_b1b_copay_mcs_endd_int1_t3double
pbp_b1b_copay_mcs_endd_int2_t1double
pbp_b1b_copay_mcs_endd_int2_t2double
pbp_b1b_copay_mcs_endd_int2_t3double
pbp_b1b_copay_mcs_endd_int3_t1double
pbp_b1b_copay_mcs_endd_int3_t2double
pbp_b1b_copay_mcs_endd_int3_t3double
pbp_b1b_copay_mcs_endd_intrvl1double
pbp_b1b_copay_mcs_endd_intrvl2double
pbp_b1b_copay_mcs_endd_intrvl3double
pbp_b1b_copay_mcs_int_num_t1string
pbp_b1b_copay_mcs_int_num_t2string
pbp_b1b_copay_mcs_int_num_t3string
pbp_b1b_copay_mcs_intrvl_numstring
pbp_b1b_copay_nmcs_amtdouble
pbp_b1b_copay_nmcs_amt_intrvl1double
pbp_b1b_copay_nmcs_amt_intrvl2double
pbp_b1b_copay_nmcs_amt_intrvl3double
pbp_b1b_copay_nmcs_bgnd_ntrvl1double
pbp_b1b_copay_nmcs_bgnd_ntrvl2double
pbp_b1b_copay_nmcs_bgnd_ntrvl3double
pbp_b1b_copay_nmcs_endd_ntrvl1double
pbp_b1b_copay_nmcs_endd_ntrvl2double
pbp_b1b_copay_nmcs_endd_ntrvl3double
pbp_b1b_copay_nmcs_intrvl_numstring
pbp_b1b_copay_nmcs_struc_ynstring
pbp_b1b_copay_ps_amt1_bonlydouble
pbp_b1b_copay_ps_amt2_bonlydouble
pbp_b1b_copay_ps_amt3_bonlydouble
pbp_b1b_copay_ps_bgnd1_bonlydouble
pbp_b1b_copay_ps_bgnd2_bonlydouble
pbp_b1b_copay_ps_bgnd3_bonlydouble
pbp_b1b_copay_ps_endd1_bonlydouble
pbp_b1b_copay_ps_endd2_bonlydouble
pbp_b1b_copay_ps_endd3_bonlydouble
pbp_b1b_copay_ps_num_bonlystring
pbp_b1b_copay_ynstring
pbp_b1b_copay_yn_bonlystring
pbp_b1b_cost_discharge_ynstring
pbp_b1b_cost_share_vary_ynstring
pbp_b1b_cost_vary_low_tierstring
pbp_b1b_cost_vary_tier_numstring
pbp_b1b_cost_vary_tiers_ynstring
pbp_b1b_ded_amtdoublePer-stay/per-benefit-period inpatient-psych deductible in $ (double). RARELY set (0 non-null in 2026; ded_yn=2 for nearly all). All-time median ~$952, max $2,000 (near the Part A inpatient deductible). Most MA plans use copays, not a separate psych deductible.
pbp_b1b_ded_amt_bonlydouble
pbp_b1b_ded_amt_t1double
pbp_b1b_ded_amt_t2double
pbp_b1b_ded_amt_t3double
pbp_b1b_ded_ynstring
pbp_b1b_ded_yn_bonlystring
pbp_b1b_discharge_yn_bonlystring
pbp_b1b_esrd_copay_amtdouble
pbp_b1b_esrd_maxenr_amtdouble
pbp_b1b_hosp_ben_periodstringCost-sharing accumulation basis (string). 2026: 3=per benefit period (4,684), 1=per stay (2,105), 2=per day (86), 4 (rare), NULL (543). Determines whether the copay/coins applies per-stay vs per-period.
pbp_b1b_hosp_ben_period_othstring
pbp_b1b_maxenr_amtdouble
pbp_b1b_maxenr_amt_bonlydouble
pbp_b1b_maxenr_perstring
pbp_b1b_maxenr_per_bonlystring
pbp_b1b_maxenr_per_bonly_dstring
pbp_b1b_maxenr_per_dstring
pbp_b1b_maxenr_typestring
pbp_b1b_maxenr_type_bonlystring
pbp_b1b_maxenr_ynstring
pbp_b1b_maxenr_yn_bonlystring
pbp_b1b_maxplan_amt_bonlydouble
pbp_b1b_maxplan_cov_bonlystring
pbp_b1b_maxplan_per_bonlystring
pbp_b1b_maxplan_per_bonly_dstring
pbp_b1b_maxplan_type_bonlystring
pbp_b1b_maxplan_yn_bonlystring
pbp_b1b_mc_coins_cstshr_yn_t1string
pbp_b1b_mc_coins_cstshr_yn_t2string
pbp_b1b_mc_coins_cstshr_yn_t3string
pbp_b1b_mc_copay_cstshr_yn_t1string
pbp_b1b_mc_copay_cstshr_yn_t2string
pbp_b1b_mc_copay_cstshr_yn_t3string
pbp_b1b_mdcr_coins_cstshrs_ynstring
pbp_b1b_mdcr_copay_cstshrs_ynstring
pbp_b1b_pffs_copay_amtdouble
pbp_b1b_pffs_maxenr_amtdouble
pbp_b1b_refer_ynstring
pbp_b1b_refer_yn_bonlystring
observed_perioddateDate = Jan 1 of report_year; EQUALS effective_period_start for 100% of rows and is redundant with report_year. Annual granularity — does NOT distinguish quarters.
asserted_atdateProvenance: date this record/vintage was asserted into the silver table (e.g. '2026-05-16'). Single-valued per logical key.
effective_period_startdate
effective_period_enddate
cms_vintage_sequenceintProvenance: which CMS re-publication vintage was selected (int; 4 distinct overall, but exactly 1 per logical key — confirming dedup to best vintage).
parse_revisionintProvenance: parser revision used (int; 2 distinct overall, 1 per key). parser_artifact_hash = hash of the parser build.
parser_artifact_hashstring
source_urlstring
sha256_content_hashstring
pbp_b1b_* (367 benefit columns)The Section B-1b 'Inpatient Hospital - Psychiatric' cost-share matrix. Grouped families: ded (7) deductible; copay (149) and coins (154) cost-sharing; auth (4) prior-auth flags; refer (2) referral; maxenr/maxplan/maxplan_bonly OOP caps; esrd/pffs/mc/mdcr special-population variants; hosp_ben_period accumulation basis; bendesc benefit-description. See gotchas for the day-phase encoding.
pbp_b1b cost-share SUB-STRUCTUREEach copay/coins amount is indexed by day-phase family x interval x tier: family prefix mcs=Medicare-Covered Stay (the populated one, ~4-5k plans), lrd=Lifetime Reserve Days, ad=Additional Days (beyond Medicare), nmcs=Non-Medicare-Covered; intN=day-interval (int1/int2/int3); tN=cost tier (t1/t2/t3); bgnd/endd=begin/end DAY of the interval; amt=$ copay, pct=% coinsurance. Verified 2026: mcs int1=days 1-5 (~$333/day), int2=days 6-90 ($0).
pbp_b1b_*_yn flagsBoolean drivers, CMS encoding 1=Yes / 2=No (NOT 1/0). 2026: copay_yn 1=5,345/2=1,532; coins_yn 1=1,450/2=5,427 (most plans copay not coins); ded_yn mostly 2 (only 42 charge a psych deductible); auth_yn 1=6,485 (prior auth near-universal). mc_*_cstshr_yn_t1/2/3 = per-tier Medicare-covered cost-share flags.
pbp_b1b_*_bonly columns'Part-B-only enrollee' cost-share variant (separate copay/coins/ded/maxplan set). Essentially UNUSED in modern data (copay_yn_bonly populated for only 1 of 7,420 rows in 2026). Treat as near-empty.
effective_period_start / effective_period_endValidity window of the plan-year: Jan 1 .. Dec 31 of report_year (dates). effective_period_start is the profiler's declared time_column; both are derivable from report_year.
source_url / sha256_content_hashProvenance: source MRF/PBP file URL and SHA-256 of the source content for lineage/reproducibility. sha256 is single-valued per logical key.

Query it

describe_data_source(source_fqn="medicare_silver.pbp_section_b1b_inpat_hosp_psych")     # the card, live
query_substrate(sql="SELECT * FROM medicare_silver.pbp_section_b1b_inpat_hosp_psych WHERE contract_id = '<value>' AND plan_id = '<value>' AND segment_id = '<value>' AND report_year = '<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_b1b_inpat_hosp_psych")
Raw doorAthena (read-only via query_substrate): medicare_silver.pbp_section_b1b_inpat_hosp_psych
NoteGrain-governed; live in Glue / query_substrate. Source family pbp_benefits.

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