You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
SSI anchors treat adults who receive SSI only on behalf of a child as disabled SSI claimants #1313
Three US base-build stages treat any positive CPS ASEC SSI_VAL as the respondent's own SSI receipt:
ssi_take_up anchors the person as a claimant (us_ssi_take_up_reporter_source_ids).
ssi_disability_criteria anchors meets_ssi_disability_criteria for under-65 ASEC reporters (_reported_ssi_anchor).
eligibility_inputs aligns is_disabled for 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_VAL with 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 as cps_carried.reported_ssi_receipt; the take-up anchor, the disability-criteria anchor and the is_disabled alignment 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.
Activity