Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Tax-input coverage gaps surfaced by the reform-validation registry on us-6.2.1 (tracker)

Aperta
#1,117 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python

Direzione di ricerca

Start with the referenced diagnosis memos and the listed entry points: us_runtime/sipp_tips.py, us_runtime/scf_auto_loans.py, us/spec/sources.yaml, us_runtime/puf_aggregate_records.py, and us_runtime/validation_input_coverage.py; related issues include #505, #586, #252, #579, #253, and #958. Compare the identified inputs and registry results with the cited external benchmarks before choosing a gap to investigate. Done means the selected coverage discrepancy is addressed or tracked against its existing issue and validated against the relevant benchmark.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Found by the policyengine-scorecard reform-validation diagnosis (batch 2), PolicyEngine/policyengine-scorecard#146. Memos: diagnosis/batch2/A.md (A2-A4) and diagnosis/batch2/B.md (B1, B2, B5, B6).

This tracker collects input-coverage gaps that the reform-validation registry shows on the certified bundle us-6.2.1 (policyengine-us 2.2.1 + populace-us-2024-spm-20260915). In every case the engine models the provision; the release's inputs cannot reach the benchmark. Each section links the existing issue where one exists and records only what is new. microcosm paths are relative to packages/microcosm-build/src/microcosm/build/ @ 581b569.

Benchmarks used below (extracted)

JCX-35-25 (July 1, 2025), PDF p. 2, Chapter 2, $ millions, FY2025-2034:
"1. No tax on tips (sunset 12/31/28) [5] ... tyba 12/31/24 --- -10,121 -7,664 -8,078 -5,262 -90 -98 -107 -117 -127 -31,664"
"3. No tax on car loan interest ... iia 12/31/24 -1,932 -5,400 -8,070 -9,916 -5,313 --- --- --- --- --- -30,631"

JCX-35-25, PDF p. 4, Chapter 4, Subchapter C:
"4. Permanent and expanded reinstatement of partial deduction for charitable contributions of individuals who do not elect to itemize ... tyba 12/31/25 --- -1,543 -7,791 -8,149 ..."

JCX-48-24, Table 1 "Tax Expenditure Estimates By Budget Function, Fiscal Years 2024 - 2028", Individuals, $ billions, 2024-2028:
(PDF p. 33, Income Security) "Net exclusion of pension contributions and earnings: Plans covering partners and sole proprietors (sometimes referred to as "Keogh plans") ... 16.6 17.1 17.7 20.4 22.5"
(PDF p. 32, Health) "Deduction for health insurance premiums and long-term care insurance premiums by the self-employed ... 8.4 9.3 11.9 13.4 14.0"

IRS SOI Publication 1304, Table 1.4 "All Returns: Sources of Income, Adjustments, and Tax Items, by Size of Adjusted Gross Income, Tax Year 2023 (Filing Year 2024)" (23in14ar.xls), money in thousands of dollars, row "All returns, total":
"Payments to a Keogh plan" (cols 115-116): 946,019 returns; 30,130,848
"Self-employed health insurance deduction" (cols 117-118): 3,595,764 returns; 31,232,604
"Alternative minimum tax" (cols 143-144): 150,167 returns; 2,752,164

IRS SOI Publication 1304, Table 3.3 "All Returns: Tax Liability, Tax Credits, and Tax Payments, by Size of Adjusted Gross Income, Tax Year 2023 (Filing Year 2024)" (23in33ar.xls), row "All returns, total":
"Tax credits > Nonrefundable credits > Nonrefundable education credit" (cols 8-9): 7,211,349 returns; 7,554,668
"Tax credits > Total refundable credits > American opportunity credit" (cols 40-41): 5,821,688 returns; 5,090,364

PE values are calendar-2026 liability changes for OBBBA rows. The FY2027 JCT column is the like-for-like comparator for these provisions (FY2026 is a partial first year; A.md item A1).


