Implement Kentucky State Supplementary Payment#8019
Draft
hua7450 wants to merge 4 commits intoPolicyEngine:mainfrom
Draft
Implement Kentucky State Supplementary Payment#8019hua7450 wants to merge 4 commits intoPolicyEngine:mainfrom
hua7450 wants to merge 4 commits intoPolicyEngine:mainfrom
Conversation
Closes PolicyEngine#8018 Adds Kentucky's state-administered SSP under KRS 205.245 / 921 KAR 2:015: - Four benefit categories: Personal Care Home (PCH $1,610), Community Integration Supplementation (CIS $1,514), Family Care Home (FCH $1,166), and Caretaker Services (individual $1,056, couple-one-care $1,552, couple-both-care $1,606) - Formula: max(0, standard - income_excess) where income_excess derives from uncapped_ssi, matching Alaska SSP pattern - 2026 rates only; historical backdating deferred to follow-up PR - Reuses federal meets_ssi_resource_test ($2K/$3K limits match KY exactly) - Personal Needs Allowance ($60 PCH / $40 FCH) stored as informational parameter; not deducted from gross SSP - 58 YAML tests covering all categories, claim types, care_receivers, and edge cases (income boundaries, non-KY residents, asymmetric couples) Registered in spm_unit_benefits and household_state_benefits.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8019 +/- ##
===========================================
+ Coverage 71.08% 95.34% +24.25%
===========================================
Files 4295 8 -4287
Lines 61945 129 -61816
Branches 307 2 -305
===========================================
- Hits 44036 123 -43913
+ Misses 17908 6 -17902
+ Partials 1 0 -1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
- Income formula now subtracts total countable income per 921 KAR 2:015 §8(2), not just income above the federal SSI FBR. - Add age ≥ 18 requirement per §4(1)(c) to ky_ssp_eligible. - Replace income-gate via uncapped_ssi>0 with §4(1)(b) check against the KY standard of need (federal FBR is below KY standards so the old gate wrongly excluded recipients with income between FBR and SOH). - Fix KRS 205.245 URL (id=46358 returned KRS 18A.420; correct is id=7671). - Fix 921 KAR section cites: "Section 7" → "Section 9", "9(3)", "9(4)". - Fix CHFS Vol V page anchors: MS 1800 page 24→23, MS 2400 page 43→41. - Add 2000-01-01: 0 sentinels to payment_standard and PNA parameters so microsimulation evaluates cleanly pre-2026 (fixes the "no field of name ONE" error in the full test suite). - Update YAML tests: ky_ssp.yaml rewritten around ssi_countable_income; ky_ssp_eligible.yaml Cases 4, 8, 10 updated for new age and income semantics; integration.yaml Case 2 benefit corrected to $12,408. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ssi_claim_is_joint is true whenever both spouses are aged/blind/disabled even if one fails the SSI resource or immigration test, so the previous implementation: - classified one-eligible/one-ABD-but-resource-ineligible couples as COUPLE_BOTH_ELIGIBLE, driving ky_ssp_payment_standard to the lower joint rate; and - applied the §9(2)(b) "half the deficit to each" split, underpaying the eligible spouse and paying a positive benefit to the ineligible spouse. 921 KAR 2:015 §9(1)(c) reserves the couple rates for an "eligible couple, both aged, blind, or having a disability" — i.e. both actually SSI-eligible. §9(2)(a) likewise conditions the combined-income treatment on "if both are eligible". Gate both the claim-type and the couple-split on marital_unit.sum(is_ssi_eligible) == 2 so couples collapse to the individual path unless both spouses are actually SSI-eligible. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements Kentucky's State Supplementary Payment (SSP) — state-administered, state-funded optional supplement to federal SSI covering Personal Care Home, Community Integration Supplementation, Family Care Home, and Caretaker Services categories.
Closes #8018
Regulatory Authority
Program Overview
Eligibility
is_ssi_eligibleuncapped_ssi > 0gate inky_ssp_eligibledefined_for = StateCode.KYon all 7 KY SSP variablesis_ssi_eligible→meets_ssi_resource_test(federal limits match KY)is_ssi_eligibleis_ssi_eligibleky_ssp_categoryenum {PCH, CIS, FCH, CARETAKER, NONE}; category != NONE requiredBenefit Amounts (CHFS Vol V MS 1200, effective 1/1/2026)
Couple treatment: PCH/CIS/FCH are treated as two individuals after month 1 (first-month combination is not modeled in steady state); Caretaker uses explicit couple rates with a
care_receiverssplit (ONE/BOTH).COLA: COLA-adjusted annually since 2021 per 921 KAR 2:015 (OMTL-680+). This PR encodes 2026 rates only.
Personal Needs Allowance
Stored as informational parameters in
personal_needs_allowance/pch.yamlandfch.yaml. The research indicates PNA is a carve-out retained by the resident while the facility receivesstandard − countable_income. Per user decision, PNA is NOT deducted fromky_ssp— it is exposed throughky_ssp_personal_needs_allowancefor reference only.Requirements Coverage
ky_ssp_eligibleky_ssp_eligible.yamlCases 1, 3, 7defined_for = StateCode.KYky_ssp.yamlCases 7, 10uncapped_ssi)ky_ssp_eligibleky_ssp_eligible.yamlCases 8, 9;ky_ssp.yamlCases 8, 11is_ssi_eligibleky_ssp_eligible.yamlCase 7ky_ssp_categoryky_ssp.yamlCases 1-6;ky_ssp_eligible.yamlCases 1-6ky_ssp_category = PCHky_ssp_payment_standard.yamlCase 1ky_ssp_category = CISky_ssp_payment_standard.yamlCase 2ky_ssp_category = FCHky_ssp_payment_standard.yamlCase 3ky_ssp_category = CARETAKERky_ssp_payment_standard.yamlCase 4payment_standard.yamlky_ssp_payment_standardky_ssp_payment_standard.yamlall 14 casespayment_standard.yamlky_ssp_payment_standardky_ssp_payment_standard.yamlCases 1-6ky_ssp_claim_typeky_ssp_claim_type.yamlall 4 casespayment_standard.yamlky_ssp(marital_unit.sum/2)ky_ssp.yamlCases 8, 9;integration.yamlCases 5, 6payment_standard.yamlCOUPLE_ONE rowsky_ssp_payment_standardky_ssp_payment_standard.yamlCase 7;integration.yamlCase 12payment_standard.yamlCOUPLE rows = individual rateky_ssp_payment_standardky_ssp_payment_standard.yamlCases 8, 10, 11max(0, standard − income_excess)formulaky_sspky_ssp.yamlCases 1-4, 6, 7, 10, 11personal_needs_allowance/{pch,fch}.yamlky_ssp_personal_needs_allowance(not subtracted fromky_ssp)ky_ssp_personal_needs_allowance.yamlall 5 casesAll 20 in-scope requirements are covered. 100% coverage.
Not Modeled (by design)
Files
Plus registry edits:
policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py— addky_ssptoBENEFITSpolicyengine_us/parameters/gov/household/household_state_benefits.yaml— add- ky_sspunder KYVerification TODO
Test plan