PolicyEngine / PolicyEngine/policyengine-skills
/analyze-policy output: Federal standard deduction +$1,000, all statuses (2026-2035) — 10-year run
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 2
- Avg merge
- 2h 46m
- Merged PRs (30d)
- 6
Description
Filed by the /analyze-policy pipeline as a live end-to-end demo (Pavel-initiated). Updated 2026-07-01 with real 10-year run (policy 97853) after the initial single-year submission surfaced the yr1×N extrapolation problem and a per-year-indexed baseline gotcha (see notes below).
Reform
Increase the federal standard deduction by $1,000 across all five filing statuses, tax years 2026-2035. Values inflate from the 2026 baseline in $1K steps each year (matching baseline inflation indexing).
| Filing status | 2026 baseline | 2026 reform | 2035 baseline | 2035 reform |
|---|---|---|---|---|
| JOINT | $32,200 | $33,200 | $38,750 | $39,750 |
| SURVIVING_SPOUSE | $32,200 | $33,200 | $38,750 | $39,750 |
| HEAD_OF_HOUSEHOLD | $24,150 | $25,150 | $29,050 | $30,050 |
| SINGLE | $16,100 | $17,100 | $19,350 | $20,350 |
| SEPARATE | $16,100 | $17,100 | $19,350 | $20,350 |
Verdict: PASS-WITH-NOTES · Policy ID: 97853 (single-row policy 97852 was superseded — see below) · Baseline: 2 (US current law)
Headline result — 10 years, real per-year runs
| Metric | Value |
|---|---|
| Federal 10yr cost | −$196.10B |
| State tax revenue 10yr | −$2.36B |
| Combined 10yr | −$198.46B |
| Yr-1 (2026) federal | −$17.86B |
| Yr-10 (2035) federal | −$21.35B (+19.6% growth over window) |
| Distributional signature | Progressive — Gini −0.026% consistently, top-1% share −0.011 to −0.012pp/yr |
| Poverty impact (avg across years) | Modest reduction (−0.02% to −0.24% relative all-poverty each year) |
| Households affected | ~42-43% |
Per-year cost table
| Year | Federal ($B) | State ($B) | Gini Δ % | Top-1% Δ pp | Poverty Δ % |
|---|---|---|---|---|---|
| 2026 | −17.86 | −0.35 | −0.026 | −0.012 | −0.025 |
| 2027 | −17.86 | −0.31 | −0.027 | −0.011 | −0.102 |
| 2028 | −18.27 | −0.31 | −0.028 | −0.011 | −0.131 |
| 2029 | −18.63 | −0.23 | −0.029 | −0.011 | −0.241 |
| 2030 | −19.80 | −0.15 | −0.026 | −0.012 | −0.201 |
| 2031 | −20.08 | −0.26 | −0.026 | −0.012 | −0.001 |
| 2032 | −20.47 | −0.20 | −0.026 | −0.011 | −0.135 |
| 2033 | −20.68 | −0.20 | −0.026 | −0.011 | −0.170 |
| 2034 | −21.10 | −0.18 | −0.026 | −0.011 | −0.118 |
| 2035 | −21.35 | −0.17 | −0.026 | −0.011 | −0.079 |
| 10yr | −196.10 | −2.36 |
Federal cost rises 19.6% across the window because the fixed +$1K bump captures a growing marginal population of filers as nominal incomes rise. The initial single-year run's naive yr1×10 = $178.6B extrapolation understated the true cost by $17.5B (~10%).
Distributional signature
- Progressive. Gini decreases consistently, top-1% share decreases every year. Top deciles itemize (SALT + mortgage + charity) so few claim the std ded; std ded benefits concentrate in middle-income deciles.
- Non-refundable. Decile 1 gets essentially $0 — no tax liability to offset. Middle-income deciles (5-8) benefit most.
- Wide coverage. ~42-43% of households benefit each year — much broader than SALT/CDCC reforms.
Reform dict (for reproducibility)
Policy 97853 submits per-year values because std ded has per-year inflation-indexed baseline rows (see the pipeline finding below). Structure:
{
"gov.irs.deductions.standard.amount.JOINT": {
"2026-01-01.2026-12-31": 33200,
"2027-01-01.2027-12-31": 34050,
"2028-01-01.2028-12-31": 34700,
"...": "...",
"2035-01-01.2035-12-31": 39750
},
"gov.irs.deductions.standard.amount.SINGLE": { /* 2026-2035 per-year */ },
"gov.irs.deductions.standard.amount.HEAD_OF_HOUSEHOLD": { /* 2026-2035 per-year */ },
"gov.irs.deductions.standard.amount.SEPARATE": { /* 2026-2035 per-year */ },
"gov.irs.deductions.standard.amount.SURVIVING_SPOUSE": { /* 2026-2035 per-year */ }
}
Full reform-dict archived in analyses/2026-07-01-us-standard-deduction-plus-1k.md.
Comparison
No external source scored this exact reform shape. Two adjacent-shape mirrors are backlog items (would corroborate the +$1K estimate against real published numbers):
- OBBBA 2025 std ded bump ($750 single / $1,500 joint) vs TCJA-extension baseline — JCT-scored
- TCJA std ded near-doubling vs pre-TCJA baseline — JCT ~$700B/decade
Neither was executed in this analysis. The 10-year yr-by-yr headline stands on its own microsim; external corroboration deferred.
Methodology
- API: 10 parallel calls to
api.policyengine.org/us/economy/97853/over/2?time_period={2026..2035} - Wall clock: ~15 min for all 10 to complete under API contention
- Dataset:
enhanced_cps(advertised) → backed bypopulace-us-2024-cd-concept-budget-dbbdcec-512e-b2500-r2-20260627T022640Z - Model: PE-US
1.745.0 - Static analysis; no behavioral response
- Full archive:
analyses/2026-07-01-us-standard-deduction-plus-1k.md
Pipeline findings surfaced by this run
1. Naive yr1×N extrapolation was misleading
Single-year × 10 = $178.6B UNDERSTATED the true 10-year cost of $196.1B by $17.5B / ~10%. Under the updated pipeline (PR #27, merged as f4dad88), single-year archives no longer report a naive extrapolation. Multi-year runs use real per-year API calls.
2. Per-year-indexed baseline gotcha (new)
The original single-row policy 97852 (2026-01-01.2035-12-31: 33200) only overrode the 2026 baseline row. Std ded has per-year inflation-indexed baseline rows (2027=$33,050, 2028=$33,700, ..., 2035=$38,750). The reform-dict semantics: a value at date X overrides the baseline row at date X but does NOT sweep forward through subsequent baseline rows. Result: 2027-2035 fell back to inflation-indexed baseline — reform=baseline — impact=0.
Pipeline fix needed: microsim-runner should validate reform-dict row coverage against baseline row count before submission. When a single reform-dict row covers a date range where the baseline has multiple rows, warn (or auto-expand to per-year values). This is what turned the first 10-year run into 9 zero-impact years, and would be a silent failure without post-hoc inspection.
The corrected policy 97853 submits per-year values (baseline+$1K for each year). This is what should be the default for any reform touching an inflation-indexed parameter family.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the microsim-runner pipeline and trace how reform dictionaries are submitted and how baseline rows are represented. Add validation for reform-dict coverage against the baseline row count, with a warning or expansion when one range spans multiple baseline rows. Done means inflation-indexed reforms cannot silently produce zero-impact years; verify against the standard-deduction example and the archived analysis.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100