Skip to content

Update CMS out-of-pocket per-capita uprater to NHE projections 2025-2034 - #10084

Merged
MaxGhenis merged 5 commits into
mainfrom
moop-nhe-2025-2034-refresh
Oct 13, 2026
Merged

MaxGhenis merged 5 commits into
mainfrom
moop-nhe-2025-2034-refresh

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Summary

calibration.gov.hhs.cms.moop_per_capita is the uprater for the model's health expense inputs. It held CMS's 2023-2032 National Health Expenditure (NHE) projections (retrieved 2025-02-17), with 2033-2035 extended by hand in the YAML. This PR replaces it with the current 2025-2034 release:

  • 2018-2034 are Table 3's "Per Capita Amount" block, "Out-of-Pocket Payments" column, transcribed from the file. The YAML marks them as the file does: 2018-2024 "Historical Estimates", 2025-2034 "Projected".
  • 2033-2035 hand-extended values are gone. The source now reaches 2034, so uprating_extensions.py extends from last_projected_year=2034. Each year from 2035 to 2100 grows at CMS's 2033-2034 rate (2,512 / 2,412, 4.1% a year), and later years hold the 2100 value. That is what extend_parameter_values does; the call site and the YAML now say so.
  • 2015-2017 are derived from CMS's historical accounts (decision below).
  • The reference block names the projections ZIP and the historical ZIP, with Last-Modified, sha256 and retrieval date for each.

Source verification

Downloaded and re-verified on 2026-10-11:

File Last-Modified sha256
nhe-projections-tables.zip 2026-09-03 17:20:15 GMT 264f822618a5e1829138aea57cc6c8bf45bbaf072a72898fef5547f7ece6cd70
national-health-expenditures-type-service-source-funds-cy-1960-2024.zip 2026-01-13 13:58:16 GMT b6a9e26774ca36931d42add46204947d6335fc4898011780563196898f964746

Every value was read programmatically from Table03 National Health Expenditures by Sources of Funds.xlsx (cells C24:C41), not retyped from the brief. The brief's figures for 2018-2031 match the file.

2015-2017: derived, not dropped or kept

The new Table 3 starts in 2018. No historical NHE table publishes an out-of-pocket per-capita row either: historical Table 3 has out-of-pocket spending only in billions, and Tables 1 and 2 give per-capita figures for spending categories, not for sources of funds. Three options:

  1. Keep the old 2016-2017 values (1,130 and 1,139). They are on the old vintage. Every year from 2018 to 2032, which both vintages report, moved: 2018 went from 1,181 to 1,223, 2022 from 1,425 to 1,468. Keeping them would splice two vintages and put a spurious 7.4% jump into 2017-2018, where the current vintage has 3.9%. CMS's summary of the 2024 comprehensive revision says the entire NHEA time series is opened for revision, and that 2022 out-of-pocket spending was revised up $20.4 billion.

  2. Drop them. backdate_parameters (tools/parameters.py) copies a parameter's earliest value back to FIRST_MODELED_YEAR (2015). The 2018 value would then apply to 2015-2017, and an input reported for 2015, 2016 or 2017 would get no health-cost growth to 2018 instead of 9.3%, 5.9% or 3.9%.

  3. Derive them on the current vintage (chosen). Each year's value is per-capita NHE (Table 1 of the same projections ZIP, which runs from 2013) times out-of-pocket spending's share of NHE in the historical accounts (NHE2024.csv, rows "Out of pocket" and "Total National Health Expenditures", in millions), rounded to the dollar.

    • The rule reproduces every published 2018-2024 value: 1,223.39, 1,269.15, 1,239.19, 1,372.13, 1,468.17, 1,555.37 and 1,631.52 round to Table 3's figures.
    • It gives 1,119.32 (2015), 1,155.17 (2016) and 1,177.06 (2017). Each rounds to the same dollar anywhere in per-capita NHE's ±$0.50 rounding range.
    • The historical accounts are the projections' vintage: their 2018-2024 out-of-pocket and NHE totals round to Table 3's aggregates, and their 2013-2017 NHE totals round to projections Table 1's.
    • Dividing out-of-pocket spending by the population in historical Table 1 (stored to 0.1 million) gives the same 2015-2017 dollars, but it misses 2018 by a dollar (1,224 against 1,223). So the per-capita NHE rule is the one documented.

    2015 is added because it is the first modeled year: without it, 2015 took 2016's value and 2015-2016 health-cost growth was zero.

