Problem
The SSI disability/take-up model belongs in data generation, not only in policyengine-us. Current enhanced CPS inputs make policyengine-us treat broad survey disability as SSI medical eligibility, and takes_up_ssi_if_eligible defaults to true. That makes SSI asset-limit reforms far too large.
Severity
Local 2026 enhanced CPS no-SSI-asset-limit run using policyengine-us 1.700.0 / us-data 1.115.5:
- SSI recipients: 5.797M -> 7.196M, change +1.399M (+24%).
- CBPP no-limit study shared by Kathleen Romig: +462k participants (+6%).
- PolicyEngine adults 18-64: +1.006M vs CBPP +298k.
- PolicyEngine seniors 65+: +393k vs CBPP +115k.
- PolicyEngine children: +0 vs CBPP +49k.
- SSI cash spending: +$12.84B/year.
- Medicaid enrollment: +584k; Medicaid cost: +$20.1B/year.
The current model is about 3x CBPP on new SSI participants, before even considering Medicaid.
Censoring issue
Observed SSI receipt is censored by:
- income eligibility,
- resource eligibility,
- application/take-up,
- SSA medical allowance/denial,
- and possibly state/data reporting.
For people who currently fail income/resources, non-receipt does not tell us whether they would pass SSA disability criteria or apply if the asset rule changed. We need a latent successful-SSI-claim probability, not a deterministic broad-disability flag.
Proposed data-model approach
- Keep observed current SSI recipients as SSI-success cases.
- Use CPS variables and other imputed indicators to estimate/assign a probability of successful SSI claim among non-recipients: age, broad disability, work limitation, OASDI/SSDI/disability income indicators, Medicare disability where available, SGA/earnings, household composition, state, current income/resources.
- Calibrate current baseline SSI recipients/spending to SSA admin totals.
- Calibrate asset-limit counterfactuals to external evidence, starting with CBPP's +462k no-limit estimate.
- Export a data variable or take-up/latent eligibility flag that
policyengine-us can consume, so relaxing SSI income/assets does not automatically convert every broad-disabled non-recipient into an SSI recipient.
Related
Acceptance criteria
- Enhanced CPS contains an input or derived data-backed mechanism for latent SSI successful-claim probability/take-up.
- Existing SSI recipients remain recipients in baseline.
- A no-asset-limit SSI reform produces new participation in the neighborhood of CBPP, with uncertainty documented.
- Children are handled explicitly; current PE result has +0 new child SSI recipients versus CBPP +49k.
Problem
The SSI disability/take-up model belongs in data generation, not only in
policyengine-us. Current enhanced CPS inputs makepolicyengine-ustreat broad survey disability as SSI medical eligibility, andtakes_up_ssi_if_eligibledefaults to true. That makes SSI asset-limit reforms far too large.Severity
Local 2026 enhanced CPS no-SSI-asset-limit run using policyengine-us 1.700.0 / us-data 1.115.5:
The current model is about 3x CBPP on new SSI participants, before even considering Medicaid.
Censoring issue
Observed SSI receipt is censored by:
For people who currently fail income/resources, non-receipt does not tell us whether they would pass SSA disability criteria or apply if the asset rule changed. We need a latent successful-SSI-claim probability, not a deterministic broad-disability flag.
Proposed data-model approach
policyengine-uscan consume, so relaxing SSI income/assets does not automatically convert every broad-disabled non-recipient into an SSI recipient.Related
Acceptance criteria