Skip to content

Point dollar inputs at closer uprating series - #9527

Merged
MaxGhenis merged 2 commits into
mainfrom
uprating-series-mappings
Sep 18, 2026
Merged

MaxGhenis merged 2 commits into
mainfrom
uprating-series-mappings

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

Points dollar inputs at the series closest to what each one measures. Follows #9525 (docs) and #9526 (per-capita uprating), both merged; this branch is one commit on main.

The rule applied

An input follows, in order of preference: its own national series when the parameter tree has one; the income source it is part of; prices for consumption expenses and debts; CMS per-capita spending for health costs. Everything else keeps the default, CBO total AGI per capita. National totals are converted to per capita at runtime by #9526.

Two defects

  • Unemployment compensation. calibration.gov.irs.soi.unemployment_compensation was extended by calibration.gov.cbo.income_by_source.taxable_social_security. calibration.gov.cbo.unemployment_compensation sat in the tree with no variable using it. The SOI series now grows with CBO's unemployment compensation outlays from 2022, the first year that series has, and that series is carried past 2036 like the other CBO anchors.
  • Alimony income followed the SOI self-employment series. Alimony income and expense now follow calibration.gov.irs.soi.alimony_income, whose label said "SOI short-term capital gains" and is corrected.

Reassignments from the default

Inputs Now follow
hourly_wage, tip_income, fsla_overtime_premium, W-2 wages of qualified businesses, desired 401(k), 403(b) and IRA contributions, military and government pay SOI employment income
workers_compensation, disability_benefits SOI employment income
self_employed_pension_contributions_desired SOI self-employment income
Collectibles gains, unrecaptured section 1250 gain, non-Schedule D gains, capital gain distributions, small business stock gains, property sales gains, other net gain SOI long-term capital gains
health_insurance_premiums CMS per-capita out-of-pocket spending, as the other premium inputs already do
veterans_benefits gov.ssa.uprating, the Social Security cost-of-living index
Rent, child care and care expenses, tuition, utilities, phone, broadband, homeowners insurance and association fees, transportation CPI-U
Person-level home mortgage interest, student loan interest, investment interest expense CPI-U, as the asset, debt and auto loan inputs already do

The dataset-extension override table already mapped the computed rent column to CPI-U; the pre_subsidy_rent input the default dataset carries now matches it.

Growth each series applies, from 2024

Series 2025 2030 2035
Default: CBO total AGI per capita 1.0592 1.2476 1.4728
SOI employment income per capita 1.0397 1.2406 1.4682
SOI long-term capital gains per capita 1.2584 1.1546 1.3174
SOI unemployment compensation per capita, new 1.1072 1.3581 1.5356
CBO taxable Social Security per capita, the old unemployment driver 1.1292 1.5198 1.9535
CMS per-capita out-of-pocket 1.0309 1.2261 1.4632
Social Security cost-of-living index 1.0249 1.1516 1.2867
CPI-U 1.0300 1.1501 1.2860

The largest changes are to rent and child care, which feed SPM resources: 3.0 percent in 2025 in place of 5.9 percent, and 28.6 percent by 2035 in place of 47.3 percent. Unemployment compensation grows 53.6 percent by 2035 in place of 95.4 percent.

Judgment calls

These are choices among the series the tree already holds, not corrections of errors. I flag them for review:

  • CPI-U is all-items inflation. Rent and child care prices have their own CPI components, which the tree does not carry and CBO does not project.
  • Wage-replacement benefits follow aggregate employment income per capita, which includes employment growth as well as wage growth.
  • The SOI unemployment compensation level is the 2021 total, a pandemic year. Only its growth is used for uprating.
  • The structured first and second mortgage balance and interest inputs stay on the default. Two are deprecated (Atomic inputs: one fact, one input — eliminate arbitration between redundant input variables #9275), and their file holds three deduction formulas outside the selective coverage job, so touching it left 30 formula lines uncovered in the project report.

Tests

  • New tests/core/test_uprating_series.py: one case per reassigned variable, each series defined across the projection window, unemployment compensation growth equals CBO's for 2025 to 2036 and does not flatten afterwards, the alimony label, and rent matching its override.
  • tests/core/test_per_capita_uprating.py now uses charitable donations as its default-series example, since rent moved to CPI-U.
  • Partner contract tests: 620 passed locally with no expected-output changes.
  • Run locally: tests/code_health, tests/microsimulation/data, tests/policy/contrib/ssa, tests/policy/baseline/parameters/test_uprating_extensions.py, tests/test_system_import.py. The full suite is left to CI.

I have not measured the effect on budgetary or poverty estimates.

🤖 Generated with Claude Code

@codecov

codecov Bot commented Sep 18, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (61fac14) to head (024e09a).
⚠️ Report is 185 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #9527    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files            3        59    +56     
  Lines           78       510   +432     
==========================================
+ Hits            78       510   +432     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@MaxGhenis
MaxGhenis force-pushed the uprating-series-mappings branch 4 times, most recently from 6403982 to c316a05 Compare September 18, 2026 18:35
MaxGhenis and others added 2 commits September 18, 2026 16:10
- Unemployment compensation: the SOI series was extended by CBO's taxable
  Social Security projection. Extend it by CBO's unemployment compensation
  outlays, which no variable used, and carry that series past 2036.
- Alimony income followed the SOI self-employment series; alimony income
  and expense now follow the SOI alimony series. Fix that series' label.
- Capital gains components follow SOI long-term capital gains.
- Pay-linked inputs (hourly wage, tips, overtime premium, W-2 wages of
  qualified businesses, desired retirement contributions, military and
  government pay) and wage-replacement benefits follow SOI employment
  income; self-employed pension contributions follow self-employment income.
- General health insurance premiums follow CMS per-capita out-of-pocket
  spending, as the other premium inputs do.
- Veterans benefits follow the Social Security cost-of-living index.
- Rent, child care, tuition, utilities, phone, insurance and transport
  expenses, and mortgage, student loan and investment debt inputs follow
  CPI-U, as assets, real estate taxes and child support already do.

Everything else keeps the default, CBO total AGI per capita.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Two of the four are deprecated (issue #9275), and the file also holds
three deduction formulas that the selective coverage job never runs, so
touching it left 30 formula lines uncovered in the project report. The
person-level home_mortgage_interest input keeps CPI-U.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis force-pushed the uprating-series-mappings branch from c316a05 to 024e09a Compare September 18, 2026 20:10
@MaxGhenis
MaxGhenis merged commit 44001a4 into main Sep 18, 2026
37 checks passed
@MaxGhenis
MaxGhenis deleted the uprating-series-mappings branch September 18, 2026 21:21
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