Per-person uprating change

A health expense input reported for 2024 is carried to later years by the ratio of this series. Values are the model's system.parameters on main and on this branch:

Year Old value New value Old factor from 2024 New factor from 2024 New / old
2024 1,619 1,632 1.0000 1.0000 +0.00%
2025 1,669 1,721 1.0309 1.0545 +2.29%
2026 1,720 1,826 1.0624 1.1189 +5.32%
2027 1,786 1,892 1.1032 1.1593 +5.09%
2028 1,851 1,974 1.1433 1.2096 +5.80%
2029 1,917 2,053 1.1841 1.2580 +6.24%
2030 1,985 2,139 1.2261 1.3107 +6.90%
2031 2,057 2,223 1.2705 1.3621 +7.21%
2032 2,131 2,314 1.3162 1.4179 +7.72%
2033 2,208 2,412 1.3638 1.4779 +8.37%
2034 2,287 2,512 1.4126 1.5392 +8.96%
2050 4,018 4,812 2.4820 2.9483 +18.79%
2100 23,388 36,679 14.4460 22.4747 +55.58%

From 2024 to 2034, per-person health expense uprating goes from +41.3% (factor 1.4126, 3.51% a year) to +53.9% (factor 1.5392, 4.41% a year). A 2024 input's 2034 value is 9.0% higher than before; for 2025 simulations it is 2.3% higher. After the source ends, the long-run rate goes from 3.59% to 4.15% a year.

These factors are parameter ratios, not microsimulation output. Weighted totals of these inputs also grow with population, through the household weights.

What uses this series

The inputs listed in docs-quarto/methodology/spm-poverty.qmd: other medical expenses, over-the-counter health expenses, other health insurance premiums; physician services, inpatient, outpatient, emergency room, urgent care, ambulance, imaging, lab and prescription expenses; health insurance premiums in total, pre-tax, long-term and excluding Medicare Part B; and reported Medicare Part B premiums. Health savings account payroll contributions also used it until #10097 moved them to the family HSA contribution limit. #10083 moves pre_tax_health_insurance_premiums and employer_sponsored_insurance_premiums to calibration.gov.hhs.cms.esi_premium_per_enrollee; this PR leaves both alone. The docs page names the series without numbers, so it needs no edit (and editing its line 53 would conflict with #10083).

