PolicyEngine / PolicyEngine/microcosm
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
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 4
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 94
Description
Summary
Child SSI is structurally unrepresentable on the certified default: ages 0–14 carry zero disability signal (the CPS ASEC disability battery starts at 15), so is_ssi_disabled can never fire for them. Measured on Build M (98bf731, bundle 4.21.1, pe-us 1.764.6, TY2026):
| age group | Build M baseline SSI | SSA (Dec 2024) |
|---|---|---|
| under 18 | 0.12M | 0.98M |
| 18–64 | 3.90M | 3.99M |
| 65+ | 2.37M | 2.42M |
| total | 6.39M | 7.40M |
The #430 take-up banding lands both adult groups within ~2% of SSA — the entire remaining baseline gap (~0.86M) is the missing children. The 0.12M we do produce are 15–17-year-olds (is_disabled = 7.1% weighted at 15–17, 0.00% at 0–14, 11.4% at 18–64, 25.3% at 65+).
Downstream effect
Any SSI reform scores ~zero child impact. For the resource-limit class (#374 thread): CBPP's published Table 1 has 23k new child beneficiaries under $10k/$20k and 49k under elimination; our CBPP age bridge reports 0 in every vintage. Child SSI eligibility runs through parental deeming (the parents' countable resources are what the asset limit tests), so with the SCF asset columns now present, disabled children are the only missing ingredient — the reform mechanics would work immediately.
Suggested fix
Seed child SSI-qualifying disability for ages 0–14, banded to SSA's child caseload by age (~0.98M under-18 recipients), following the #430 take-up-banding pattern — i.e., assign qualifying-disability flags so that simulated child SSI (through deeming + the seeded take-up contract) hits the admin totals. On ACS-spine lineages (#403), the ACS PUMS disability items (asked from age 5) can inform the assignment directly rather than a pure random seed.
Relates #430 (pattern), #374 (CBPP child rows), #361 (input surface), #403 (multispine). Found while benchmarking the certified default against CBPP/SSA for the SSI resource-limit analysis.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read the #430 take-up-banding pattern and trace the child SSI eligibility and parental-deeming path first. Then inspect the ACS PUMS disability items on #403 lineages and the available SCF asset columns. Done means ages 0–14 receive qualifying disability signals, simulated child SSI aligns with the SSA child caseload, and the CBPP child rows no longer report zero.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100