Skip to content

Implement Kentucky State Supplementary Payment#8019

Draft
hua7450 wants to merge 4 commits intoPolicyEngine:mainfrom
hua7450:ky-ssp
Draft

Implement Kentucky State Supplementary Payment#8019
hua7450 wants to merge 4 commits intoPolicyEngine:mainfrom
hua7450:ky-ssp

Conversation

@hua7450
Copy link
Copy Markdown
Collaborator

@hua7450 hua7450 commented Apr 16, 2026

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

  • Administration: State-administered (Cabinet for Health and Family Services / Department for Community Based Services / Division of Family Support)
  • Funding: State funds only (no federal pass-through; state administers because it runs on tighter eligibility than federal MSS)
  • Current caseload: not reported in consulted sources (most recent figure is 3,974 recipients in January 2011 per SSA 2011 KY report Table 2)
  • Effective since: January 1, 1974

Eligibility

Requirement Source How Modeled
Must be SSI-eligible (ABD + resource + immigration) 921 KAR 2:015 §4; CHFS Vol V MS 1700 is_ssi_eligible
Must actually receive SSI (income not too high) Federal SSI income rules; KRS 205.245(3) uncapped_ssi > 0 gate in ky_ssp_eligible
Must reside in Kentucky 921 KAR 2:015 §6; CHFS Vol V MS 1600 defined_for = StateCode.KY on all 7 KY SSP variables
Countable resources ≤ $2,000 / $3,000 921 KAR 2:015 §5; CHFS Vol V MS 2500 Transitive via is_ssi_eligiblemeets_ssi_resource_test (federal limits match KY)
US citizen / qualified alien 921 KAR 2:015 §6; CHFS Vol V MS 1600 Transitive via is_ssi_eligible
Valid SSN CHFS Vol V MS 1600 Transitive via is_ssi_eligible
Placed in one of 4 qualifying categories 921 KAR 2:015 §7; CHFS Vol V MS 1100, MS 1800 ky_ssp_category enum {PCH, CIS, FCH, CARETAKER, NONE}; category != NONE required

Benefit Amounts (CHFS Vol V MS 1200, effective 1/1/2026)

Category Claim Type Care Receivers Monthly Amount Source
Personal Care Home (PCH) any n/a $1,610 MS 1200
Community Integration Supplementation (CIS) any n/a $1,514 MS 1200
Family Care Home (FCH) any n/a $1,166 MS 1200
Caretaker Services Individual n/a $1,056 MS 1200
Caretaker Services Individual w/ ineligible spouse n/a $1,056 MS 1200
Caretaker Services Eligible couple ONE receives care $1,552 MS 1200
Caretaker Services Eligible couple BOTH receive care $1,606 MS 1200

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_receivers split (ONE/BOTH).

COLA: COLA-adjusted annually since 2021 per 921 KAR 2:015 (OMTL-680+). This PR encodes 2026 rates only.

Personal Needs Allowance

  • PCH: $60/month
  • FCH: $40/month

Stored as informational parameters in personal_needs_allowance/pch.yaml and fch.yaml. The research indicates PNA is a carve-out retained by the resident while the facility receives standard − countable_income. Per user decision, PNA is NOT deducted from ky_ssp — it is exposed through ky_ssp_personal_needs_allowance for reference only.

Requirements Coverage

REQ Description Parameter Variable Test
REQ-001 SSI-eligible (ABD + resource + immigration) — (reuse federal) ky_ssp_eligible ky_ssp_eligible.yaml Cases 1, 3, 7
REQ-002 Kentucky residency all via defined_for = StateCode.KY ky_ssp.yaml Cases 7, 10
REQ-003 Income below combined fed+state benefit — (via uncapped_ssi) ky_ssp_eligible ky_ssp_eligible.yaml Cases 8, 9; ky_ssp.yaml Cases 8, 11
REQ-004 Resources ≤ $2K / $3K — (federal) transitive via is_ssi_eligible ky_ssp_eligible.yaml Case 7
REQ-005 Citizenship / qualified alien transitive implicit (upstream SSI)
REQ-006 Valid SSN transitive implicit (upstream SSI)
REQ-007 4 categories (PCH/CIS/FCH/Caretaker) ky_ssp_category ky_ssp.yaml Cases 1-6; ky_ssp_eligible.yaml Cases 1-6
REQ-008 PCH category ky_ssp_category = PCH ky_ssp_payment_standard.yaml Case 1
REQ-009 CIS category ky_ssp_category = CIS ky_ssp_payment_standard.yaml Case 2
REQ-010 FCH category ky_ssp_category = FCH ky_ssp_payment_standard.yaml Case 3
REQ-011 Caretaker category ky_ssp_category = CARETAKER ky_ssp_payment_standard.yaml Case 4
REQ-012 Standard by category × claim_type × care_receivers payment_standard.yaml ky_ssp_payment_standard ky_ssp_payment_standard.yaml all 14 cases
REQ-013 2026 rates ($1,610/$1,514/$1,166/$1,056/$1,552/$1,606) payment_standard.yaml ky_ssp_payment_standard ky_ssp_payment_standard.yaml Cases 1-6
REQ-017 Claim type enum (INDIVIDUAL / COUPLE_BOTH / COUPLE_ONE) ky_ssp_claim_type ky_ssp_claim_type.yaml all 4 cases
REQ-018 Caretaker both-eligible 50/50 split payment_standard.yaml ky_ssp (marital_unit.sum/2) ky_ssp.yaml Cases 8, 9; integration.yaml Cases 5, 6
REQ-019 Caretaker one-eligible + ineligible spouse uses individual rate payment_standard.yaml COUPLE_ONE rows ky_ssp_payment_standard ky_ssp_payment_standard.yaml Case 7; integration.yaml Case 12
REQ-020 PCH/FCH/CIS couple treated as individuals payment_standard.yaml COUPLE rows = individual rate ky_ssp_payment_standard ky_ssp_payment_standard.yaml Cases 8, 10, 11
REQ-021 Spouses in different PCH/FCH cannot combine income implicit via per-person standard implicit (no cross-facility pooling)
REQ-022 max(0, standard − income_excess) formula ky_ssp ky_ssp.yaml Cases 1-4, 6, 7, 10, 11
REQ-023 PNA informational ($60 PCH / $40 FCH) personal_needs_allowance/{pch,fch}.yaml ky_ssp_personal_needs_allowance (not subtracted from ky_ssp) ky_ssp_personal_needs_allowance.yaml all 5 cases

