PolicyEngine / PolicyEngine/policyengine-us
CO AND-CS state supplement pays people who do not receive SSI
- Dominant language
- Python
- Stars
- 162
- Forks
- 212
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 97
Description
Part of #9330 (disconnected disability inputs audit).
## Summary
Colorado's AND-CS state supplement is an SSI top-up for people **receiving SSI** — but the model pays it to non-recipients: the gate checks only categorical/immigration status, with no receipt, no income test, and no resource test anywhere in the CO chain. This is an over-payment bug in current output, not a latent one.
## Current code
`policyengine_us/variables/gov/states/co/ssa/state_supplement/co_state_supplement_eligible.py:12`:
```python
disabled_or_blind & is_ssi_eligible_individual & in_age_range
```
(`is_ssi_eligible_individual` = ABD + immigration + not-eligible-spouse only.) Payment is then `max_(0, grant_standard − ssi − countable_income)`.
## Legal basis
9 CCR 2503-5 ([rule PDF](https://www.coloradosos.gov/CCR/GenerateRulePdf.do?ruleVersionId=10694#page=73)):
- §3.546: AND-CS "provides a supplemental payment for clients age zero (0) to fifty-nine (59) who are **receiving SSI** due to a disability or blindness, but are not receiving the full SSI benefit standard."
- §3.547.A: "the client must be approved for SSI due to a disability or blindness. The county department shall verify SSI eligibility through SVES or SDX."
- §3.547.D: "If a client is terminated from SSI, the client shall lose eligibility for the AND-CS program."
Non-recipients with pending SSI claims belong to the separate AND-SO interim program (§3.545), which is not what this variable models.
## Impact
Wrongly paid: under-60 blind/disabled people with income above the SSI break-even (`ssi = 0`) but below the grant standard, and people who would fail the SSI resource test (never checked).
## Proposed fix
Gate on `ssi > 0` plus the age range — receipt already implies categorical/resource/immigration status and takeup (per the repo convention, don't AND `is_ssi_eligible` with `ssi > 0`). Plus a regression test: an income-above-break-even blind/disabled 45-year-old gets $0.
Contributor guide
Research direction
Start with policyengine_us/variables/gov/states/co/ssa/state_supplement/co_state_supplement_eligible.py:12 and trace how the existing eligibility result feeds the payment calculation. Add the stated regression test for an income-above-break-even blind or disabled 45-year-old, and confirm the resulting AND-CS payment is $0.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 84/100