Medicare Advantage, Part D, Medicaid
MA pbp section b7 health prof
medicare_silver.pbp_section_b7_health_prof·partial·silver·annual·Medicare Advantage Plan Benefit Packages (PBP)Rows
N/A
Columns
315
History
2001 (benefit year; effective_period_start 2001-01-01) to 2026 (benefit year; effective_period_start 2026-01-01)
Card
yesgrain, traps, filters
Typed tools
1
What it is
- 1A CMS Medicare Advantage Plan Benefit Package (PBP) extract — Section B7 "Health Care Professional Services" — giving the member cost-sharing design (copay, coinsurance, deductible, prior-auth, referral, and benefit limits) that each MA / MA-PD plan charges for visits to doctors and other professionals.
- 2It is the official source-of-truth for "what does an MA plan charge a member to see a primary-care doctor, specialist, therapist, chiropractor, podiatrist, mental-health provider, etc." across every contract year 2001-2026.
Grain
| Key | Grain |
|---|---|
contract_idplan_idsegment_idreport_yearquarter |
|
How to read it
- 1Pin a single snapshot per plan-year before aggregating.
- 2Example — median primary-care vs specialist copay for 2026 HMO plans: SELECT approx_percentile(pbp_b7a_copay_amt_mc_max,0.5) AS pcp_copay, approx_percentile(pbp_b7d_copay_amt_mc_max,0.5) AS specialist_copay FROM medicare_silver.pbp_section_b7_health_prof WHERE report_year=2026 AND quarter=1 AND pbp_a_plan_type='01' AND pbp_b7a_copay_yn='1'.
- 3This returns PCP ~$0 and specialist ~$35, i.e. what a 2026 MA HMO member typically pays out-of-pocket to see a doctor.
- 4Join to other pbp_section_* tables on (contract_id, plan_id, segment_id, report_year, quarter) for full benefit design.
Traps
- 1GRAIN TRAP — quarter is part of the key, not a refresh. The SAME benefit year is re-published across multiple quarterly snapshots (e.g. 2023 appears as Q1,Q2,Q3,Q4; row counts drift 7752->7747->7751->7755). If you query a plan's PCP copay without pinning a quarter you will multi-count it ~2-4x. For 'the plan year' pick one quarter (e.g. Q1 = initial/as-bid, or MAX(quarter) for the latest correction). There is NO is_current / latest flag in this table.
- 2NO row-level hash and NO is_current: sha256_content_hash and source_url each have only 38 distinct values (one per release ZIP), and asserted_at is just the ingest date (2 values). None of these identify or dedupe a row — the only true row identity is contract_id x plan_id x segment_id x report_year x quarter.
- 3The profiler's reported grain is a bloated SUPERSET (24 columns incl. several *_maxplan_amt and observed_period). The real minimal key is 5 columns; observed_period (=effective_period_start always), bid_id (=concat of the 3 IDs, NULL pre-2010), and version (a bid-software number, not the snapshot id) are all functionally dependent and must NOT be added to the key.
- 4NULL vs 0.0 carries meaning: a 0.0 copay/coinsurance is a real $0 cost-share (PCP is frequently $0); a NULL means the benefit/sub-section was not offered or not reported (older years null whole sub-sections that didn't exist yet). _yn flags are '1'=Yes / '2'=No / NULL=not-applicable — never assume 0/1 boolean.
- 5Time coverage is gappy and quarter coverage is uneven: benefit years 2010 and 2011 are entirely missing; quarterly snapshots only start ~2018 (earlier years are Q1-only); and within recent years some quarters are absent (2020 has no Q3, 2024 has no Q2). Do not assume a continuous 4-quarter-per-year panel.
- 6Sub-sections are columns, not rows: B7a..B7k (primary care, chiropractic, podiatry, specialist, PT/OT, psychiatric, mental-health, substance-abuse, individual-psych, combined, additional) are encoded as ~430 wide columns per row, each prefixed pbp_b7<letter>_. This differs from long/normalized fact tables — to compare service categories you select different column families, not filter a category column. pbp_b7j_mc_bendesc_cats is a packed semicolon-delimited code list that must be string-parsed.
- 7Most amount columns come as min/max PAIRS (or single _amt with a _max ceiling for B7g/B7k) representing a cost-share RANGE within the benefit category, and many cost-shares are split by network/coverage tier suffix: _mc=Medicare-covered, _mcis=Medicare in-network/in-area, _mcgs=gap/out-of-area, _rc/_rf/_other/_cc=supplemental/routine. Pick the right suffix or you mix in-network and out-of-network dollars.
Columns (315)
| Column | Type | Meaning |
|---|---|---|
contract_id | string | CMS MA contract ID (e.g. H0022, R-prefix=regional PPO). 1,966 distinct. Part of the grain key. |
plan_id | string | Plan ID within the contract (3-char, e.g. '001'). 656 distinct. Identifies the specific plan benefit package. Part of grain. |
segment_id | string | Plan segment (geographic/benefit segment), '0' when unsegmented; up to 27 distinct. REQUIRED for the grain — dropping it collapses 193,488 to 183,933 rows (segmented plans exist). |
version | double | CMS PBP bid software version number for the record (0-8+). NOT the snapshot identity and NOT equal to cms_vintage_sequence (they match in only ~11% of rows). Functionally dependent on the grain key — does not split rows. |
report_year | double | Benefit/contract year the cost-shares apply to (2001-2026). Equals year(effective_period_start). Part of grain. NOTE: 2010 and 2011 are entirely absent from the data. |
quarter | double | Which quarterly CMS PBP release (1-4) this snapshot came from. Part of grain. Earlier years are Q1-only (annual); quarterly snapshots layered on from ~2018. Some quarters are missing (e.g. 2020 has Q1/Q2/Q4 not Q3; 2024 has Q1/Q3/Q4 not Q2). |
bid_id | string | Equals contract_id||'_'||plan_id||'_'||segment_id when populated (e.g. 'H0022_001_0'); NULL for the 8,316 oldest rows (2001-2009 era). Fully derivable from the ID columns — NOT needed for grain. |
orgtype | string | CMS organization-type code. 01 dominates (171K rows, Local CCP/HMO-PPO); others: 08 (PDP/regional), 04, 11 (employer/EGWP), 06, 05, 02. Two-digit string. |
pbp_a_ben_cov | string | Benefit-coverage scope flag from PBP Section A: '1'=most plans (188,955), '2'=4,230, NULL=303. Indicates the package's benefit-coverage category (e.g. standard vs reduced/segment-specific). |
pbp_a_plan_type | string | MA plan-type code (from Section A): 01=HMO (98K), 04=Local PPO (54K), 02=HMOPOS (19K), 20=Regional PPO, 09=PFFS, 31=MSA/other, 18, 48 etc. The most useful plan-design classifier. |
pbp_b7a_coins_pct_mc_max | double | |
pbp_b7a_coins_pct_mc_min | double | |
pbp_b7a_coins_yn | string | |
pbp_b7a_copay_amt_mc_max | double | |
pbp_b7a_copay_amt_mc_min | double | |
pbp_b7a_copay_yn | string | |
pbp_b7a_ded_amt | double | |
pbp_b7a_ded_yn | string | |
pbp_b7a_ia_nuc_coins_pct_max | double | |
pbp_b7a_ia_nuc_coins_pct_min | double | |
pbp_b7a_ia_nuc_coins_yn | string | |
pbp_b7a_ia_nuc_copay_amt_max | double | |
pbp_b7a_ia_nuc_copay_amt_min | double | |
pbp_b7a_ia_nuc_copay_yn | string | |
pbp_b7a_ia_nuc_yn | string | |
pbp_b7a_maxenr_amt | double | |
pbp_b7a_maxenr_per | string | |
pbp_b7a_maxenr_per_d | string | |
pbp_b7a_maxenr_yn | string | |
pbp_b7b_addl_service_other | string | |
pbp_b7b_auth | string | |
pbp_b7b_auth_yn | string | |
pbp_b7b_bendesc_amo | string | |
pbp_b7b_bendesc_amo_other | string | |
pbp_b7b_bendesc_amo_rc | string | |
pbp_b7b_bendesc_ehc | string | |
pbp_b7b_bendesc_lim_other | string | |
pbp_b7b_bendesc_lim_rc | string | |
pbp_b7b_bendesc_num_other | double | |
pbp_b7b_bendesc_num_rc | double | |
pbp_b7b_bendesc_per | string | |
pbp_b7b_bendesc_per_other | string | |
pbp_b7b_bendesc_per_other_d | string | |
pbp_b7b_bendesc_per_rc | string | |
pbp_b7b_bendesc_per_rc_d | string | |
pbp_b7b_bendesc_rc | string | |
pbp_b7b_bendesc_yn | string | |
pbp_b7b_coins_ehc | string | |
pbp_b7b_coins_pct_cc_max | double | |
pbp_b7b_coins_pct_cc_min | double | |
pbp_b7b_coins_pct_mc_max | double | |
pbp_b7b_coins_pct_mc_min | double | |
pbp_b7b_coins_pct_other_max | double | |
pbp_b7b_coins_pct_other_min | double | |
pbp_b7b_coins_pct_rc_max | double | |
pbp_b7b_coins_pct_rc_min | double | |
pbp_b7b_coins_yn | string | |
pbp_b7b_comb_ben_ehc | string | |
pbp_b7b_combined_ben | string | |
pbp_b7b_copay_ehc | string | |
pbp_b7b_copay_mc_amt_max | double | |
pbp_b7b_copay_mc_amt_min | double | |
pbp_b7b_copay_other_amt_max | double | |
pbp_b7b_copay_other_amt_min | double | |
pbp_b7b_copay_rc_amt_max | double | |
pbp_b7b_copay_rc_amt_min | double | |
pbp_b7b_copay_yn | string | |
pbp_b7b_ded_amt | double | |
pbp_b7b_ded_yn | string | |
pbp_b7b_maxenr_amt | double | |
pbp_b7b_maxenr_per | string | |
pbp_b7b_maxenr_per_d | string | |
pbp_b7b_maxenr_yn | string | |
pbp_b7b_maxplan_amt | double | |
pbp_b7b_maxplan_per | string | |
pbp_b7b_maxplan_per_d | string | |
pbp_b7b_maxplan_yn | string | |
pbp_b7b_refer_yn | string | |
pbp_b7c_auth | string | |
pbp_b7c_auth_yn | string | |
pbp_b7c_coins_pct_mc | double | |
pbp_b7c_coins_pct_mc_max | double | |
pbp_b7c_coins_pct_mc_min | double | |
pbp_b7c_coins_yn | string | |
pbp_b7c_copay_mc_amt | double | |
pbp_b7c_copay_mc_amt_max | double | |
pbp_b7c_copay_mc_amt_min | double | |
pbp_b7c_copay_yn | string | |
pbp_b7c_ded_amt | double | |
pbp_b7c_ded_yn | string | |
pbp_b7c_maxenr_amt | double | |
pbp_b7c_maxenr_per | string | |
pbp_b7c_maxenr_per_d | string | |
pbp_b7c_maxenr_yn | string | |
pbp_b7c_mdcr_cov_lmt_yn | string | |
pbp_b7c_mm_addl_service_other1 | string | |
pbp_b7c_mm_auth | string | |
pbp_b7c_mm_auth_yn | string | |
pbp_b7c_mm_coins_pct | double | |
pbp_b7c_mm_coins_pct_max | double | |
pbp_b7c_mm_coins_pct_min | double | |
pbp_b7c_mm_coins_yn | string | |
pbp_b7c_mm_copay_amt | double | |
pbp_b7c_mm_copay_amt_max | double | |
pbp_b7c_mm_copay_amt_min | double | |
pbp_b7c_mm_copay_yn | string | |
pbp_b7c_mm_maxplan_amt | double | |
pbp_b7c_mm_maxplan_per | string | |
pbp_b7c_mm_maxplan_per_d | string | |
pbp_b7c_mm_maxplan_yn | string | |
pbp_b7c_mm_nmc_yn | string | |
pbp_b7c_mm_refer_yn | string | |
pbp_b7c_refer_yn | string | |
pbp_b7d_auth | string | |
pbp_b7d_auth_yn | string | |
pbp_b7d_coins_pct_mc_max | double | |
pbp_b7d_coins_pct_mc_min | double | |
pbp_b7d_coins_yn | string | |
pbp_b7d_copay_amt_mc_max | double | |
pbp_b7d_copay_amt_mc_min | double | |
pbp_b7d_copay_yn | string | |
pbp_b7d_ded_amt | double | |
pbp_b7d_ded_yn | string | |
pbp_b7d_maxenr_amt | double | |
pbp_b7d_maxenr_per | string | |
pbp_b7d_maxenr_per_d | string | |
pbp_b7d_maxenr_yn | string | |
pbp_b7d_refer_yn | string | |
pbp_b7e_auth | string | |
pbp_b7e_auth_yn | string | |
pbp_b7e_coins_ehc | string | |
pbp_b7e_coins_mcgs_maxpct | double | |
pbp_b7e_coins_mcgs_minpct | double | |
pbp_b7e_coins_mcis_maxpct | double | |
pbp_b7e_coins_mcis_minpct | double | |
pbp_b7e_coins_yn | string | |
pbp_b7e_copay_ehc | string | |
pbp_b7e_copay_mcgs_maxamt | double | |
pbp_b7e_copay_mcgs_minamt | double | |
pbp_b7e_copay_mcis_maxamt | double | |
pbp_b7e_copay_mcis_minamt | double | |
pbp_b7e_copay_yn | string | |
pbp_b7e_ded_amt | double | |
pbp_b7e_ded_yn | string | |
pbp_b7e_maxenr_amt | double | |
pbp_b7e_maxenr_per | string | |
pbp_b7e_maxenr_per_d | string | |
pbp_b7e_maxenr_yn | string | |
pbp_b7e_refer_yn | string | |
pbp_b7f_auth | string | |
pbp_b7f_auth_yn | string | |
pbp_b7f_bendecs_yn | string | |
pbp_b7f_bendesc_amo_rf | string | |
pbp_b7f_bendesc_amt_rf | double | |
pbp_b7f_bendesc_lim_rf | string | |
pbp_b7f_bendesc_per_rf | string | |
pbp_b7f_bendesc_per_rf_d | string | |
pbp_b7f_bendesc_rf | string | |
pbp_b7f_bendesc_yn | string | |
pbp_b7f_coins_ehc | string | |
pbp_b7f_coins_pct_mc_max | double | |
pbp_b7f_coins_pct_mc_min | double | |
pbp_b7f_coins_pct_rf_max | double | |
pbp_b7f_coins_pct_rf_min | double | |
pbp_b7f_coins_yn | string | |
pbp_b7f_copay_ehc | string | |
pbp_b7f_copay_mc_amt_max | double | |
pbp_b7f_copay_mc_amt_min | double | |
pbp_b7f_copay_rf_amt_max | double | |
pbp_b7f_copay_rf_amt_min | double | |
pbp_b7f_copay_yn | string | |
pbp_b7f_ded_amt | double | |
pbp_b7f_ded_yn | string | |
pbp_b7f_maxenr_amt | double | |
pbp_b7f_maxenr_per | string | |
pbp_b7f_maxenr_per_d | string | |
pbp_b7f_maxenr_yn | string | |
pbp_b7f_maxplan_amt | double | |
pbp_b7f_maxplan_per | string | |
pbp_b7f_maxplan_per_d | string | |
pbp_b7f_maxplan_yn | string | |
pbp_b7f_refer_yn | string | |
pbp_b7g_auth | string | |
pbp_b7g_auth_yn | string | |
pbp_b7g_coins_max_pct_mc | double | |
pbp_b7g_coins_pct_mc | double | |
pbp_b7g_coins_yn | string | |
pbp_b7g_copay_mc_amt | double | |
pbp_b7g_copay_mc_max_amt | double | |
pbp_b7g_copay_yn | string | |
pbp_b7g_ded_amt | double | |
pbp_b7g_ded_yn | string | |
pbp_b7g_maxenr_amt | double | |
pbp_b7g_maxenr_per | string | |
pbp_b7g_maxenr_per_d | string | |
pbp_b7g_maxenr_yn | string | |
pbp_b7g_refer_yn | string | |
pbp_b7h_auth | string | |
pbp_b7h_auth_yn | string | |
pbp_b7h_coins_ehc | string | |
pbp_b7h_coins_mcgs_maxpct | double | |
pbp_b7h_coins_mcgs_minpct | double | |
pbp_b7h_coins_mcis_maxpct | double | |
pbp_b7h_coins_mcis_minpct | double | |
pbp_b7h_coins_yn | string | |
pbp_b7h_copay_ehc | string | |
pbp_b7h_copay_mcgs_maxamt | double | |
pbp_b7h_copay_mcgs_minamt | double | |
pbp_b7h_copay_mcis_maxamt | double | |
pbp_b7h_copay_mcis_minamt | double | |
pbp_b7h_copay_yn | string | |
pbp_b7h_ded_amt | double | |
pbp_b7h_ded_yn | string | |
pbp_b7h_maxenr_amt | double | |
pbp_b7h_maxenr_per | string | |
pbp_b7h_maxenr_per_d | string | |
pbp_b7h_maxenr_yn | string | |
pbp_b7h_refer_yn | string | |
pbp_b7i_auth | string | |
pbp_b7i_auth_yn | string | |
pbp_b7i_coins_pct_mc | double | |
pbp_b7i_coins_pct_mc_max | double | |
pbp_b7i_coins_pct_mc_min | double | |
pbp_b7i_coins_yn | string | |
pbp_b7i_copay_mc_amt | double | |
pbp_b7i_copay_mc_amt_max | double | |
pbp_b7i_copay_mc_amt_min | double | |
pbp_b7i_copay_yn | string | |
pbp_b7i_ded_amt | double | |
pbp_b7i_ded_yn | string | |
pbp_b7i_maxenr_amt | double | |
pbp_b7i_maxenr_per | string | |
pbp_b7i_maxenr_per_d | string | |
pbp_b7i_maxenr_yn | string | |
pbp_b7i_mdcr_cov_lmt_yn | string | |
pbp_b7i_mm_addl_service_other1 | string | |
pbp_b7i_mm_addl_service_other2 | string | |
pbp_b7i_mm_auth | string | |
pbp_b7i_mm_auth_yn | string | |
pbp_b7i_mm_coins_other1_max | double | |
pbp_b7i_mm_coins_other1_min | double | |
pbp_b7i_mm_coins_other2_max | double | |
pbp_b7i_mm_coins_other2_min | double | |
pbp_b7i_mm_coins_services | string | |
pbp_b7i_mm_coins_yn | string | |
pbp_b7i_mm_copay_other1_max | double | |
pbp_b7i_mm_copay_other1_min | double | |
pbp_b7i_mm_copay_other2_max | double | |
pbp_b7i_mm_copay_other2_min | double | |
pbp_b7i_mm_copay_services | string | |
pbp_b7i_mm_copay_yn | string | |
pbp_b7i_mm_maxplan_amt | double | |
pbp_b7i_mm_maxplan_per | string | |
pbp_b7i_mm_maxplan_per_d | string | |
pbp_b7i_mm_maxplan_yn | string | |
pbp_b7i_mm_nmc_yn | string | |
pbp_b7i_mm_refer_yn | string | |
pbp_b7i_mm_services | string | |
pbp_b7i_refer_yn | string | |
pbp_b7j_auth_yn | string | |
pbp_b7j_bendesc_yn | string | |
pbp_b7j_coins_pct_mc_max | double | |
pbp_b7j_coins_pct_mc_min | double | |
pbp_b7j_coins_yn | string | |
pbp_b7j_copay_mc_amt_max | double | |
pbp_b7j_copay_mc_amt_min | double | |
pbp_b7j_copay_yn | string | |
pbp_b7j_ded_amt | double | |
pbp_b7j_ded_yn | string | |
pbp_b7j_maxenr_amt | double | |
pbp_b7j_maxenr_per | string | |
pbp_b7j_maxenr_per_d | string | |
pbp_b7j_maxenr_yn | string | |
pbp_b7j_mc_bendesc_cats | string | |
pbp_b7j_refer_yn | string | |
pbp_b7k_auth_yn | string | |
pbp_b7k_coins_max_pct_mc | double | |
pbp_b7k_coins_pct_mc | double | |
pbp_b7k_coins_yn | string | |
pbp_b7k_copay_mc_amt | double | |
pbp_b7k_copay_mc_max_amt | double | |
pbp_b7k_copay_yn | string | |
pbp_b7k_ded_amt | double | |
pbp_b7k_ded_yn | string | |
pbp_b7k_maxenr_amt | double | |
pbp_b7k_maxenr_per | string | |
pbp_b7k_maxenr_per_d | string | |
pbp_b7k_maxenr_yn | string | |
pbp_b7k_refer_yn | string | |
observed_period | date | Snapshot/observation date = Jan 1 of report_year. REDUNDANT: equals effective_period_start for 100% of rows. Do not treat as an independent dimension. |
asserted_at | date | Internal ingest/processing date (2026-05-16 or 2026-05-20 only) — when Vlada parsed the file, NOT a CMS data date. Useless for time-series; ignore for analytics. |
effective_period_start | date | First day the benefit year is effective = Jan 1 of report_year (2001-01-01 .. 2026-01-01). The canonical time axis; periodicity is annual by benefit year. |
effective_period_end | date | Last day of the benefit year = Dec 31 of report_year. Always a full calendar year. |
cms_vintage_sequence | int | Integer encoding which quarterly CMS release this snapshot is (1=Q1, 2=Q2, 3=Q3, 4=Q4). Mirrors `quarter`. NOT equal to `version`. |
parse_revision | int | Internal parser revision number (1 or 2) for the extraction run. Provenance only. |
parser_artifact_hash | string | SHA-256 of the parser code/config used. Provenance; identical within a parse run. |
source_url | string | CMS download URL of the source ZIP, e.g. https://www.cms.gov/files/zip/pbp-benefits-2022-quarter-2.zip. Exactly 38 distinct values = the 38 (year,quarter) releases ingested. |
sha256_content_hash | string | FILE-LEVEL hash of the source release, NOT a per-row hash — only 38 distinct values across 193,488 rows (one per release ZIP). Do NOT use it to dedupe or identify rows. |
pbp_b7a_* (copay/coins/ded/maxenr + ia_nuc_*) | Sub-section B7a = PRIMARY CARE PHYSICIAN services. _copay_amt_mc_min/_max = low/high end of the member copay range for Medicare-covered (_mc) PCP visits; _coins_pct_* = coinsurance %; _ded_* = deductible; _yn flags (1=Yes,2=No) gate whether each applies; ia_nuc_* = a PCP sub-benefit. VALIDATED: 2026 median PCP copay = $0 (range $0-$55). | |
pbp_b7b_* (copay/coins/ded + bendesc_* + maxplan_*) | Sub-section B7b = CHIROPRACTIC services (Medicare-covered + supplemental). Carries the richest extra-benefit description block: _bendesc_* (limits/amounts/periods for supplemental coverage), _coins/_copay split by _mc (Medicare-covered) / _rc (routine-care/supplemental) / _other / _cc, plus _maxplan_* and _maxenr_* benefit-maximum caps. VALIDATED: 2026 copay seen at $20. | |
pbp_b7c_* (incl pbp_b7c_mm_*) | Sub-section B7c = PODIATRY services. Standard copay/coins/ded/maxenr/auth/referral set for Medicare-covered podiatry; the _mm_ variant block = supplemental/routine (mandatory+optional) podiatry with its own copay/coins/maxplan and mdcr_cov_lmt_yn (Medicare-coverage-limit flag). | |
pbp_b7d_* (copay/coins/ded/maxenr/auth/refer) | Sub-section B7d = OTHER HEALTH CARE PROFESSIONAL / SPECIALIST services. _copay_amt_mc_min/_max = specialist visit copay range. VALIDATED: 2026 median specialist copay ~$35 (vs $0 PCP) — confirms b7a=PCP, b7d=specialist. | |
pbp_b7e_* (coins/copay split mcis/mcgs, ded, maxenr) | Sub-section B7e = PHYSICAL/OCCUPATIONAL THERAPY. Cost-share is split into mcis (Medicare-covered in-area/in-network) vs mcgs (gap/out-of-area) min/max amounts and pcts — e.g. copay_mcis_maxamt. VALIDATED: 2026 median PT copay ~$27. | |
pbp_b7f_* (copay/coins split mc/rf, bendesc_*, maxplan_*) | Sub-section B7f = PSYCHIATRIC services. Cost-share split by _mc (Medicare-covered) vs _rf (referral/supplemental); _bendesc_* describes supplemental limits; _maxplan_*/_maxenr_* = benefit caps; auth/referral flags. | |
pbp_b7g_* (coins_pct_mc + coins_max_pct_mc, copay_mc_amt + copay_mc_max_amt, ded, maxenr) | Sub-section B7g = PSYCHOLOGICAL / MENTAL HEALTH SPECIALTY services (point cost-share style: single _copay_mc_amt with a _copay_mc_max_amt ceiling rather than a min/max range pair). | |
pbp_b7h_* (coins/copay split mcis/mcgs, ded, maxenr) | Sub-section B7h = OUTPATIENT SUBSTANCE-ABUSE / partial-hospitalization-style professional services, cost-share split mcis (in-network) vs mcgs (gap) like B7e. | |
pbp_b7i_* (copay/coins/ded/maxenr + pbp_b7i_mm_*) | Sub-section B7i = INDIVIDUAL psychiatric/mental-health (Medicare-covered) PLUS the _mm_ block for supplemental services with up to two 'other' service tiers (coins_other1/other2, copay_other1/other2, services labels) and mdcr_cov_lmt_yn. VALIDATED: 2026 median copay ~$32. | |
pbp_b7j_* (copay/coins/ded/maxenr + pbp_b7j_mc_bendesc_cats) | Sub-section B7j = a COMBINED / grouped professional-services cost-share. pbp_b7j_mc_bendesc_cats is a SEMICOLON-DELIMITED packed list of the other PBP benefit-category codes this grouping spans (e.g. '4b;7a;7d;7e1;7e2;7h1;7h2;9c1;9c2;'). Not atomic — must be parsed to know which services share this cost-share/limit. | |
pbp_b7k_* (coins_pct_mc + coins_max_pct_mc, copay_mc_amt + copay_mc_max_amt, ded, maxenr) | Sub-section B7k = an ADDITIONAL professional-services group (point cost-share with a max ceiling, same shape as B7g). auth/referral/deductible/enrollee-max fields included. | |
*_yn (every sub-section) | Yes/No applicability flag, encoded '1'=Yes, '2'=No, NULL=not applicable/not collected. Gates whether the adjacent copay/coins/ded/auth/referral applies. A NULL on a _yn is meaningful: the benefit detail was not reported for that sub-section/year (older years null many sub-sections that didn't exist yet). | |
*_amt / *_min / *_max (doubles) | Dollar amounts (copay, deductible, benefit max) and the low/high bounds of a cost-share range. NULL when the corresponding _yn is No/null. A 0.0 is a real $0 cost-share (common for PCP) — distinct from NULL (not offered). | |
*_pct / *_minpct / *_maxpct (doubles) | Coinsurance percentages (member share). Paired min/max give the % range. | |
*_per / *_per_d / *_maxenr_per[_d] | Period code and its decoded text for limits/maximums (e.g. per-visit, per-year). _per = code, _per_d = human-readable decode. _maxenr_* = per-enrollee benefit maximum; _maxplan_* = per-plan benefit maximum. | |
*_auth / *_auth_yn / *_refer_yn | Utilization-management flags: _auth_yn (1=prior authorization required), _refer_yn (1=referral required), _auth = free-text/coded auth detail. Per sub-section. | |
*_ehc (coins_ehc/copay_ehc/bendesc_ehc) | Enhanced/equivalent-health-coverage code strings (e.g. '010','11','01') describing the cost-share structure variant; coded values from the PBP, not free numbers. |
Query it
describe_data_source(source_fqn="medicare_silver.pbp_section_b7_health_prof") # the card, live query_substrate(sql="SELECT * FROM medicare_silver.pbp_section_b7_health_prof WHERE contract_id = '<value>' AND plan_id = '<value>' AND segment_id = '<value>' AND report_year = '<value>' AND quarter = '<value>' LIMIT 100")
| Item | Value |
|---|---|
| Typed tools that read it | get_pbp_benefit |
| Identity key | contract_id |
| Join | how_to_join(source_fqn="medicare_silver.pbp_section_b7_health_prof") |
| Raw door | Athena (read-only via query_substrate): medicare_silver.pbp_section_b7_health_prof |
| Note | Grain-governed; live in Glue / query_substrate. Source family pbp_benefits. |
This page as markdown: /docs-md/data/medicare_silver_pbp_section_b7_health_prof.md · every page in one file: /llms-full.txt