All 20 in-scope requirements are covered. 100% coverage.

Not Modeled (by design)

What Source Why Excluded
REQ-014, REQ-015, REQ-016: Historical rates (2002, 2010, 2011) and gap years (2003-2009, 2012-2025) SSA 2002/2010/2011 KY reports User chose 2026-only scope; backdating can be done in follow-up PR
REQ-024: Mandatory Minimum Supplementation SSA 2011 KY report ("No recipients.") Defunct grandfathered 1973 AABD sub-program; no active recipients
REQ-025: Third-party payments / TPL cooperation 921 KAR 2:015 §8; CHFS Vol V MS 1200 Facility-level third-party billing; not in PE data model
REQ-026: MI/ID Supplement 921 KAR 2:015 §7 Provider-level quarterly payment to Personal Care Homes, not household-level
REQ-027: Caretaker-is-relative exclusion 921 KAR 2:015 §7(4); CHFS Vol V MS 1800 No relational data in PolicyEngine linking a person to a named caretaker
REQ-028: PCH age-16 / FCH age-18 gates CHFS Vol V MS 1800; SSA 2011 KY Implicit via category assignment (user sets category directly)
REQ-029: Relative financial responsibility (first-month admission only) SSA 2011 KY Transient facility-admission detail; PolicyEngine models steady state
REQ-030: Facility licensure / IMD designation CHFS Vol V MS 1800 Facility-level attribute, not household-level

Files

changelog.d/ky-ssp.added.md
policyengine_us/parameters/gov/states/ky/dcbs/ssp/
  payment_standard.yaml
  personal_needs_allowance/pch.yaml
  personal_needs_allowance/fch.yaml
policyengine_us/variables/gov/states/ky/dcbs/ssp/
  ky_ssp.py
  ky_ssp_care_receivers.py
  ky_ssp_category.py
  ky_ssp_claim_type.py
  ky_ssp_eligible.py
  ky_ssp_payment_standard.py
  ky_ssp_personal_needs_allowance.py
policyengine_us/tests/policy/baseline/gov/states/ky/dcbs/ssp/
  integration.yaml
  ky_ssp.yaml
  ky_ssp_claim_type.yaml
  ky_ssp_eligible.yaml
  ky_ssp_payment_standard.yaml
  ky_ssp_personal_needs_allowance.yaml

Plus registry edits:

  • policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py — add ky_ssp to BENEFITS
  • policyengine_us/parameters/gov/household/household_state_benefits.yaml — add - ky_ssp under KY

Verification TODO

  • Verify 2026 payment standards against CHFS Vol V MS 1200 (OMTL-690)
  • Verify eligibility logic against 921 KAR 2:015 §§4-7
  • Consider backdating rates to cover 2002-2025 in follow-up PR
  • CI passes

Test plan

  • 58 YAML tests pass locally
  • CI passes

hua7450 added 2 commits April 16, 2026 14:04
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
Copy link
Copy Markdown

codecov bot commented Apr 16, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.34%. Comparing base (d9908f5) to head (ff7d069).
⚠️ Report is 104 commits behind head on main.

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     
Flag Coverage Δ
unittests 95.34% <100.00%> (+24.25%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

hua7450 and others added 2 commits April 17, 2026 16:51
- 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Kentucky State Supplementary Payment (SSP)

1 participant