PolicyEngine / PolicyEngine/microcosm
Calibrate OBBBA deduction aggregates to JCX-45-25 static tax-expenditure lines
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 4
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 94
Description
JCX-45-25 (December 2025 tax-expenditure report, post-OBBBA) publishes static, each-alone FY lines for four of the five OBBBA individual provisions — Table 1, individuals column (mapping verified on the employer-FICA-tips credit row and by row-sum checks):
| Provision | FY2026 ($B) | FY2027 ($B) | Downstream repeal score on Build P ($B) | Diff vs FY2026 |
|---|---|---|---|---|
| Deduction for overtime pay | 21.9 | 22.4 | 22.2 | +1.5% |
| Enhanced deduction for seniors | 22.4 | 22.7 | 18.5 | −17% |
| Deduction for tips | 6.9 | 7.2 | 1.8 | −73% |
| Deduction for interest on personal vehicle loans | 6.2 | 8.6 | 1.1 | −83% |
| Non-itemizer charitable | — (folded into charitable TE) | — | 3.9 | — |
Proposal: add these as calibration targets (or validation-surface benchmarks) in the jct.tax_expenditures source family — same schema as #519's five entries. Notes from the decomposition:
- Tips is a yield gap, not a base gap: #465 wired the W-2 tips dollar target and the income base sits near the BLS anchor (~$34B), yet the deduction's repeal yields $1.8B vs the $6.9B static line. An amount target on tip income can't close this — the deduction-level line (or a repeal-revenue benchmark per #298) is the right ref, and the residual likely lives in eligibility mechanics and where tips sit in the rate distribution.
- Auto-loan interest base is thin outright (#252's imputation gap persists into Build P; the deduction resolves but small).
- Overtime already lands within 2% of the static line at current claiming — the ~64%-of-Yale-anchor premium-base gap (#451) binds for post-behavior or distributional uses, not the static aggregate, so a static-line target here is a cheap regression guard rather than a fix.
- Senior deduction runs −17% vs static despite age/SSN bases tracking Census — worth a look at the phase-out interaction once a target binds.
These four lines would complete static-frame coverage of the OBBBA individual provisions alongside the #519 ALD/CDCC refs. Source: https://www.jct.gov/getattachment/8c830c45-1680-4f7e-a649-2a0106f6b6e3/x-45-25.pdf
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 by locating the jct.tax_expenditures source family and the five entries added for #519. Compare its schema and validation surfaces with the four JCX-45-25 individual-provision lines, then add the calibration targets; done means the entries are represented consistently and the static aggregates can be checked against the cited FY2026 and FY2027 values.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100