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

    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