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

Open
#453 2 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.