Repository navigation
Pay CO, TX and NM SSI supplements to both members of an SSI couple - #10145
Conversation
The Colorado AND-CS, Texas Medicaid-facility and New Mexico adult residential care supplements gated on is_ssi_eligible_individual, which is false for the tax-unit-spouse member of an SSI couple. Each state's rule pays every SSI recipient on their own (9 CCR 2503-5 3.546-3.548; HHSC MEPD H-1500 and H-6000; 8.106.400.10(C) and 8.106.500.10 NMAC), so gate on SSI receipt instead, the repo's convention for SSI-recipient programs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One vectorized simulation of 48 married couples checks that eligibility is SSI receipt, that the result does not depend on which spouse is the tax-unit head, that two citizen spouses are treated alike, and that a spouse failing the SSI citizenship condition is never eligible. main fails the first three; the is_ssi_eligible_individual | is_ssi_eligible_spouse alternative fails the fourth. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review round 1 (GPT-6.1 Sol): - Colorado: 9 CCR 2503-5 3.549(A) counts each AND-CS client's own income, with the $20 disregard split between spouses and no deeming between SSI-recipient spouses (3.549(F)). The model used ssi_countable_income, which halves a joint claim's pooled income. New co_state_supplement_countable_income does the per-client count where SSI's couple computation applies and keeps the federal amount elsewhere. - Texas: H-6000 keeps a facility resident eligible for SSI when countable income "does not exceed" the $30 reduced standard, and 42 USC 1382(a)(1)(A) agrees, so gate on SSI eligibility within the limit (a $0 payment included) plus take-up, or reported receipt. - One reference per document for the CO rule PDF. Also reverts the partner fixture edit: partner API contract tests change only after Ziming Hua approves (CLAUDE.md). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@hua7450, this PR changes the result of one partner API contract test. Per CLAUDE.md I have not edited the partner file. It is unchanged on this branch, so that case fails in CI until you decide. Changed case:
No other output in this file, or in the other CO partner fixtures, changes. Model change. Law.
Both spouses in this case are disabled, aged 50 and 52, with no income. Each receives 1,491 / 2 = 745.50/month of SSI, so each is owed (994 − 745.50) × 12 = 2,982. The fixture's own comment already says the spouse's 0 reflects the model ("the current model pays them no AND-CS supplement"). SSA's January 2011 Colorado table pays couples the same way: combined standard 1,398 (2 × 699), state supplement 387. Proposed edit, once you agree: set
The three questions from CLAUDE.md:
I'll make the edit only after you answer yes to all three. |
…ients 3.549(A)(2)(f) applies "the difference between the gross unearned income and the $20.00 deduction" to earnings only when the client's unearned income is under $20, and (A)(2)(a) counts unearned income "from all sources", SSI included. So an AND-CS client, who always receives SSI, gets no share of the disregard on earnings unless their gross unearned income is under $20. This matches Axiom's encoding of 3.549 (us-co:regulations/9-ccr-2503-5/3.549). co_state_supplement_countable_income becomes MONTH so it can read that month's SSI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n CO Review round 2 (GPT-6.1 Sol): - Texas: testing uncapped_ssi admitted an SSI-abolished resident and a resident on the own-household rate whose income equalled it. Test H-6000's condition directly: countable income not over the $30 reduced standard, with SSI not abolished. - Colorado: a joint couple's in-kind support and maintenance is one presumed maximum value (ssi_pmv_amount), which SSI splits between the spouses; count half of it for each spouse, not all of it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
A note for this PR's Texas eligibility gate, from the primary-source work in #10148, which touches no file here. Both merge cleanly together: 38 Texas YAML cases and both invariants files pass on the merged tree.
|
hua7450
left a comment
There was a problem hiding this comment.
Review: policy verified; partner pin approved; one known interaction
The policy checks out in all three states:
- CO: AND-CS grants are calculated "on an individual basis with just one client per case" (9 CCR 2503-5 §3.548(A)).
- TX: a facility resident stays SSI-eligible while countable income doesn't exceed the $30 reduced standard, or $60 for a couple (MEPD H-1500, H-6000).
- NM: two SSI recipients in residential care are "two separate benefit groups" (8.106.400.10(C) NMAC).
Partner case. The CO spouse's $2,982 is correct: ($994 − $1,491 / 2) × 12. Yes to the three partner-test questions. Please update the pin, and I'll approve once that's in.
Known interaction (not blocking). The new TX $30 income test reads ssi_countable_income, which still pools a couple's income unless SSI's own facility inputs are set. If a caller sets only is_in_medicaid_facility, a resident with no income whose spouse at home has a $100 pension counts ($100 − $20) / 2 = $40, so the resident loses the $45. Under 20 CFR 416.414(b)(3) and H-6000, SSA separates the payments and counts each spouse's own income. main already mispays this household, since SSI treats it as an at-home couple. The root cause is that is_in_medicaid_facility and the SSI facility inputs aren't linked. I'll file a separate issue for that fix, so no change is needed here.
Suggestions
co_state_supplement_countable_incomehas nodefined_for = StateCode.CO.- §3.549(A)(2)(f) supports two readings of how a married client's unused $10 disregard share carries to earnings. The difference is at most $5 to $10 a month. A comment noting the reading you chose would help.
- TX Scenario 6's comment cites both H-6000's $60 couple standard and SSA's 2011 "treated as two individuals" note; cite just the rule the model applies.
hua7450
left a comment
There was a problem hiding this comment.
Requesting changes only until the partner value is updated (my earlier review); I'll approve on that head.
…r pin Review round 3 (GPT-6.1 Sol): - Texas: 1 TAC 358.381(c)(2) gives the supplement to "a person receiving the reduced SSI federal benefit rate", so require SSI's medical treatment facility arrangement. A resident still on the full rate, as in the month of entry (H-6000), gets nothing; this also covers the reported-receipt branch. - Texas: 20 CFR 416.1163(f)(5) stops deeming an ineligible spouse's income while the $30 rate applies, so test the resident's own countable income against the $30 standard. - Invariant 5 wording states the conditions the identity needs. Partner fixture: Ziming Hua answered yes to the three partner-test questions and approved the CO spouse's 2,982 (review 5493914547), so the pin moves from 0 to 2,982 with the comments he reviewed. Ziming's suggestion: TX Scenario 6 cites only H-6000, the rule applied. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…le-spouse-eligibility
|
@hua7450, thanks. The partner pin is updated in Your suggestions:
Texas changed again since your review (Sol review round 3):
Your known interaction is the same root cause, From #10148: 358.381(c)(2) is now the gate's first reference and its condition. On HHSC Information Letter 2023-45 (RSDI recipients get no PNA supplement), the gate follows the rule, so a resident with both RSDI and SSI on the reduced rate still qualifies. |
|
Hand-off to the US + core hub.
|
Summary
Three state SSI supplements decided eligibility from
is_ssi_eligible_individualalone:co_state_supplement_eligible)tx_ssi_state_supplement_eligible)nm_ssi_state_supplement_eligible)is_ssi_eligible_individualis false for the member of an SSI couple who holds the tax-unit spouse role; that member carriesis_ssi_eligible_spouseinstead. So when both spouses were SSI-eligible, only the tax-unit head could get these supplements. #10141's "Known limitations" section notes this.Each state's rule pays every SSI recipient on their own. This PR:
gates Colorado and New Mexico on SSI receipt,
(ssi > 0) | receives_ssi. That is each rule's own condition and the convention the KS, GA, MI, IN, NE, ID, WA and FL supplements already use;gates Texas on the binding rule, 1 TAC 358.381(c)(2): "For a person receiving the reduced SSI federal benefit rate, HHSC issues a supplement". The resident must:
ssi_federal_living_arrangement == MEDICAL_TREATMENT_FACILITY) and in a Medicaid facility;H-6000 keeps a resident eligible for SSI when countable income "does not exceed" $30, including a $0 federal payment. Reported receipt also counts, still only on the reduced rate. SSI must not be abolished;
adds
co_state_supplement_countable_income, so each spouse of an SSI couple counts their own income for AND-CS (9 CCR 2503-5 3.549(A)) rather than half the couple's pooled federal countable income.Each program's other conditions are unchanged.
What each state's rule says
None of the three limits the supplement to one spouse, so all three needed the change.
Why not
is_ssi_eligible_individual | is_ssi_eligible_spouseOn current main,
is_ssi_eligible_spouseis the tax-unit spouse of a marital unit whose two members are both aged, blind or disabled. It has no citizenship test. With the label OR, an undocumented aged, blind or disabled tax-unit spouse, who cannot receive SSI, would have become eligible for these supplements. (#10141 adds the citizenship condition throughssi_claim_is_joint.) The invariants test below shows it: with the label OR in place, the citizenship invariant fails. The gates in this PR do not depend on tax roles before or after #10141.The new gates also stop paying people who are aged, blind or disabled but get no SSI: those above the resource limit, those whose income exceeds the limit, and those who do not take up SSI. All three rules require SSI, so this is intended. For Colorado it is the fix proposed in #9338.
Worked cases
is_in_medicaid_facility(SSI on the $943 own-household rate), $963/month pensionis_in_medicaid_facility, no income (SSI pays the full $943, as in a month of entry)Every row is a YAML case built from real inputs (marital unit, tax-unit roles, disability, income, facility living arrangement), not label inputs. In the Colorado couple rows with only unearned income, the two grants always sum to $497/month, as SSA's couple column implies; only the split between spouses follows 3.549. With earnings the total differs, because 3.549(A)(1) deducts $65 for each client where SSI deducts $65 once for the couple, and an SSI recipient's unused share of the $20 does not reach earnings.
co_state_supplement_countable_incomefollows 3.549(A) as Axiom encodes it (us-co:regulations/9-ccr-2503-5/3.549):ssi_pmv_amount), so each spouse counts half of it.The variable applies only where SSI's couple computation applies. Elsewhere it returns
ssi_countable_incomeas before; the follow-up chip for 3.549 covers single clients and spousal deeming.Tests
co_state_supplement.yamlCases 14-19,co_state_supplement_eligible.yamlCases 8-11, and a newco_state_supplement_countable_income.yaml.integration.yamlScenarios 6 and 9-15, andtx_ssi_state_supplement_eligible.yamlCases 1-11 (rewritten for the new gate, including the $30 boundary, take-up, theabolish_ssireform and the full rate).integration.yamlCases 3, 8 and 9, andnm_ssi_state_supplement_eligible.yamlCase 8.is_ssi_eligible_individualas an input now set the inputs each gate reads. Integration cases that set the label now compute SSI from age, disability and the facility living arrangement. Existing TX Scenario 6 and NM Case 3 set the label to true for both spouses, which hid the bug; they are now real married couples.grant_standard.yaml: the 9 CCR 2503-5 link for ruleVersionId=12428 pointed at#page=99, which is 3.550; 3.546 is on page 91.my_friend_ben/2025.yaml(116 cases), and the invariants file (6 tests), all pass.is_in_medicaid_facilitygets full-rate SSI from the SSI module, because its own facility inputs are separate. Main paid such a caller the $45 on top of full-rate SSI; this PR pays nothing, since 358.381(c)(2) limits the supplement to the reduced rate. Linking the two inputs is the real fix; Ziming is filing it separately.Partner test (approved by @hua7450)
partners/analytics_coverage/edge_cases/state/co/state_supplement.yaml, caseco_state_supplement_disabled_ssi_couple_positive, pinned the bug: its spouse expected $0, and its comment said "the current model pays them no AND-CS supplement". Ziming answered yes to the three partner-test questions and approved the spouse's $2,982 (review).0f6723772bmakes exactly that edit: the value plus the two comments he reviewed.Invariants
policyengine_us/tests/core/test_ssi_state_supplement_couple_invariants.pyruns one vectorized simulation of 72 married couples (144 people). The grid crosses five axes:The tests check:
On main, 1-3 fail. With the label OR in place of the gates, 1, 2 and 4 fail. On this head all six pass. Measured locally on macOS: 0.7-3.7 s of test time depending on host load, and 17.6 s wall and 1.0 GB peak RSS for the whole process, nearly all of it importing the model. The file runs in the Rest/core Python group. YAML can state each case but not compare a person across role assignments in one run, which is what invariants 2, 3 and 5 need.
ssireads none of the three supplements (they feed SNAP unearned income and household benefit totals only), so the gates add no dependency cycle.Review
Independent review by GPT-6.1 Sol, one round per head:
9524da0ff2d650669eabolish_ssiand own-household-rate residents; CO counted the couple's whole ISM per spouse; CO earnings spillover and invariant wording (already fixed in66ddf925ca)3d1da21317f450d4ab00Ziming Hua reviewed the policy in all three states, approved the partner value, and made three suggestions:
defined_for, and a note on the 3.549(A)(2)(f) reading: both are in Apply Colorado's AND-CS payment floor and 3.549 income rules to every client #10161, which is stacked on this branch and replacesco_state_supplement_countable_income.Hub microsimulation impact (current head)
A real microsimulation on the default dataset, main at the merge base
5ec60b209aagainst this PR's headf450d4ab00, for 2026. The runs went one at a time under the shared heavy-job lock. Sums are weighted.co_state_supplementtx_ssi_state_supplementnm_ssi_state_supplementssispm_unit_net_incomestate_income_taxincome_taxhousehold_net_incomehousehold_benefitsWhy Colorado falls to $0. The hub diagnosis review is at
reviews-gen/us-10145/review-impact-diag.md. It traced the rule and ran 17 household probes at both commits, and found two ways a payment on main disappears here:co_state_supplement_eligiblechecks only the SSI category (is_ssi_eligible_individual), not receipt. So main pays the full $994 a month to modeled disabled residents aged 0–59 who get no SSI because they don't take it up or fail the resource test. For example, a 45-year-old withtakes_up_ssi_if_eligiblefalse, or with $3,000 of bank assets, gets $11,928 a year on main and $0 here. 9 CCR 2503-5 §3.546 and §3.547(A), (D) require SSI receipt, so this PR gates onssi > 0orreceives_ssi.For a full-rate single SSI recipient the supplement is $0 under both versions, because the SSI payment already reaches the $994 standard. The couple changes add payments in other probes, for example $2,982 a year for the second spouse, but no dataset couple qualifies in 2026. Federal
ssiis unchanged. Reported receipt checked. The default dataset carries no reported SSI receipt: the rawSSI_YNisn't mapped toreceives_ssi. So a follow-up (PolicyEngine/microcosm#1312) ran main and this head again with survey-reported receipt mapped in. That run covered every household containing an SSI reporter and all Colorado households, in 2026, with fixed weights. All of main's $233.2M Colorado supplement goes to households with no SSI reporter, and this head still pays $0 with reported receipt. So the removal isn't an artifact of the dataset lacking receipt. Evidence is in~/reviews/ssi-receipt-1018/(results_main.json,results_pr10145.json) on the hub host.Comparison files are in
fixes/10145-impact/on the hub host.Axiom
axiom: us-co:regulations/9-ccr-2503-5/3.546#and_cs_client_qualifies_for_program and 3.549#and_cs_total_countable_client_income encoded-correct (Person-level, no spouse-role input, married split of the $20 disregard; companion tests
and_cs_qualified_client_below_floor_receives_state_supplement,ssi_only_client_has_no_unearned_disregard) | TheAxiomFoundation/rulespec-us#1709 queued (TX HR 32.024(w), MEPD H-1500/H-6000) | TheAxiomFoundation/rulespec-us#1708 queued (NM 8.106.500.10, 8.106.400.10(C) NMAC)Fixes #9338.
🤖 Generated with Claude Code