Repository navigation
Description
What happens
Three US base-build stages treat any positive CPS ASEC SSI_VAL as the respondent's own SSI receipt:
ssi_take_upanchors the person as a claimant (us_ssi_take_up_reporter_source_ids).ssi_disability_criteriaanchorsmeets_ssi_disability_criteriafor under-65 ASEC reporters (_reported_ssi_anchor).eligibility_inputsalignsis_disabledfor under-65 reporters (eligibility_inputs.py:402-406).
ASEC also records SSI that an adult receives on behalf of a child. RESNSSI1/RESNSSI2 codes 3 and 4 mean "on behalf of a disabled child" and "on behalf of a blind child" (2024 ASEC data dictionary, https://www2.census.gov/programs-surveys/cps/techdocs/cpsmar24.pdf; questionnaire item SSIR). That adult is the payee, and the amount on their record is the child's benefit.
On the pinned default (populace_us_2024.h5, sha 6496cc43…), 133 reporter rows report only codes 3 and/or 4. That is 446,000 weighted people in 2024 and 454,000 in 2026; the median age is 39, and 92% live with a child under 18. Measured with PolicyEngine-US fab18b7d6b in 2026:
| Payee-only reporters | Weighted |
|---|---|
| People | 454,000 |
With meets_ssi_disability_criteria |
270,000 |
| Paid modeled SSI themselves | 162,000 ($1.51B a year) |
| Reported (child's) SSI | $3.85B |
So the model pays some parents SSI as if they were disabled adults, while the child who actually receives SSI is unmarked. ASEC asks SSI only of people aged 15 and older, so the child under 15 has no SSI record of their own. This feeds the child gap in #453.
Evidence: #1312 (docs/evidence/us-reported-ssi-receipt/, the payee_only block of summary_aggregates.json).
Suggested fix (attributes only)
- Use one shared reporter predicate: positive
SSI_VALwith at least one own reason (1, 2 or 5) or no reason recorded. Carry ASEC reported SSI receipt as receives_ssi in the US build #1312 adds it ascps_carried.reported_ssi_receipt; the take-up anchor, the disability-criteria anchor and theis_disabledalignment should all use it. - Treat a payee-only adult as a non-reporter: drawn by the take-up prior, with criteria from the SIPP model.
- Optionally, attribute the on-behalf payment to a child in the family when exactly one candidate child exists. This is a modeling choice for the child SSI stage (Child SSI structurally absent: ages 0–14 have no disability signal (baseline child SSI 0.12M vs SSA 0.98M); seed qualifying disability per the #430 pattern #453/Add SIPP child qualifying-disability stage (ages 0–14) so child SSI is representable (#453) #509), not a direct mapping.
Acceptance
- No payee-only adult carries a source-anchored
meets_ssi_disability_criteria,is_disabledalignment or take-up anchor. - SSA age-band delivery (
us_ssi_take_up_delivery_gate) does not regress.
Activity