- [ ] A2. Tip income: incidence inside tipped occupations is too low (see #505, #586)
  • Registry: PE -$1.93B vs JCT -$7.66B FY2027 (0.25) and -$10.12B FY2026 (0.19).
  • H5 (2024, weighted): tip_income $34.3B on 2.97M recipients. Of 22.97M wage earners with a Treasury-listed occupation code, 1.72M (7.5%) have tips > 0. Waitstaff (Census 2018 occupation 4110, mapped to TTOC 102 in us_runtime/sipp_tips.py:133-184): 1.68M wage earners, 0.124M (7.4%) with tips. Bartenders: 18%.
  • 2026 simulation: tip_income_deduction $16.9B on 1.54M tax units. At PE's revenue per deducted dollar (about 11.4%), JCT's FY2027 value needs about $67B of deductions, about 4x PE's.
  • Mechanism (us_runtime/sipp_tips.py): annual tips are the December monthly SIPP amount x 12 (:3-7, :334); training is capped at 10,000 rows (:114, :419-423), and the code notes that "seed 0 materially under-samples positive tip rows in the 10,000-row cap" (:117-119). The occupation code "is a predictor, not a domain mask" (:25). The plausibility band checks only the all-person share with tips (:127), not incidence inside listed occupations.
  • New relative to #505: #505 attributes the carrier deficit to the December-reference participation concept; the within-occupation incidence above is consistent with that explanation.
  • Proposed: two-stage incidence/amount model conditional on a listed occupation; stratified donor sampling of positives; a gate on within-occupation incidence; the JCX-45-25 deduction line from #586 as a target.
- [ ] A3. Qualified car-loan interest: the proxy uses one year of loan issuance as the stock (see #252, #586, #981)
  • Registry: PE -$1.08B vs JCT -$8.07B FY2027 (0.13) and -$5.40B FY2026 (0.20).
  • #252 says the input "is never imputed". That is stale: us_runtime/scf_auto_loans.py:454-472 now sets qualifying interest = auto_loan_interest x min(1, 6,000,000 / weighted households with positive interest). The docstring (:15-24) calls 6M the number of qualifying loans "issued annually".
  • The statute covers all post-2024 indebtedness, so the eligible stock grows each year:

26 U.S.C. 163(h)(4)(A) and (B)(i) (Cornell LII, current text): "In the case of taxable years beginning after December 31, 2024, and before January 1, 2029, for purposes of this subsection the term “personal interest” shall not include qualified passenger vehicle loan interest." ... "the term “qualified passenger vehicle loan interest” means any interest which is paid or accrued during the taxable year on indebtedness incurred by the taxpayer after December 31, 2024, for the purchase of, and that is secured by a first lien on, an applicable passenger vehicle for personal use."

  • By TY2026 the stock holds about two annual vintages (less payoffs); the proxy holds one, and the engine uprates the input by CPI-U only (policyengine_us/variables/.../qualified_passenger_vehicle_loan_interest.py:20). First-order: a vintage-corrected input moves PE to about -$2.2B (0.27x FY2027). Most of the gap stays open: at PE's revenue per deducted dollar (about 10%), JCT's FY2027 value needs about $80B of deductions, more than all H5 auto-loan interest ($75.6B in 2026).
  • Proposed: a vintage-stock share for the dataset's target year (sum over 2025+ vintages of 6M x survival), and an external household auto-debt benchmark for total auto_loan_interest. Update or close #252.
- [ ] A4. Non-itemizer cash giving: donor incidence is about half of an external benchmark (new)
  • Registry: PE -$3.52B vs JCT -$7.79B FY2027 (0.45).
  • charitable_cash_donations comes from the puf_tax_detail stage, "IRS PUF 2015 (uprated)" (us/spec/sources.yaml:110-111, output list :283); the PUF field mapped to cash contributions is E19800 (us_runtime/puf_aggregate_records.py:115). Hypothesis, not verified against the PUF codebook: the field is observed only for itemizers, which would under-represent non-itemizer donors.
  • H5: 23.9% of households and 19.1% of tax units have cash donations > 0 (25.5% of households give in any form); 4.8% at AGI $0-25K, 7.2% at AGI $25-50K.
  • External benchmark:

Lilly Family School of Philanthropy, news release (October 24, 2024), on its Philanthropy Panel Study (part of the PSID): "The share of Americans who give to charity declined from 50.9% in 2018 to 46.9% in 2020, following the onset of the pandemic."

  • 2026 simulation: 18.3M of 147.5M non-itemizing tax units claim the deduction ($21.6B). At PE's revenue per deducted dollar (about 16%), JCT's FY2027 value needs about 40M claimants at PE's average amount, about 2.2x PE. A capped $1,000/$2,000 deduction scales mainly with donor count.
  • Proposed: impute giving incidence and amount for all households from a source that observes non-itemizers (PSID PPS or CE cash contributions), or add a non-itemizer deduction target once an SOI series is sourced.
- [ ] B1. Self-employed (Keogh/SEP/SIMPLE) pension contributions at about 3% of SOI (see #579)
  • Registry: PE $0.21B vs JCT $16.6B (0.01). Note: JCT's line is a net exclusion of contributions and earnings, so a contribution-only repeal cannot reach it; the data gap is still the main factor.
  • H5: self_employed_pension_contributions_desired $1.373B on 5.38M persons (1,654 records); among holders p50 $276, p99 $1,380, max $1,771. Engine ALD: $1.013B on 5.33M tax units. SOI: $30.13B on 946,019 returns (above), so PE dollars are 3.4% of SOI on 5.6x the claimants. At AGI $200K+, PE $0.23B vs SOI $24.3B.
  • Mechanism (us/spec/sources.yaml:524-530, stage retirement_contributions): "Measured ASEC RETCB_VAL is allocated across self-employed pension, defined-contribution, and IRA pools ... QRF-imputes all five leaves onto the PUF half from the ASEC rows and PUF-imputed income." The PUF half does not carry tax-form Keogh amounts.
  • Proposed: source the PUF half from the PUF Keogh-deduction field (verify the field ID in the codebook), or add SOI Table 1.4 "Payments to a Keogh plan" returns and amount as targets.
- [ ] B2. Self-employed health insurance: right claimant count, half the amount (see #579)
  • Registry: PE $2.38B vs JCT $8.4B (0.28).
  • Engine ALD: $14.84B on 3.688M tax units (mean $4,024). SOI: $31.23B on 3,595,764 returns (mean $8,686). Count ratio 1.03, amount ratio 0.475.
  • By AGI (SOI Table 1.4 col 118): below $200K, PE $12.59B vs SOI $14.51B (0.87); at $200K and above, PE $2.25B vs SOI $16.73B (0.13).
  • Source (us/spec/sources.yaml:2847-2927, attribute_self_employed_health_premiums): the ASEC reported premium is copied onto Schedule-C persons outside ESI and outside a Medicare proxy.
  • Proposed: test the CPS premium under-report, the Medicare-proxy exclusion and tax-unit premium assignment (not verified); add SOI Table 1.4 SEHI returns and amount by AGI as targets.
- [ ] B5. Education credits at 10% of SOI: LLC structurally zero (see #253)
  • Registry: PE $0.78B vs SOI $7.55B nonrefundable education credit (0.10).
  • LLC: is_eligible_for_lifetime_learning_credit.py:29-47 requires attends_eligible_educational_institution_for_lifetime_learning_credit and has_lifetime_learning_credit_1098_t_or_exception (bool inputs, so False when absent). Neither is in the H5, so lifetime_learning_credit = 0.
  • AOTC: qualified_tuition_expenses $4.40B on 1.18M persons (426 records). Nonrefundable AOTC is at most 0.6 x $4.40B = $2.64B even without a liability limit. PE claimant units are about 11% of SOI's 7.2M nonrefundable-credit returns.
  • The coverage gate registers only qualified_tuition_expenses for this row (us_runtime/validation_input_coverage.py:122-126), so the LLC zero passes the gate.
  • Proposed: LLC factual inputs for a non-AOTC student population (graduate, part-time, non-degree); widen tuition to SOI scale; register both LLC flags in US_VALIDATION_PROVISION_INPUT_LEAVES (:106); add SOI Table 3.3 education-credit targets. #253's numbers are from f0af251; update it.
- [ ] B6. AMT from 70 records: top-tail compression (see #958; #254 is stale)
  • Registry: PE $4.39B vs SOI $2.75B (1.60). PE's AMT comes from 70 records; the top 10 hold 87% of AMT dollars.
  • By AGI (PE 2024 filers vs SOI TY2023 Table 1.4 col 1 and cols 143-144): $1M-1.5M PE 94.1K payers / $1.30B vs SOI 16,889 / $0.26B; $1.5M-2M PE 75.0K / $1.35B vs SOI 18,284 / $0.32B; $5M-10M and $10M+ PE 0 vs SOI 6,264 / $0.18B and 4,164 / $0.26B.
  • This is the same tail compression as #958 (too many returns at $1-2M, almost none above $5M), seen through AMT. #254 says AMT is 59% under; on us-6.2.1 it is 1.6x over, and the history moved $1.13B -> $4.39B across releases at a fixed engine for part of the path.
  • Proposed: track under #958; comment on #254 that its sign changed.
Lingua principale
Python
Stelle
0
Fork
5
Merge medio
1g 19h
PR unite (30g)
115

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di PolicyEngine/microcosm

Tutte le issue di PolicyEngine/microcosm

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.