Skip to content

Cross-check: Populace US 2024 net income & tax ~37–43% below Enhanced CPS (benefits match) #212

Description

@MaxGhenis

Summary

Cross-checking the current Populace US 2024 build against the legacy Enhanced CPS with the same policyengine_us engine (v1.746.0), same year (2025), same variables, the two layers disagree sharply on income and tax while benefits match:

Aggregate (2025, weighted national) Populace US 2024 (managed default) Enhanced CPS 2024 (legacy) Gap
household_net_income $14.59T $23.09T −37%
household_tax $3.45T $6.03T −43%
household_benefits $1.99T $1.98T +0.4% (match)
weighted population 343.2M ~same match

Because tax is lower in Populace yet net income is also lower, the driver is almost certainly much lower market income in Populace (lower market income → both lower tax and lower net income, benefits ~unchanged). For reference, US aggregate household net income is plausibly ~$18–23T (BEA personal income ≈ $23T pre-tax), so $14.6T looks low.

Why it matters

pe.us.managed_microsimulation() defaults to populace_us_2024, so the production web app and any default-path analysis report the $14.6T figure. This surfaced during prep for the IMA World Congress 2026 PolicyEngine tutorial (the web app and the Colab notebook quote these aggregates).

Confidence (not a sampling/loading/year artifact)

  • Full Populace, direct: Microsimulation(dataset=populace_us_2024.h5) over 224,026 households / 572,780 people → net $14.586T.
  • Uniform 20k-household subsample → net $14.589T (reproduces full to ~0.02%).
  • Managed default uses the same registered populace_us_2024 file; managed_microsimulation reduces to the identical Microsimulation(dataset=...) call.
  • Gap present for both 2024 and 2025 (not an uprating artifact).
  • eCPS via pe.us.ensure_datasets(["enhanced_cps_2024"], years=[2025]) (101,384 people) → net $23.09T.

Likely related

This looks connected to the income/weight regressions already tracked in #67 (income tax regressed ~15% vs prior build) and #64 (child weights inflated ~46%). Sharing the external (eCPS) benchmark in case it helps triangulate magnitude/root cause.

Suggested diagnostics

  1. Compare aggregate market-income components (employment_income, self_employment_income, capital gains, pensions, …) between Populace and eCPS, and against SOI/BEA, to locate the ~$8T net gap.
  2. Confirm whether national income/AGI calibration targets are active in the 2024 build (the benefits-match-but-income-low pattern suggests income targets may be missing or under-weighted).
  3. Cross-check the web app production aggregates and any published PolicyEngine US totals.

Deferring to the data team on root cause — flagging the benchmark.

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