Skip to content

Value QMB cost sharing at Medicaid's CMS-64 spending per QMB - #10123

Open
MaxGhenis wants to merge 2 commits into
mainfrom
qmb-cost-sharing-calibration
Open

MaxGhenis wants to merge 2 commits into
mainfrom
qmb-cost-sharing-calibration

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Summary

qmb_cost_sharing valued a Qualified Medicare Beneficiary's coverage of Medicare deductibles and coinsurance at 20% of calibration.gov.hhs.medicare.per_capita_cost: $14,500 × 20% = $2,900 a year on main, or $18,983 × 20% = $3,797 in 2026 under #10107. That base includes Part D (about 15% of Medicare spending; 2026 Trustees Report Table II.B1: $181.5B of $1,210.1B in 2025) and administration. QMB covers neither: 42 U.S.C. 1396d(p)(3) limits it to Part A and B premiums, deductibles and coinsurance. The formula also ignores lesser-of payment policies. 42 U.S.C. 1396a(n)(2) does not require a state to pay cost sharing once Medicare's payment reaches the state's Medicaid rate, and 37 to 41 states limit payment this way, depending on the service (MACPAC August 2025 brief, Table 1).

This PR values QMB cost sharing at what Medicaid actually spends on it per QMB. That is CMS-64 line 17D over QMB person-years:

  • Line 17D: "Medicare deductibles and coinsurance required to be paid for QMBs under §1905 (p)(3)" (CMS-64.9 Base line definitions, p. 18).
  • Spending: national net expenditures, total computable, from CMS's Financial Management Reports, FY 2015–2024.
  • Enrollment: QMB-only plus QMB-plus person-years from CMS Program Statistics (Medicare-Medicaid Enrollment table AB 40).
  • Fiscal-year alignment: FY Y's enrollment is 0.25 × CY Y−1 + 0.75 × CY Y.
FY Line 17D QMB person-years Per QMB per year
2015 $964,276,592 6,643,569 $145.14
2016 $1,088,990,259 6,803,363 $160.07
2017 $1,044,519,254 6,969,459 $149.87
2018 $1,023,074,055 7,126,922 $143.55
2019 $1,036,646,026 7,272,592 $142.54
2020 $1,040,603,350 7,505,378 $138.65
2021 $1,046,566,216 7,827,818 $133.70
2022 $1,037,693,614 8,103,524 $128.05
2023 $1,118,400,599 8,413,952 $132.92
2024 $1,153,227,651 8,374,812 $137.70

What changed

  • New parameter. calibration.gov.hhs.medicare.savings_programs.qmb_cost_sharing_per_enrollee holds the series. Each value is dated October 1, the first day of its fiscal year, the same convention as gov.hhs.medicaid.cost_share.fmap. The FY 2024 value holds afterwards. The series fell 1.9% a year from FY 2016 to FY 2024, then rose 3.8% and 3.6% in the last two years, so there is no trend to project.
  • Formula. qmb_cost_sharing now pays a QMB one twelfth of the value in force each month. It no longer reads per_capita_cost. A calendar year is therefore nine twelfths of one fiscal year's value plus three twelfths of the next.
  • Removed. The unused gov.hhs.medicare.savings_programs.qmb.cost_sharing_rate is deleted; qmb_cost_sharing was its only reader.

Why a dollar series, not a rate on a narrower base

The task allowed basing a rate on Part A/B spending only. No constant rate on any Medicare spending base reproduces the published series:

  • All Parts (NHE Table 17 Medicare spending per enrollee, Use CMS Medicare spending per enrollee for the Medicare per capita cost #10107's series): the implied rate falls from 1.32% in FY 2016 ($160.07 / $12,119) to 0.82% in FY 2024 ($137.70 / $16,779).
  • Part A + Part B only (2026 Trustees Report Table V.D1): HI plus Part B per beneficiary cost was $10,766 in 2016 and $14,989 in 2024. The implied rate falls from 1.49% to 0.92%.

Either way the rate would have to fall 38% in eight years.

Verification of the figure

  • In every year, state rows sum exactly to the national row.
  • The FY 2016 national value matches data.medicaid.gov's "Medicaid Financial Management Data – National Totals" exactly ($1,088,990,259).
  • For FY 2023, lines 17A + 17B + 17C1 + 17D = $27,586,967,722. That matches MACStats December 2024 Exhibit 17's "Medicare premiums and coinsurance" total of $27,587 million.
  • MACPAC treats line 17D as Medicaid's QMB cost-sharing spending: the MACStats technical guide (Exhibit 51, note 4) distributes the "CMS-64 amounts for QMBs" across service categories.

Limits of the figure, and comparators

  • States differ in how they report. 22 to 25 states report a nonzero line 17D. California, New York, Texas, Pennsylvania, Georgia, Alabama and others report $0, so they presumably book crossover payments under service lines. Per QMB, the reporting states average $370 to $398 (FY 2022–2024), but they range from $1–2 (Illinois) to $2,069 (Arkansas). Arkansas's figure per fee-for-service QMB exceeds the whole fee-for-service liability per QMB, so the line is not clean state by state either. Reporting differences push the national ratio low.
  • QMB-only versus QMB-plus. The model applies this value only to QMB-only people, because msp_cost is zero for Medicaid enrollees. QMB-only enrollees incur less cost sharing per person-year than QMB-plus enrollees: $689 versus $1,261 in CY 2022, from MedPAC–MACPAC Table 6 over CMS person-years. That pushes the other way. The per-QMB average also includes institutionalized QMBs, whom the CPS-based microdata exclude. SNF copayments (days 21–100) are $1.3B of the $8.1B QMB-plus liability in Table 6, but only $0.1B of the $1.2B QMB-only liability.
  • Upper reference, cost sharing incurred. The December 2025 MedPAC–MACPAC duals data book (Table 6) puts fee-for-service Part A and B cost sharing incurred by QMB-only beneficiaries at $1.2B in CY 2022. That is $689 per QMB-only person-year, or $2,269 per fee-for-service QMB-only person-year. The data book says these amounts "do not reflect the actual cost-sharing amounts paid to providers by beneficiaries, Medicaid, or other third parties." The old $2,900 exceeded the $689 average liability by a factor of four.
  • Payment shares. In lesser-of states, Medicaid paid 11% to 93% of evaluation-and-management cost sharing, mostly under 50% (Haber et al. 2014, cited in MACPAC's March 2015 report, chapter 6).
  • CMS actuarial assumption. The 2023 Medicare Savings Program rule's impact analysis assumed "about $5,000 per enrollee per year for 2023" for Part B premium and cost-sharing assistance to newly enrolled SSI recipients (88 FR 65264). That leaves about $3,000 of cost sharing after the $1,978.80 Part B premium. It is an assumption for a sicker population, not a measured payment.

Invariants (tested)

policyengine_us/tests/core/test_qmb_cost_sharing_per_enrollee.py:

  1. Transcription: each value equals line 17D over fiscal-year QMB person-years, rounded to the cent, recomputed from the published totals in the test.
  2. Cross-source: line 17D plus FY 2023 lines 17A–17C1 equals MACStats Exhibit 17's $27,587 million.
  3. Level: every value is positive and under a fifth of CY 2022's fee-for-service cost sharing incurred per QMB person-year ($1,139).
  4. Dating (Hypothesis): every date reads its own fiscal year's value, and every date from October 2024 to 2100 reads the FY 2024 value.
  5. Consumers (Hypothesis): a QMB's monthly qmb_cost_sharing is the value in force over 12, and SLMB, QI and no category get zero. A calendar year sums to 9/12 of one fiscal year's value plus 3/12 of the next. For QMB, SLMB and QI across states, premiums and Medicaid enrollment:
    • msp_cost equals the premiums plus the summed cost sharing;
    • msp_federal_cost + msp_state_cost equals msp_cost;
    • QI has no state cost;
    • a Medicaid enrollee has no MSP cost.

YAML: four expectations move from $2,900 to $137.70 of QMB cost sharing: qmb_cost_sharing, msp_cost, msp_federal_and_state_cost and federal_and_state_benefit_cost. New cases cover September and October 2023 and a 2023 msp_cost that straddles the fiscal-year boundary.

Impact

PENDING: full-population microsim, base upstream/main 065d0e9 vs this PR, 2026, on the default dataset. Variables: msp_cost, msp_federal_cost, msp_state_cost, federal_benefit_cost, state_benefit_cost, healthcare_benefit_value, household_health_benefits, household_net_income.

household_net_income and SPM resources do not include msp_cost. Health benefits enter net income only when gov.simulation.include_health_benefits_in_net_income is on. So poverty and net income should not move.

Interaction with #10107

#10107 replaces per_capita_cost. After this PR, QMB cost sharing no longer depends on it. #10107's edits to qmb_cost_sharing.yaml, msp_cost.yaml, msp_federal_and_state_cost.yaml and federal_and_state_benefit_cost.yaml, and its test_qmb_cost_sharing_is_the_qmb_rate_of_monthly_spending, are superseded here. Whichever PR merges second takes these versions. #10107's session has been told.

Tests run

  • policyengine-core test on gov/hhs/medicare/savings_programs, household/income/person/federal_and_state_benefit_cost.yaml, household/healthcare_benefit_value.yaml and household/household_health_benefits.yaml: 111 passed.
  • pytest on tests/core/test_qmb_cost_sharing_per_enrollee.py, test_part_b_msp_offset.py, and the parameter and reference-URL code-health tests: 146 passed.

axiom: n/a: calibration (an empirical spending figure that approximates claims-level cost sharing, not a rule)

Evidence, with source files, SHA256 sums, extraction scripts and notes: ~/reviews/qmb-cost-sharing-2026-10/.

🤖 Generated with Claude Code

qmb_cost_sharing was 20% of average Medicare spending per enrollee
($14,500, so $2,900 a year), a base that includes Part D and
administration, which QMB does not cover, and that ignores states'
lesser-of payment limits (42 U.S.C. 1396a(n)(2)). It now uses national
CMS-64 line 17D spending (Medicare deductibles and coinsurance for QMBs
under 1905(p)(3)) over CMS Program Statistics QMB person-years, by
federal fiscal year: $137.70 a year in FY 2024, held afterwards.

Removes the unused gov.hhs.medicare.savings_programs.qmb.cost_sharing_rate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The provision does not require a state to pay QMB cost sharing once
Medicare's payment reaches the state's Medicaid rate; it does not bar
paying more ((n)(1) allows it). Correct the variable documentation and
the test module docstring.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

The CI run on this pull request was cancelled at 23:27Z on 2026-10-11 to free the organization's shared GitHub runners for an urgent fix in another repository. The US + core hub will re-run it automatically (cancelled jobs only; jobs that had passed are kept). Nothing in this pull request changed. Please don't push or reopen just to restart CI.

@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Picking this up for the US hub. I'll post a hand-off comment here when it's ready.


Generated by Claude Code

@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Ready for hub review

Head: 5fdb691eec8b73670fcedbe7ae5c79bdd5a0a9e9 (unchanged; nothing pushed)

RESULT: BLOCKED on a methodology choice no source settles. Per the brief, I stopped this PR at the choice. The transcription checks out exactly. What the PR cannot show is that national CMS-64 line 17D per QMB measures what qmb_cost_sharing should hold, and the defensible values run from about $80 to about $2,300 a year. Options and numbers are below. Once the hub picks one, the remaining work is mechanical (merge, tests, body); see "After the choice".

1. Still needed?

Yes. main (4e71481e19) still sets qmb_cost_sharing to 20% of calibration.gov.hhs.medicare.per_capita_cost divided by 12. Since #10107, that is $2,984.20 a year in 2022 and $3,796.60 in 2026 ($316.38 a month, reproduced on main).

No open PR does what this one does, but two compete for the same lines:

The two approaches are alternatives, so the hub's choice here also decides #10126's formula hunk.

2. What I verified (fetched myself or by subagents that downloaded the primary files; nothing taken from the PR)

PR claim Result
Line 17D definition, CMS-64.9 Base line definitions file page 18 Verbatim: "Include Medicare deductibles and coinsurance required to be paid for QMBs under §1905 (p)(3)." The FMR row label is "Coinsurance".
FY 2015–2024 national line 17D, total computable All 10 values match the FMR spreadsheets (sheet "MAP - National Totals", row "Coinsurance") exactly. State sheets sum to the national row every year. FY 2016 also matches data.medicaid.gov.
QMB person-years, CMS Program Statistics MDCR ENROLL AB 40, columns QMB Plus and QMB CY 2014–2024 match to the float. FY = 0.25 × CY(Y−1) + 0.75 × CY Y reproduces all 10 FY figures, and every per-QMB value matches to the cent ($145.14 … $137.70).
FY 2023 lines 17A + 17B + 17C1 + 17D = $27,586,967,722 = MACStats Dec 2024 Exhibit 17's $27,587 million Both true, but not an independent check: MACStats is built from the same FMR.
22–25 states report a nonzero 17D, and CA, NY, TX, PA, GA and AL report $0 True for FY 2022–2024 (25, 24, 25). CA, NY, TX, GA and AL report $0 in every year from FY 2015 to 2024. PA has two small negative adjustments (−$27,981 in FY 2021, −$162 in FY 2022).
42 U.S.C. 1396d(p)(3), 1396a(n)(2) Accurate. The (n)(2) paraphrase leaves out that "to the extent" also gives partial relief: a state may pay only up to its Medicaid rate less Medicare's payment.
MedPAC–MACPAC Dec 2025 data book Table 6: QMB-only $1.2B, QMB-plus $8.1B, SNF $0.1B / $1.3B, and the "do not reflect the actual cost-sharing amounts paid" note All verbatim. But Table 6 is fee-for-service only, and AB 40 counts Medicare Advantage enrollees too: 1.21M of the 1.74M QMB-only person-years in CY 2022 were in MA (AB 46). So $689 averages FFS liability over FFS and MA enrollees. Per FFS QMB-only person-year (AB 43: 528,811) it is $2,269.
MACPAC Aug 2025 brief, Table 1: 37–41 states use lesser-of Exact: inpatient 38, outpatient 37, nursing facility 37, physician 41.
88 FR 65264: "about $5,000 per enrollee per year for 2023" Verbatim (file page 35).
MACPAC March 2015 report, ch. 6 (Haber et al.): 11–93% of E&M cost sharing paid in lesser-of states Verbatim (file page 124).

3. The choice

qmb_cost_sharing feeds msp_cost, and through it both msp_federal_cost/msp_state_cost (government cost) and healthcare_benefit_value/household_health_benefits (household benefit). healthcare_benefit_value's documentation says it uses "government-cost proxy variables directly", which favors measuring Medicaid's spending. Even so, no source says which spending figure is unbiased:

  • Line 17D misses most crossover spending. Its definition sends Medicaid-covered services that Medicare also covers to their own service lines. Only 25 states report on 17D, and seven of them (CT, MO, AR, WI, ME, LA and MD) supply 80.5% of FY 2024's total. The data book (file page 79) says these payments cannot be separated in T-MSIS because they are embedded in service-type spending.
  • The PR's own figures bracket the answer. It says reporting differences push the national ratio low, and that QMB-only enrollees' lower liability pushes the other way.

FY 2024 values from the same FMR and AB 40/42 files:

Option Annual value per QMB Supports Weaknesses
A. This PR: national 17D / all QMB person-years $137.70 A defined CMS-64 line; measured spending Of the eight states with the most QMBs, six (CA, NY, TX, PA, MA and OH) report $0 and two (FL and MI) report under $50 per QMB, so this is a floor, not an estimate
B. 17D / QMB person-years in the 25 reporting states $386.90 (I computed it from the FMR state sheets and AB 42; the PR says $370–398 for FY 2022–2024) Removes the zero-reporting states Which states report is not random; still mixes QMB-only with QMB-plus
B′. States that appear to report comprehensively (CT, MO, AR, WI, ME) $1,218–$1,575 Closest to a full count of Medicaid's payments Five states; needs a rule for "comprehensive"
B″. Either 17D figure, moved to QMB-only. This allocates 17D between the two groups by Table 6's liability per person-year, CY 2022: QMB-only $688.70, QMB-plus $1,260.80 $83.06 nationally, $241.92 in the reporting states Only QMB-only people get this value, since msp_cost is zero for Medicaid enrollees, and QMB-plus are 87% of QMB FFS liability Assumes Medicaid pays the same share of each group's cost sharing
C. Cost-sharing liability (Table 6) $689 per QMB-only person-year (CY 2022, FFS liability over FFS and MA enrollees), or $2,269 per FFS QMB-only person-year What a QMB is protected from: under 1396a(n)(3)(B) providers cannot bill QMBs, so this is the benefit to the household It is liability, not Medicaid's payment, and lesser-of means Medicaid pays less. It excludes MA cost sharing, and the data book appears annually
D. main: 20% × Medicare spending per enrollee $3,796.60 (2026) No new parameter Above even FFS liability per FFS QMB-only person-year ($2,269 in 2022, against main's $2,984 for 2022). Includes Part D and administration
E. Split the concept. A Medicaid-payment value (A, B or B′) for msp_federal_cost/msp_state_cost, and a liability value (C) for the household benefit — Fiscal cost and household value differ by law (lesser-of plus the ban on balance billing) Adds a variable and changes msp_cost

Independent check. A separate agent got the code, the PR description and the source checks, but not my conclusion. It also found that no source fixes the value (settled_by_source: false). It found these problems with the PR whichever option is chosen; I confirmed the first two myself:

  • A main test breaks with no textual conflict. policyengine_us/tests/core/test_medicare_per_capita_cost.py:237-247 (test_qmb_cost_sharing_is_the_qmb_rate_of_monthly_spending, added by Use CMS Medicare spending per enrollee for the Medicare per capita cost #10107) reads gov.hhs.medicare.savings_programs.qmb.cost_sharing_rate, which this PR deletes. The PR body says that test is "superseded here", but the PR does not touch that file. The merge must delete or rewrite the test and the module docstring that describes the old formula (line 16; invariant 6 at lines 37-38).
  • No value before October 2014. The new parameter starts on 2014-10-01. At this head it returns None for 2014-09-01, where main's formula returns a value. This is minor, since it is before FIRST_MODELED_YEAR (2015).
  • No growth after FY 2024. The nominal $137.70 holds to 2100, and a test enforces it, while main's base grows to 2100. Every option needs a growth rule. That is a second choice for the hub.
  • The documentation overstates the figure. It calls 17D "national Medicaid spending" and never says it is a floor. The label still says "cost-sharing value".
  • The body leaves out a household-facing consumer. healthcare_benefit_value adds msp_cost whether or not include_health_benefits_in_net_income is on, so the value reaches household_net_income_including_health_benefits and marginal_tax_rate_including_health_benefits. The body names only household_net_income and SPM resources.
  • The body's reporting-state range does not reproduce. It says $370–398. With the PR's own fiscal-year weighting I get $386.90 for FY 2024, and the agent got $385.51 for FY 2023 and $365.40 for FY 2022 (24 positive reporters).
  • CI cost. tests/core/test_qmb_cost_sharing_per_enrollee.py built about 65 simulations: 26 passed in 91 s, with 178 s wall time and a 5.5 GB peak, run locally at this head. Its Hypothesis cases recheck behavior the YAML cases already cover (the monthly twelfth, the October switch, the FMAP split). Under CLAUDE.md's test-design rules it should shrink, and the PR reports no timing.

4. After the choice

  1. Merge main. Four YAML files conflict; the line numbers are in the merged file: msp_cost.yaml:14-20, msp_federal_and_state_cost.yaml:13-22, qmb_cost_sharing.yaml:7-14 and federal_and_state_benefit_cost.yaml:87-97. In each, main has the $18,983 × 20% values from Use CMS Medicare spending per enrollee for the Medicare per capita cost #10107 and this PR has the $137.70 values. Under option A, take this PR's side. Under any other option, recompute them. The variable and parameter files merge cleanly.
  2. Delete or rewrite test_medicare_per_capita_cost.py:237-247 and its docstring lines, as above. Run that file after the merge.
  3. Add the growth rule the hub picks, and change test_dates_after_fy_2024_hold_its_value to match.
  4. Fix a cosmetic error. qmb_cost_sharing_per_enrollee.yaml's FY 2021 comment says 7,827,817.8. The stored person-year floats give 7,827,817.7; the value of 133.70 is right either way.
  5. Fix the level test's denominator. test_qmb_cost_sharing_per_enrollee.py's bound divides Table 6's FFS-only dollars ($9.3B) by person-years that include MA. The ratio, $1,139, is a weak bound for that reason; per FFS QMB person-year (AB 43) it is $2,696.
  6. Body. Add impact: the hub will measure and axiom: (hub files pe-parity before landing), and remove the local evidence-folder path.

Hand computations

  • FY 2024, PR: $1,153,227,651 / 8,374,811.6 = $137.70.
  • FY 2024, reporting states: $1,150,796,060 / 2,974,364.5 = $386.90.
  • main: 0.2 × $18,983 = $3,796.60 (2026), or 0.2 × $14,921 = $2,984.20 (2022).
  • Table 6, CY 2022: $1.2B / 1,742,420.2 QMB-only person-years = $688.70, and $1.2B / 528,810.7 FFS QMB-only person-years = $2,269.24.

Tests (run locally at this unchanged head, one file per process)

File Result Wall time, peak RSS
savings_programs/qmb_cost_sharing.yaml 4 passed 78 s, 2.0 GB
savings_programs/msp_cost.yaml 5 passed 91 s, 2.5 GB
savings_programs/msp_federal_and_state_cost.yaml 3 passed 80 s, 2.2 GB
household/income/person/federal_and_state_benefit_cost.yaml 6 passed 82 s, 2.3 GB
tests/core/test_qmb_cost_sharing_per_enrollee.py 26 passed 178 s, 5.5 GB

The head is 510 commits behind main, so these results describe the PR as written, not the merge. The last CI run at this head (38181884791) did not fail on its tests: the runner received a shutdown signal mid-job. CI has not run since, and I pushed nothing.

Mutants

None. I made no fix, so there is nothing to mutate.

Proposed follow-up

None beyond the choice itself. If the hub picks E, the household-value variable is new work for this PR or its successor.

Judgment call

Stopping here, rather than merging main and pushing option A, follows the item's rule for unsettled methodology choices. A merge pushed now would have to be redone under any other option, and each push costs about 35 minutes of shared CI.


Generated by Claude Code

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant