PolicyEngine / PolicyEngine/microcosm
SSI state by-area recipient rows bind a mixed universe (~115k state-supplement-only gap)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 4
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 94
Description
Residual from the #507/#508 adjudication, flagged for separate adjudication in the #508 close-out (now closed, so tracking here).
The by-area STATE recipient rows (ssa_supplement.ssi_recipients, role ssi_recipients) still bind engine ssi — the federal payment — while their universe is federally administered, which includes ~114,977 state-supplement-only recipients nationally (7,404,820 − 7,289,843, December 2024). The national all_areas_total row was re-scoped non-binding for exactly this mismatch (#524), but the 51 state rows remain the only state-grain SSI caseload signal, so they kept binding with the residual documented at the compile site (_ssa_ssi_reference_from_fact in fiscal_targets.py).
Closing it needs one of:
- a state-level federal-payment recipient source (the SSA SSI Monthly state tables, if the federal-payment split exists at state grain), or
- a modeled state-supplement concept, letting the federally-administered rows bind a combined federal+supplement quantity.
Until then the solve carries a ~1.6% wrong-universe pull distributed across states. Relates #508, #524, #549.
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
Start at _ssa_ssi_reference_from_fact in fiscal_targets.py and inspect how the ssa_supplement.ssi_recipients state rows bind to engine ssi. Review the close-out context in #508 and the re-scoping in #524, then determine whether a state-level federal-payment source exists or a modeled combined concept is needed. Done means the state rows bind a matching universe without the documented residual.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100