Repository navigation
Conversation
- Build per-source income arrays before summing (code-health builtin-sum rule) - Gate the independent supplement on (ssi > 0) | receives_ssi - Pay the $8/$7 couple split only when both spouses qualify; a lone qualifier gets $15 - Default the partial-month no-income rule from care days (ARSD 67:46:06:09) - Drop the SSI take-up gate from the care payment - Registry ordering, parameter periods, shorter programs.yaml note - Realistic Case 2 income; add death/transfer, receives_ssi, couple, joint-entry, care-days and earned-income cases Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…and tests - Correct the shared SNAP reference title to 7 CFR 273.9(b)(2) and (c)(1) - Document the SSI-receipt assumption in the care contribution and the joint-claim couple condition - Add joint-entry pooled-limit, immigration, incarceration and student-exclusion cases Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PR Review: Add South Dakota state supplementation for 2026PR #10169 (author: hua7450, head SummaryThe PR adds South Dakota's two state-administered optional supplements.
Most of the 2026 policy content is right:
Two critical items:
Two should-fix items, the same two as in the sibling reviews (#10174, #10167, #10172):
Critical (must fix)1. The failing CI check is caused by this PR:
2. Joint-entry couples' income isn't shared equally in the entry month.
Should address1.
2. All seven parameter descriptions are off the house template.
Suggestions
Verified correct
Batch checks
Axiom line assessmentInvalid (Should 1).
CI status25 of 26 checks pass. The one failure is caused by this PR (
Branch status
Verdict: REQUEST_CHANGES |
DTrim99
left a comment
There was a problem hiding this comment.
The amounts ($15/$8/$7 and the $77.16 daily rate) match POMS DEN01415.011 B, ARSD 67:12:14 and the 2026 LTSS fee schedules, and the income, NF-only PNA and partial-month rules match ARSD 67:46. Two critical (details in the comment above): (1) the CI failure is caused by this PR, not infrastructure, so re-running won't fix it. test_members_are_state_gated fails because sd_ssp has no defined_for; add defined_for = StateCode.SD. (2) Joint-entry couples' income isn't shared equally in the entry month (ARSD 67:46:04:10(6) via 67:46:06:03): integration Case 7 pins [1,000, 1,400] where the rule gives [1,200, 1,200]. Two should items: the axiom line ('needed' isn't valid for staff) and the descriptions.
…nputs - Gate sd_ssp on StateCode.SD (aggregate list guard). - Share a joint-entry couple's income equally in the entry month (ARSD 67:46:04:10(6)), and require both spouses to be flagged. - Replace the care days and income-not-applied formula inputs with zero-default partial-month days and died/transferred inputs, and apply the 67:46:04:15 income test in partial months. - Add a care setting input so waiver and private-pay assisted living and adult foster care residents get no independent payment; require SSI pursuit for residents who would qualify. - Uprate the assisted living daily rate by the SSI COLA, update descriptions and references, and add tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Thanks, David. The fixes are in 66976a3, followed by a merge of Critical 1 (state gate): Critical 2 (joint-entry income): fixed. When both spouses enter care in the same month,
Should 1 (Axiom line): filed TheAxiomFoundation/rulespec-us#1784 (
The source conflicts are in a separate comment on that issue. Should 2 (descriptions): the four independent-payment files use "under the Optional State Supplemental program" (the ARSD 67:12:14 title). The care files use the names their sources use:
Suggestion 1 (daily rate): history stays out of scope, so I didn't add the $75.05. Going forward, the rate now uprates with Suggestion 2 (Texas rebate copy): #10226 tracks one Suggestion 4 (readings):
Suggestion 5 (wiring):
Suggestion 6 (polish):
Other fixes I found:
On the merged head, these pass locally: all 265 South Dakota cases, and the aggregate list integrity, program registry and uprating placement tests (678 passed, 10 skipped). |
…months A formula-less monthly input carries forward to later months, so partial days, a death or transfer, or a joint entry entered for one month also applied to every month after it. Formulas that return the default keep these entries to their month. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
One follow-up to my reply, in b416b58. In policyengine-core, a monthly input with no formula carries forward to later months. So
|
What and why
South Dakota's two state-administered optional supplements were missing from PolicyEngine-US. Add
sd_sspfor 2026 (SDCL 28-5A-1).Independent living (SB 32; ARSD 67:12:14; POMS SI DEN01415.011 B.5.b). $15 a month for an individual, or $8 and $7 for an eligible couple.
sd_ssp_care_settingrecords assisted living and adult foster care, including waiver and private-pay residents.Assisted living and adult foster care (SB 201; ARSD 67:46). The approved monthly charge less the resident's gross income, including SSI, after state-approved deductions (67:46:06:10).
sd_ssp_care_certified,sd_ssp_approved_care_cost,sd_ssp_care_income_deductions,sd_ssp_care_partial_month_days,sd_ssp_care_died_or_transferredandsd_ssp_care_joint_entry. All default to 0 or false, so entering one for one person leaves other household members unchanged.The payment is added to the household and SPM benefit totals and to SNAP and HUD unearned income.
References
Additional section and page citations are included alongside the parameters and formulas.
Coverage limits
The registry marks South Dakota as partial, verified for 2026.
Not modeled:
Earlier years use parameter backfilling and are unverified historical estimates; no historical coverage is claimed.
Related: #10226 tracks the reform copies of
spm_unit_benefits(such as the Texas rebate's), which this PR leaves unchanged.Test plan
sd_ssp.yaml, 13 inintegration.yaml). They cover:main: all 265 South Dakota cases (SSP and tax) pass locally, and the aggregate list integrity, program registry and uprating placement tests pass (678 passed, 10 skipped).ruff formatandgit diff --check.changelog.d/.axiom: ARSD 67:12:14:02; ARSD 67:46:04:10, 67:46:06:10; POMS SI DEN01415.011 B TheAxiomFoundation/rulespec-us#1784 queued