Repository navigation
Conversation
The CPI-W file matched BLS CWUR0000SA0 (not seasonally adjusted, the series SSA uses for cost-of-living adjustments) through December 2023. From January 2024 it held seasonally adjusted values: #6672 added January 2024-August 2025 and #9100 added September 2025-June 2026, citing CWSR0000SA0. Replace those 29 months with CWUR0000SA0 and re-anchor the CBO-derived projections on the not seasonally adjusted June 2026 CPI-W/CPI-U ratio (327.075 / 333.952). Add a test that the CPI-W July-September averages reproduce gov.ssa.uprating's actual values under 42 U.S.C. 415(i), which the seasonally adjusted months failed (2024Q3: 307.931 vs 308.729). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
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. |
PR Review: Use the not seasonally adjusted CPI-W for 2024 onwardPR #10133 (author: MaxGhenis, head SummaryThe PR fixes a splice in
Every value checks out:
The new test fails on the merge-base, as the PR body says. It passes at the head, on the merge with current I found no critical or should-address issues. The suggestions are optional housekeeping. Critical (must fix)None. Should addressNone. Suggestions1. Consider adding the published July and August 2026 actuals, because the splice into the projections now steps down.
2. Open an issue to track the matching CPI-U splice.
3. Optional, pre-existing housekeeping in the same file.
Verified correct
Axiom line assessmentValid
CI statusAll 26 checks pass (
Branch status
Verdict: APPROVE |
DTrim99
left a comment
There was a problem hiding this comment.
Approving: all 1,361 monthly values match the BLS NSA CPI-W flat file, the Q3 averages reproduce SSA's COLA bases for 2016-2026 under 42 U.S.C. 415(i), and nothing uprates by cpi_w, so the parameter-tree diff is only the series itself. Three optional suggestions in the comment above (re-anchor on the published Jul/Aug 2026 values, an issue for the matching CPI-U SA/NSA splice, the orphaned CBO reference).
Independent review in progress (subfleet
20261011-174158-cpiw-review-r1).What
gov.bls.cpi.cpi_wwas two series spliced together. From 1913-01 to 2023-12 (1,332 months) every value equals BLS CWUR0000SA0, the not seasonally adjusted (NSA) CPI-W. SSA publishes the same series on its CPI-W page and computes the cost-of-living adjustment from it. From 2024-01 to 2026-06, all 29 published months (BLS never published October 2025) held seasonally adjusted (SA) values:BLS recomputes seasonal factors every year and can revise the past five years of SA indexes when it does (BLS seasonal adjustment). That is why SA values copied at different times disagree. The NSA series is the one SSA's table and
gov.ssa.upratinguse.This PR:
CBO CPI-U quarter × 316.530 / 323.364, the SA-vintage August 2025 CPI-W/CPI-U ratio. They now use the NSA June 2026 ratio,327.075 / 333.952, where June 2026 is the last actual (CUUR0000SA0 for CPI-U). Each point moves +0.0553%.test_cpi_w_third_quarter_averages_reproduce_ssa_uprating. For every year whose July–September the CPI-W file lists, the quarterly mean has to reproducegov.ssa.upratingto SSA's three decimals under 42 U.S.C. 415(i)(1)(A)(i), (B), (D) and (G). When the increase, rounded to a tenth of a percent, is not above zero, the level must carry forward. The test reads the YAML's listed values, so backdating to 2015 doesn't create a phantom 2015 entry.Readers and effect
git grep cpi_wfinds two readers. Neither changes.extend_wa_millionaires_standard_deduction, ESSB 6346 §316). Its factor is a ratio of two CPI-W projection points (2029-08 over 2028-08, and so on), which share the anchor, so the anchor change cancels up to the three-decimal rounding of the projection points (for example, the 2029 factor moves from 1.02281601245 to 1.02281509977). After rounding to dollars, the deduction amounts are unchanged through 2100, and the parameter is unchanged in the tree diff.extend_parameter_values, 2035+). It grows at the 2033→2034 rate, so the extended values move by the same +0.055%, plus up to 0.005 percentage points by 2100 (+0.0602%) from three-decimal rounding of the projection points.No YAML parameter or variable uprates with
gov.bls.cpi.cpi_w. No formula readsgov.bls.cpiby name. Microcosm, policyengine.py, policyengine-api and policyengine-api-v2 don't reference it on main.Full parameter tree diff (every leaf after system init, uprating and extensions included): 1 of 105,634 parameters changes,
gov.bls.cpi.cpi_w. The variable uprating map (384 entries) is identical. Since no formula reads the one parameter that changed, household and microsimulation outputs are unchanged. I didn't run a microsimulation because nothing in the model consumes the changed values.Invariants
gov.ssa.uprating's actual values under 415(i). This is a differential check between two published series and is enforced by the new test.No Hypothesis test, because this PR changes data, not logic. The SSA differential test is the property that would have caught the bug.
Follow-ups (not in this PR)
cpi_u.yamlhas the same splice. It is NSA through 2023-12 and SA from 2024-01 to 2026-06 (29 months, same two PRs), and it has many more readers. Draft Index IRS parameters to the 12-months-ending-August chained CPI-U, with CBO's tax-year projections #9621, which is on hold, touches the same file and addscpi_u_nsa.yaml. Being split into its own task.gov.ssa.upratingprojections (2027+) still use the ratio306.199 / 310.989and older CBO values. BLS has published July and August 2026 NSA CPI-W (327.104, 328.481), and the 2027 COLA follows the September release. Once Q3 2026 is complete, the new test will require the 2027 entry to match.axiom: n/a: BLS CPI-W index data, not a rule. rulespec-us main has no CPI-W series; its COLA modules (e.g.
us/statutes/42/1382f/a) take the increase percentage as an input.Evidence:
~/reviews/cpi-w-nsa/on the host has the BLS API pulls, the BLS flat-file CPI-W rows, the SSA table rows, the main-vs-BLS table, the rewrite script and the parameter-tree diff.🤖 Generated with Claude Code
Hub microsimulation impact (current head)
A real microsimulation on the default dataset, main at the merge base
065d0e9560against this PR's head9bc56e4707, for 2025 and 2026. The runs went one at a time under the shared heavy-job lock. Sums are weighted.social_securityssitaxable_social_securitysnapstate_income_taxincome_taxhousehold_net_incomehousehold_benefitsNo record changes in either year, which confirms the parameter-tree comparison above: no formula reads
gov.bls.cpi.cpi_w.Comparison files are in
fixes/10133-impact/on the hub host.