Skip to content

PUF clones of SSI reporters get imputed incomes far above the SSI income limit #1315

Open

Description

@MaxGhenis

What happens

A PUF tax-detail clone keeps its ASEC source person's SSI_VAL and SSI take-up anchor, but its tax incomes come from the PUF imputation, which does not condition on SSI receipt. Some clones of SSI reporters therefore carry incomes that no SSI recipient could have.

On the pinned default (populace_us_2024.h5, sha 6496cc43…), with PolicyEngine-US fab18b7d6b, January 2026: own-reason SSI reporters (#1313) who meet every categorical test and the resource test, but whose countable income is at or above the benefit:

Channel People (weighted) Countable income Unearned income Social Security Reported SSI With Social Security
ASEC 464,000 $1,750 $1,210 $1,129 $600 65%
PUF tax detail 316,000 $5,265 $4,694 $2,423 $680 79%

Amounts are weighted medians per month. The ASEC rows look like ordinary CPS income reporting: concurrent Social Security plus deemed family income. The PUF clones in the same situation carry about twice the Social Security and nearly four times the unearned income of those ASEC rows. This is the income-side counterpart of #1184 (assets drawn without conditioning on receipt).

Evidence: #1312 (docs/evidence/us-reported-ssi-receipt/income_fail_by_channel.py).

Suggested fix (attributes only)

Use reported SSI receipt (#1312's receives_ssi) as a predictor in the PUF QRF for the clone's unearned income and Social Security, or keep the ASEC source's values for those leaves on reporter clones. Either way, the attribute conditions on an observed survey fact, not on the SSI rules, so it stays policy-invariant.

Acceptance

  • Among PUF-channel own-reason reporters, the weighted share failing the SSI income test is near the ASEC-channel share.
  • PUF-based income targets do not regress.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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