Skip to content

QBI base −31%/−40% vs targets and JCT; add per-component repeal-revenue benchmarks (amount residuals can't see yield gaps) #298

Description

@MaxGhenis

Summary

Two related findings from validating deduction/credit repeal scoring on the dense release populace-us-2024-f0af251-703bd81a565c-20260620 (bundle 4.18.7), against external scorekeeper estimates:

  1. The QBI base runs well below external benchmarks. The release's own diagnostics show the QBI-linked target residual at −31% (relative_error on the JCT qualified_business_income_deduction revenue-loss target), and repealing §199A in isolation yields $45.9B (TY2026) vs JCT's $76.4B FY2026 individuals line (JCX-45-25) — a −40% gap, the largest among the deduction toggles after tips/overtime (which have no input base at all).

  2. On-surface amount residuals cannot see repeal-revenue gaps — propose adding per-component repeal-revenue benchmarks to the validation surface. The itemized-deduction amount calibrates to +1.8% on this release, yet repealing each Schedule A line in isolation scores far below its own JCT line:

Component repealed alone PE TY2026 ($B) JCX-45-25 FY2026 ($B) Diff
SALT (cap → $0) 23.9 59.5 −60%
Mortgage interest 23.0 53.0 −57%
Charitable 60.1 81.5 −26%
Medical 9.1 13.8 −34%
Casualty/theft 0.0 0.2 no base in data

The claimed bases are plausible in level (SALT $288.5B under the $40k cap; mortgage $215.7B among 17.7M itemizers), so the shortfall is yield per dollar of base — the marginal-rate composition of who holds the deductions, plus the un-aged TY2022/23 target vintage (aging tracked in PolicyEngine/chronicle#71). A benchmark family of "repeal component X → revenue vs the JCT line" (computed per release, like the reform-validation checks in calibration-diagnostics) would catch this class directly, where amount residuals structurally cannot.

Suggested actions

  1. Investigate the −31% QBI target residual on the dense build (it was −81% on June builds — improved but far from closed).
  2. Add per-component repeal-revenue benchmarks (SALT / mortgage / charitable / medical / QBI vs their JCX-45-25 lines; full-itemized vs TPC's interaction-adjusted estimate, since JCT lines are non-additive) to the release validation surface.
  3. Casualty-loss inputs are absent entirely (immaterial at ~$0.2B/yr, but a completeness note alongside Sparse-57k certified release zeroes untargeted input bases (IRA/HSA/SE-pension/childcare); CDCC and ALD reforms silently score ~$0 on bundle 4.18.8 #278's input-coverage findings).

Related: #278 (sparse-release input coverage), #257 (degenerate-input gates), #272 (validation-config input checks).

Repro: policyengine[us]==4.18.7, managed_microsimulation, zero each component's cap/ceiling (or medical.floor→1.0, casualty.active→false) for 2026+, sum the income_tax delta.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions