Repository navigation
Grade the 2025 SPM poverty prediction and publish the diagnosis code - #10
Merged
Merged
Conversation
Add a dated grade record beside the registered September 11 prediction (the registered file is unchanged), and the analysis that separates each miss into a threshold effect and a resource effect: three population runs with thresholds held at 2024 plus CPI-U, the senior-deduction counterfactual, resource growth near the line, and a raw 2025 CPS ASEC aging check. A rerun on policyengine-us 2.2.1 reproduces the registered changes, so no amendment is needed. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This was referenced Sep 18, 2026
…ions and self-employment Adds analysis/prediction-grade-2025/uprating: a per-source split of near-line resource growth, six 2025 reruns that replace one growth rate at a time, and CPS ASEC 2025-vs-2026 comparisons of per-recipient and per-decile growth. Social Security (+8.3% per record) and pensions (+19.5%) grow at aggregate rates, and self-employment falls with CBO business income (-5.8%). Replacing them moves the modeled changes from +0.22/+0.86/-0.52 to +0.25/+0.57/+0.15 (Census +0.07/-0.06/+0.24). Wage growth by wage decile changes nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ix survey claims After an independent review: - add wages_by_family_decile, all_three_cpi_avg, all_three_ss_survey and all_four - split_variants.py splits each variant's change into threshold and resource effects on the variant run itself; the child threshold gap in the baseline comes mostly from the self-employment uprating - survey: age-adjusted Social Security per recipient (3.45%), population-control caveat, self-employment definitions, family-income wage deciles, and the noncitizen composition shift - README: label the Social Security series as its parameter file does, CPI-U annual average, significance caveat All four changes give +0.10/+0.42/+0.06 against Census +0.07/-0.06/+0.24. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Social Security at the survey's 4.04% for recipients 66 and over (all_three_ss_66plus); senior resources then match the survey and the remaining senior gap is on the threshold side - household-bootstrap standard errors for wage growth by decile of family resources: the bottom decile's excess (1.8 points, SE 2.1) is within sampling error, so the family-income schedule is reported as a sensitivity - READMEs: lead with the three source changes (child miss down about a third, senior miss 0.76 to 0.09-0.26), state that the threshold/resource split is order-dependent, and keep the nonresponse caveat Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…orted clause) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
data/predictions/2025-spm-poverty-rates-2026-09-11.grade-2026-09-17.json: a dated grade of the September 11 prediction against P60-290 (Table 4 printed values and margins, Table 5 rates to two decimals). The registered file is unchanged; its checksum still verifies.analysis/prediction-grade-2025/: the code and results that take the misses apart, with a README.Results
Census marks none of the three changes as statistically different from zero at the 90 percent level.
Model change = threshold effect + resource effect, against the same split on the 2026 CPS ASEC file (from #8):
The rerun on policyengine-us 2.2.1 reproduces the registered changes to within 0.000001 points, so the amendment rule in the registered file is not triggered.
Checks
python scripts/check_paper.pypasses;python -m unittest discover -s testspasses (42 tests).decompose.py,near_line_growth.py,senior_deduction.pyandraw_aging.pywere rerun from the saved arrays and the 2025 ASEC file; outputs match the committed results. The six population runs were not repeated for this PR; their per-run metadata is committed.Uprating by source (added 2026-09-28)
analysis/prediction-grade-2025/uprating/traces the misses to per-record growth rates. Social Security grows 8.3% per record, pensions 19.5% and self-employment −5.8% (CBO aggregates), against about 4.0%, 3.7% and +8.7% per recipient in the CPS ASEC. Rerunning 2025 with other rates, as the change from 2024 in points (Census: +0.07 / −0.06 / +0.24):Twelve population runs on policyengine 6.0.0; scripts, per-run metadata, per-variant threshold/resource splits and survey comparisons are committed. Three independent Opus review rounds checked the mechanism claims against the installed code and every number against the result files; the round-3 verdict was a pass. The drift check and 42 tests pass.
Merge order
The blog post that links these files (PolicyEngine/policyengine-app-v2#1214) points at
masterpaths, so this PR should merge before that post publishes. The README here linksanalysis/asec-2026-anchored-thresholds, which arrives with #8.🤖 Generated with Claude Code