Invariants

  1. Transcription: every 2018-2034 value is Table 3's published dollar figure. It is also consistent within rounding with the same release's out-of-pocket and NHE aggregates (Table 3) and per-capita NHE (Table 1). That interval check catches a mistyped value in any of the three rows unless the error stays within publication rounding (883.3 for 2034's 883.2 would pass), which is why the exact transcription check comes first.
  2. Historical rule: for 2015-2024, the value is round(per-capita NHE × out-of-pocket share). For 2018-2024 that reproduces Table 3, and for 2015-2017 the rounding is unambiguous over per-capita NHE's rounding range. The historical accounts' 2018-2024 totals match Table 3's aggregates.
  3. Markers: the YAML marks 2018 "Historical Estimates" and 2025 "Projected", as Table 3 does, and its dated values are exactly 2015-2034.
  4. Bounds and order: positive in every year (Hypothesis, 2015-2200). Strictly increasing over 2015-2019 and 2020-2100 (Hypothesis over year pairs). The one decline is 2019-2020 (1,269 to 1,239); it is CMS's and is intended, and an exhaustive scan asserts it is the only one.
  5. Extension rule: each year 2035-2100 grows by 2,512 / 2,412. A differential test checks the iterative extension against the closed form 2,512 × (2,512 / 2,412)^(year − 2034) (Hypothesis, rel 1e-12). Every year after 2100 holds the 2100 value.

Tests

  • New policyengine_us/tests/core/test_cms_moop_uprating.py (invariants 1-5, plus the set of inputs on this uprater).
  • Updated test_uprating_extensions.py::test_cms_moop_per_capita_extends_to_2100: 2034 is 2,512, 2035-2100 grow at the 2033-2034 rate, and 2150 equals 2100.
  • Mutation check: with main's YAML and extension call restored, 32 of these tests fail (transcription, historical rule, markers, monotonicity on the flat 2015-2016, extension rate).
  • Local runs:
    • The two moop test files: 84 passed.
    • The uprating suites (test_per_capita_uprating.py, test_uprating_series.py, test_pre_first_modeled_year_uprated_inputs.py, test_uprating_extensions.py): pass.
    • tests/code_health: 266 passed.
    • The 64 YAML test files that set any of the 18 inputs: 534 passed.
  • Merge with Uprate ESI premium inputs by CMS ESI premium per enrollee #10083 is clean (git merge-tree), and on the merged tree both PRs' uprating tests pass (287 passed).

Review

  • GPT-6.1 Sol, head 4ea78e2: APPROVE, two wording nits.
    • The reviewer independently re-downloaded both ZIPs and matched their hashes and Last-Modified dates. It re-read all 17 Table03 cells and recomputed the 2015-2017 rule and the vintage checks; the projection CSV matches the historical CSV for all 65 overlapping years.
    • It re-ran the uprating suites (224 passed) and the mutation check (32 failed on main's values), recomputed every row of the factor table, and checked that the merge with Uprate ESI premium inputs by CMS ESI premium per enrollee #10083 is clean.
    • The nits were the source of the population figures in the alternative method (historical Table 1) and an overstated typo-detection claim for the interval check. Both are fixed in 9d48c6e.
  • GPT-6.1 Sol, head 9d48c6e: APPROVE, no findings. The delta is the docstring only; an AST comparison excluding docstrings is identical.

Reports: ~/reviews/moop-nhe-2025-2034/review/ (review-10084.md, delta-review-9d48c6e.md, evidence/).

Microsimulation impact (full population, 2025 and 2026)

Four full-population runs back these numbers (base and PR, for 2025 and 2026), on the default dataset populace_us_2024 (build populace-us-2024-spm-20260909), through the hub's heavy lock.

  • Base: main at 7dc07567eb.
  • PR: that commit merged with this PR's head 9d48c6e926 (tree 8871f01b19). The two snapshots differ only in moop_per_capita.yaml, uprating_extensions.py and tests.
  • The base is main, not this PR's merge-base, because Uprate ESI premium inputs by CMS ESI premium per enrollee #10083 has since merged and moved the employer-premium inputs off this uprater.

Headline

2025 base 2025 PR Change 2026 base 2026 PR Change
SPM medical out-of-pocket expenses ($bn) 942.10 960.72 +18.61 1,045.14 1,089.92 +44.78
SPM poverty rate, people 13.461% 13.587% +0.126 pt 14.204% 14.428% +0.225 pt
People in SPM poverty (millions) 46.203 46.634 +0.432 49.100 49.877 +0.778
Medical expense deduction ($bn) 364.49 376.06 +11.57 381.36 409.42 +28.06
Tax units itemizing (millions) 18.520 18.772 +0.252 17.173 17.703 +0.530
Federal income tax ($bn) 2,419.53 2,418.97 -0.56 2,593.32 2,591.95 -1.36
State income tax ($bn) 548.28 548.09 -0.19 576.62 576.17 -0.45
SNAP ($bn) 99.18 99.34 +0.16 97.21 97.51 +0.30
Household net income ($bn) 16,349.69 16,350.61 +0.92 17,169.30 17,171.43 +2.13

SPM resources subtract medical out-of-pocket expenses (spm_unit_net_income subtracts spm_unit_spm_expenses), so the higher series lowers SPM resources by $17.69 billion in 2025 and $42.65 billion in 2026 and raises measured SPM poverty. The rise in household net income matches, to rounding, the fall in household taxes plus the rise in SNAP (2026: $1.82 billion + $0.30 billion; 2025: $0.76 billion + $0.16 billion).

Uprated inputs ($ billions, weighted)

Every populated input moves by exactly the ratio of the two series' factors from 2024: 1.05453 / 1.03088 = +2.29% for 2025 and 1.11887 / 1.06238 = +5.32% for 2026, matching the per-person table in the PR body.

Input 2025 base 2025 PR Change 2026 base 2026 PR Change
other_medical_expenses 314.04 321.25 +7.20 325.95 343.28 +17.33
over_the_counter_health_expenses 70.29 71.90 +1.61 72.95 76.83 +3.88
other_health_insurance_premiums 427.14 436.94 +9.80 443.34 466.91 +23.57
health_insurance_premiums_without_medicare_part_b 449.78 460.10 +10.32 466.83 491.65 +24.82
health_insurance_premiums 19.09 19.53 +0.44 19.81 20.87 +1.05

The other 11 inputs on this uprater are zero for every record in this dataset, on both sides: physician services, inpatient, outpatient, emergency room, urgent care, ambulance, imaging, lab and prescription expenses; long-term health insurance premiums; and reported Medicare Part B premiums. This PR changes none of them in a default-dataset simulation. (The runs predate #10097, so HSA payroll contributions, then a 12th zero input on this uprater, now follow the family HSA limit instead; the dataset has no such column.)

Of the 2026 change in SPM medical out-of-pocket expenses, $21.21 billion is the non-premium part (other_medical_expenses plus over_the_counter_health_expenses) and $23.57 billion is other_health_insurance_premiums. #10085 (open) moves the five premium inputs on this uprater, including the three populated ones above, to premium series; if it merges, only the non-premium part stays attributable to this PR.

Other outputs, 2026 ($ billions)

Output Base PR Change
itemized_medical_expenses 937.08 979.23 +42.15
itemized_taxable_income_deductions 1,856.56 1,884.57 +28.02
self_employed_health_insurance_ald 15.90 16.64 +0.74
adjusted_gross_income 18,963.41 18,962.66 -0.74
taxable_income 14,450.18 14,443.54 -6.64
household_tax 4,165.09 4,163.26 -1.82

Unchanged in both years: employee_payroll_tax, ssi and msp (zero records changed). medicaid totals $880.02 billion on both sides. Its record values shift (2026: 9 records up, 4,159 down, about $1.12 billion each way) because medicaid_cost_if_enrolled splits each state's fixed spending total across that state's enrollees. spm_unit_capped_housing_subsidy rises by $2.8 million in 2026.

Checks

  • Each populated input's weighted total moves by the factor ratio to within 1e-6, in both years.
  • Both runs loaded their own snapshot (module path recorded in each run's JSON) and the same dataset. Record order and weights are identical across sides, so every row above is a record-by-record comparison.
  • pre_tax_health_insurance_premiums and employer_sponsored_insurance_premiums were included as controls. They are zero in this dataset, so the microsimulation can't show they stay put; a separate check of both snapshots confirms they uprate by esi_premium_per_enrollee on both sides.
  • Table 03's out-of-pocket per-capita cells for 2018-2034, re-read from the ZIP (sha256 264f8226…cd70), equal this PR's YAML in every year.

Evidence (local): ~/reviews/moop-nhe-2025-2034-aggregates-2026-10/ holds the snapshots' SHAs, the driver, per-record outputs, compare.2025.json, compare.2026.json and the full 45-variable tables in impact/summary.2025.md and impact/summary.2026.md.

axiom: n/a: calibration uprating data, not a policy rule

🤖 Generated with Claude Code

MaxGhenis and others added 2 commits October 11, 2026 07:41
Replace calibration.gov.hhs.cms.moop_per_capita with Table 3 of the
2025-2034 NHE projections (2018-2024 historical estimates, 2025-2034
projections), derive 2015-2017 from the historical accounts by the rule
that reproduces Table 3's 2018-2024 values, drop the hand-extended
2033-2035 values, and extend from 2034 at the 2033-2034 growth rate.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis marked this pull request as ready for review October 11, 2026 11:58
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Hand-off to the US + core hub. Only CI and the merge remain.

  • Head: 9d48c6e926a8503817767e8614d94f7b22391d5d. The branch is fully pushed, and nothing local is needed.
  • Reviews: GPT-6.1 Sol approved 4ea78e2 with two wording nits, fixed in 9d48c6e. A second GPT-6.1 Sol pass approved 9d48c6e with no findings; the delta is docstring-only. Reports are in ~/reviews/moop-nhe-2025-2034/review/ (review-10084.md, delta-review-9d48c6e.md).
  • CI:
    • The previous head 4ea78e2 passed run 38137506516.
    • On 9d48c6e (run 38151659390), every check passes except "Rest (Python + variables)" and "Contrib (states-shard-4)", which were in progress at 16:28Z.
    • mergeable is MERGEABLE. The PR is blocked only by the required approving review.
  • Merge: squash, on Max's gates, after gh pr checks exits 0:
    gh pr merge 10084 --repo PolicyEngine/policyengine-us --squash --admin --match-head-commit 9d48c6e926a8503817767e8614d94f7b22391d5d
  • Dependencies: none. Uprate ESI premium inputs by CMS ESI premium per enrollee #10083 has merged; this PR merges cleanly on top of it, and both PRs' tests pass on the merged tree.
  • Holds and decisions: none. This is a source refresh of a calibration series that moves aggregates, so it needs no approval.
  • Pending, informational, does not hold the merge: session "Refresh CMS out-of-pocket per capita series" (local_a281cffe) is running a heavy-lock base-vs-PR microsim for 2026 and 2025. Base is main 7dc07567; PR is that commit merged with 9d48c6e. It will post the weighted totals of the 18 inputs and downstream outputs as a comment here. Evidence: ~/reviews/moop-nhe-2025-2034-aggregates-2026-10/impact.
  • Follow-ups owed: none.

@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Aggregate impact: full-population microsimulation, 2025 and 2026

Informational; it doesn't hold the merge. Four full-population runs back these numbers (base and PR, for 2025 and 2026), on the default dataset populace_us_2024 (build populace-us-2024-spm-20260909), through the hub's heavy lock.

  • Base: main at 7dc07567eb.
  • PR: that commit merged with this PR's head 9d48c6e926 (tree 8871f01b19). The two snapshots differ only in moop_per_capita.yaml, uprating_extensions.py and tests.
  • The base is main, not this PR's merge-base, because Uprate ESI premium inputs by CMS ESI premium per enrollee #10083 has since merged and moved the employer-premium inputs off this uprater.

Headline

2025 base 2025 PR Change 2026 base 2026 PR Change
SPM medical out-of-pocket expenses ($bn) 942.10 960.72 +18.61 1,045.14 1,089.92 +44.78
SPM poverty rate, people 13.461% 13.587% +0.126 pt 14.204% 14.428% +0.225 pt
People in SPM poverty (millions) 46.203 46.634 +0.432 49.100 49.877 +0.778
Medical expense deduction ($bn) 364.49 376.06 +11.57 381.36 409.42 +28.06
Tax units itemizing (millions) 18.520 18.772 +0.252 17.173 17.703 +0.530
Federal income tax ($bn) 2,419.53 2,418.97 -0.56 2,593.32 2,591.95 -1.36
State income tax ($bn) 548.28 548.09 -0.19 576.62 576.17 -0.45
SNAP ($bn) 99.18 99.34 +0.16 97.21 97.51 +0.30
Household net income ($bn) 16,349.69 16,350.61 +0.92 17,169.30 17,171.43 +2.13

SPM resources subtract medical out-of-pocket expenses (spm_unit_net_income subtracts spm_unit_spm_expenses), so the higher series lowers SPM resources by $17.69 billion in 2025 and $42.65 billion in 2026 and raises measured SPM poverty. The rise in household net income matches, to rounding, the fall in household taxes plus the rise in SNAP (2026: $1.82 billion + $0.30 billion; 2025: $0.76 billion + $0.16 billion).

Uprated inputs ($ billions, weighted)

Every populated input moves by exactly the ratio of the two series' factors from 2024: 1.05453 / 1.03088 = +2.29% for 2025 and 1.11887 / 1.06238 = +5.32% for 2026, matching the per-person table in the PR body.

Input 2025 base 2025 PR Change 2026 base 2026 PR Change
other_medical_expenses 314.04 321.25 +7.20 325.95 343.28 +17.33
over_the_counter_health_expenses 70.29 71.90 +1.61 72.95 76.83 +3.88
other_health_insurance_premiums 427.14 436.94 +9.80 443.34 466.91 +23.57
health_insurance_premiums_without_medicare_part_b 449.78 460.10 +10.32 466.83 491.65 +24.82
health_insurance_premiums 19.09 19.53 +0.44 19.81 20.87 +1.05

The other 12 inputs on this uprater are zero for every record in this dataset, on both sides: physician services, inpatient, outpatient, emergency room, urgent care, ambulance, imaging, lab and prescription expenses; long-term health insurance premiums; reported Medicare Part B premiums; and HSA payroll contributions. This PR changes none of them in a default-dataset simulation.

Of the 2026 change in SPM medical out-of-pocket expenses, $21.21 billion is the non-premium part (other_medical_expenses plus over_the_counter_health_expenses) and $23.57 billion is other_health_insurance_premiums. #10085 (open) moves the five premium inputs on this uprater, including the three populated ones above, to premium series; if it merges, only the non-premium part stays attributable to this PR.

Other outputs, 2026 ($ billions)

Output Base PR Change
itemized_medical_expenses 937.08 979.23 +42.15
itemized_taxable_income_deductions 1,856.56 1,884.57 +28.02
self_employed_health_insurance_ald 15.90 16.64 +0.74
adjusted_gross_income 18,963.41 18,962.66 -0.74
taxable_income 14,450.18 14,443.54 -6.64
household_tax 4,165.09 4,163.26 -1.82

Unchanged in both years: employee_payroll_tax, ssi and msp (zero records changed). medicaid totals $880.02 billion on both sides. Its record values shift (2026: 9 records up, 4,159 down, about $1.12 billion each way) because medicaid_cost_if_enrolled splits each state's fixed spending total across that state's enrollees. spm_unit_capped_housing_subsidy rises by $2.8 million in 2026.

Checks

  • Each populated input's weighted total moves by the factor ratio to within 1e-6, in both years.
  • Both runs loaded their own snapshot (module path recorded in each run's JSON) and the same dataset. Record order and weights are identical across sides, so every row above is a record-by-record comparison.
  • pre_tax_health_insurance_premiums and employer_sponsored_insurance_premiums were included as controls. They are zero in this dataset, so the microsimulation can't show they stay put; a separate check of both snapshots confirms they uprate by esi_premium_per_enrollee on both sides.
  • Table 03's out-of-pocket per-capita cells for 2018-2034, re-read from the ZIP (sha256 264f8226…cd70), equal this PR's YAML in every year.

Evidence (local): ~/reviews/moop-nhe-2025-2034-aggregates-2026-10/ holds the snapshots' SHAs, the driver, per-record outputs, compare.2025.json, compare.2026.json and the full 45-variable tables in impact/summary.2025.md and impact/summary.2026.md.

@MaxGhenis MaxGhenis closed this Oct 11, 2026
@MaxGhenis MaxGhenis reopened this Oct 11, 2026
MaxGhenis and others added 2 commits October 12, 2026 13:44
#10097 moved health_savings_account_payroll_contributions to the family HSA
contribution limit, so it no longer uprates by moop_per_capita.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis merged commit a3106dc into main Oct 13, 2026
26 checks passed
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

US + core hub merge audit, us#10084 at b54729f103cd6b8f9712cccc6b1ff22e5d82f9b9 (squash): update the CMS out-of-pocket per-capita uprater to the NHE projections for 2025–2034.

  • Review: independent GPT-6.1 Sol review APPROVE at 9d48c6e926. A Sol delta review APPROVES this head: the hub merged main and removed HSA payroll contributions from the test's list of inputs on this series, because Uprate HSA payroll contributions by the 223(b)(2) contribution limit #10097 moved them to the family HSA limit. Its two description notes are applied.
  • Gates checked live at merge:
    • gh pr checks exits 0;
    • the latest Pull request run at the head concluded success;
    • MERGEABLE;
    • not a draft;
    • no reviewer's latest review requests changes;
    • the semantic-overlap guard;
    • head pinned.
  • Impact (full-population microsimulation on the default dataset, now in the description): SPM medical out-of-pocket expenses +$18.6B (2025) and +$44.8B (2026). The SPM poverty rate rises 0.13 points (2025) and 0.23 points (2026). Medical expense deductions rise $11.6B and $28.1B. Federal income tax changes by −$0.6B and −$1.4B.
  • Why no ruling was needed: it updates the uprater to the newer release of the CMS series it already cites, so the hub treats it as a correction to the cited source.
  • Axiom: n/a, as the description states (calibration uprating data, not a policy rule).

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