Skip to content

US calibration does not pin federal income tax or AGI; base undershoots income tax ~18% — add SOI fiscal targets + a macro-realism gate #40

Description

@MaxGhenis

Summary

The US calibration profile does not pin federal income tax or AGI as hard targets, and the certified base undershoots actual income tax by ~18%. Every downstream score that nets against federal income tax inherits a low base.

Evidence

Running the certified populace_us_2024.h5 straight through PolicyEngine-US (standard path, no consumer-side value scaling), 2024:

quantity populace actual (approx) gap
federal income tax $1,991B ~$2.4T (Treasury FY2024 individual) ~18% low
AGI $14,901B ~$16T (extrapolated SOI) ~7% low
Social Security $1,523B ~$1.45T ~+5%

The build (packages/populace-build/src/populace/build/us/__init__.py) compiles a versioned target registry plus an inline SCF net-worth target; no federal income-tax or AGI aggregate appears in the target surface. This is consistent with #30 ("the US target profile needs full-population and program-admin controls… SOI is essential for filer/tax-form controls") and #29 (no gate that the target profile covers the needed source families).

Why the composition matters (not just a level fix)

The income-tax undershoot (~18%) is more than double the AGI undershoot (~7%). Income tax is convex in income, so a base that is light on top-of-distribution and capital income misses tax far more than it misses AGI. A single "AGI total" target would not close this — the fix needs AGI by source and/or bracket (or the income-tax aggregate directly) so the income composition is right and tax falls out correctly. This is the same lesson the CRFB taxation-of-benefits long-run build relied on: scale economic values to source-level admin aggregates (earnings to SSA taxable payroll cap-aware, etc.) with demographics carried in the weights, rather than letting reweighting alone hit dollar totals.

Note populace does not have the opposite (over-calibration) pathology that eCPS showed over the long run — it is modestly low, not inflated. So this is about adding the fiscal target, not undoing a distortion.

Proposed fix

  1. Add SOI fiscal hard targets to the US profile: AGI by source (wages, business/partnership/S-corp, capital gains, dividends, interest, pensions, Social Security) and, where used as a control, total federal income tax — sourced from the SOI/admin coverage contract (adjacent to the Use Arch US poverty/nonfiler coverage contract in Populace target gates #29/Add NIPA and program-admin nonfiler controls to the US target profile #30 admin-target work).
  2. Add a macro-realism release gate: assert income-tax/GDP, AGI/GDP, and the poverty rate land in believable bands on every build (generalizes the income-tax-%-of-GDP sanity check; complements the SPM diagnostic gate in Add a Populace US poverty/SPM diagnostic gate for resource distribution and negative-income tails #33). This would have caught the ~18% undershoot before publication.

Relationship to existing issues

Adjacent to #29 (target-profile source-coverage gate) and #30 (NIPA/admin nonfiler controls) — those center on poverty/nonfiler resources; this is specifically the income-tax / AGI fiscal controls and the macro-realism gate. Complements #33 (SPM diagnostic gate) on the validation side.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions