Fix and add retirement contribution calibration targets#554
Open
PavelMakarchuk wants to merge 4 commits intomainfrom
Open
Fix and add retirement contribution calibration targets#554PavelMakarchuk wants to merge 4 commits intomainfrom
PavelMakarchuk wants to merge 4 commits intomainfrom
Conversation
- Correct traditional_ira_contributions: $25B → $13.2B (SOI 1304 Table 1.4 actual deduction, not total contributions) - Add traditional_401k_contributions: $567.9B (BEA/FRED employee DC contributions) - Add self_employed_pension_contribution_ald: $29.5B (SOI 1304 Table 1.4 Keogh plan deduction) - Remove roth_ira_contributions: structurally $0 due to CPS allocation bug (#553) - Update both loss.py and etl_national_targets.py Closes #553 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace sequential waterfall with proportional allocation based on administrative data. The old waterfall gave 401(k) first priority, consuming all of RETCB_VAL and leaving IRA contributions at $0 for every record. The Roth IRA allocation was also mathematically guaranteed to produce $0. The new approach splits RETCB_VAL proportionally: - DC vs IRA: 90.8% / 9.2% (BEA/FRED vs IRS SOI) - Within DC: 85% traditional / 15% Roth (Vanguard/PSCA) - Within IRA: 39.2% traditional / 60.8% Roth (IRS SOI Tables 5 & 6) All fractions are stored in imputation_parameters.yaml with sources. Contribution limits are still enforced. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Split 401(k) target: $567.9B total employee DC deferrals (BEA/FRED) into traditional $482.7B (85%) and Roth $85.2B (15%) using Vanguard How America Saves 2024 dollar share estimate - Add roth_ira_contributions target: $35.0B from IRS SOI Accumulation Tables 5 & 6 (TY 2022) — direct administrative source - Update etl_national_targets.py in parallel Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fixes CI failure caused by DE TANF deficit_rate parameter missing history before 2024-10-01. The fix was merged in policyengine-us PR #7170 but uv.lock was pinned at 1.570.7. Co-Authored-By: Claude Opus 4.6 <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.
Summary
traditional_ira_contributionstarget from $25B to $13.2B — the prior value included non-deductible contributions, but since policyengine-us uses the raw value directly as the ALD (no deductibility logic), the target must match the actual deduction claimed on returnstraditional_401k_contributionstarget: $567.9B — employee elective deferrals from BEA/FRED National Income Accountsself_employed_pension_contribution_aldtarget: $29.5B — Keogh plan deductions from SOI 1304roth_ira_contributionstarget ($39B) — structurally $0 due to CPS allocation bug where traditional IRA always exhausts the IRA limit firstUpdates both
loss.py(HARD_CODED_TOTALS) andetl_national_targets.py.Benchmark Sources
traditional_ira_contributionstraditional_401k_contributionsself_employed_pension_contribution_aldModel gap before this change
traditional_ira_contributionstraditional_401k_contributionsself_employed_pension_contribution_aldroth_ira_contributionsTest plan
Closes #553
🤖 Generated with Claude Code