Skip to content

Implement Alabama State Supplementary Payment (SSP)#7867

Open
hua7450 wants to merge 10 commits intoPolicyEngine:mainfrom
hua7450:al-ssi-ssp
Open

Implement Alabama State Supplementary Payment (SSP)#7867
hua7450 wants to merge 10 commits intoPolicyEngine:mainfrom
hua7450:al-ssi-ssp

Conversation

@hua7450
Copy link
Collaborator

@hua7450 hua7450 commented Mar 25, 2026

Summary

Implements Alabama's State Supplementary Payment (SSP) — a flat monthly supplement to federal SSI for recipients in qualifying care arrangements.

Closes #7868

Regulatory Authority

Eligibility (660-2-4-.15, -.16, -.19)

Requirement Source How Modeled
Must be SSI-eligible 660-2-4-.15, -.19 is_ssi_eligible
Must actually receive SSI (income not too high) Federal SSI income rules uncapped_ssi > 0
Must reside in Alabama State program defined_for = StateCode.AL
Must be in a qualifying living arrangement 660-2-4-.16 al_ssp_living_arrangement (input variable)
Physician certification 660-2-4-.16 Not modeled (clinical) — implicit in living arrangement input
Skilled nursing facility criteria 660-2-4-.28 Not modeled (clinical)
Care provider not a close relative 660-2-4-.29 Not modeled (no provider data)
SSI recipients get full supplement, no separate income test 660-2-4-.19, DHR Manual §12200 defined_for = "al_ssp_eligible", no income calc

Benefit Amounts — Maximum Budgeted (Attachment 660-2-4-.19a, page 24)

All 6 payment categories from the Admin Code payment table:

Living Arrangement Monthly Amount Admin Code Row
FCMP Nursing Care $60 Row 1 (max budgeted; monthly amount is $100)
Nursing Care Supplement $60 Row 2
Personal Care Supplement — Level A $60 Row 3
Personal Care Supplement — Level B $56 Row 4
Personal Care or Nursing Care in Foster Care $110 Row 5
Care in Cerebral Palsy Treatment Center (APTD) $196 Row 6
  • Amounts frozen since at least 1995 (regulation supplement dated 3/31/95)
  • Confirmed unchanged by DHR statistical reports (Jan 2025, Mar 2024, Nov 2023)
  • Each eligible person receives the flat individual amount; couple total = sum of two individuals

Combined Federal SSI + State SSP Verification (WorkWorld 2010)

Living Arrangement SSI/month SSP/month Combined WorkWorld
Level A individual $674 $60 $734 $734 ✓
Level B individual $674 $56 $730 $730 ✓
Foster Care individual $674 $110 $784 $784 ✓
Cerebral Palsy individual $674 $196 $870 $870 ✓
Level A couple $1,011 $120 $1,131 $1,131 ✓
Foster Care couple $1,011 $220 $1,231 $1,231 ✓

Not Modeled (by design)

What Source Why Excluded
Non-SSI supplementation 660-2-4-.26 Closed to new enrollment since March 7, 1986
Mandatory supplementation 660-2-4-.01 Pre-1974 recipients only; population effectively zero
Cerebral Palsy restricted to APTD 660-2-4-.18 Grandfathered since June 1981; zero current CP recipients
Medicaid Waiver for Specialized IHC 660-2-4-.16(2) Specialized IHC maps to Level A payment; not a separate category
Caseload freeze 660-2-4-.10 Budget constraint, not modelable
SSI payment "in suspense" DHR Manual §12200 Edge case within is_ssi_eligible
Automatic Medicaid for non-SSI SUP 660-2-4-.23 Non-SSI path not implemented

Current Caseload (DHR Statistical Report, January 2025)

~20 recipients statewide: 9 OAP + 0 AB + 11 APTD. Amounts observed: $56 (Level B) and $60 (Level A).

Files

parameters/gov/states/al/dhr/ssp/
└── amount.yaml              # Single parameter with breakdown by 6 living arrangement types

variables/gov/states/al/dhr/ssp/
├── al_ssp.py                # Benefit amount (direct parameter lookup)
├── al_ssp_eligible.py       # Eligibility (SSI eligible + receives SSI + qualifying arrangement)
└── al_ssp_living_arrangement.py  # Enum: 6 care types from Admin Code + NONE

tests/policy/baseline/gov/states/al/dhr/ssp/
├── al_ssp.yaml              # 7 unit tests (all 6 care types + ineligible)
├── al_ssp_eligible.yaml     # 10 unit tests (all care types + negative cases + income too high + wrong state)
└── integration.yaml         # 14 integration tests (8 basic/edge + 6 WorkWorld 2010 combined verification)

Verification & Backdating TODO

  • Verify payment amounts against Admin Code Attachment 660-2-4-.19a (page 24)
  • Verify eligibility logic against 660-2-4-.15, -.16, -.19
  • Backdate parameter start date — Amounts frozen since 1995; current 1995-01-01 start date already covers 2017-current
  • Research pre-1995 amounts — Not needed; 2017+ coverage is sufficient
  • Verify amounts are still $60/$56/$110/$196 as of 2017-2025 using DHR statistical reports
  • Confirm FCMP Nursing Care and Nursing Care Supplement are distinct categories worth modeling (both are $60 max budgeted; may be mandatory-only categories)
  • CI passes

Test plan

  • 31 tests pass (7 benefit + 10 eligibility + 14 integration)
  • WorkWorld 2010 combined Federal/State amounts verified
  • CI passes

🤖 Generated with Claude Code

hua7450 and others added 4 commits March 18, 2026 12:50
Adds Alabama's optional state supplement to federal SSI for recipients
in qualifying care arrangements (IHC Level A/B, Foster Home Care,
Cerebral Palsy). Flat monthly amounts, frozen since 1995.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Replace dead SSA reference (403) with WorkWorld mirror in all 4 params
- Fix page numbers in variable references (6/8 → 9/10/14)
- Add source citation for Specialized IHC = Level A mapping
- Add integration test with 5 scenarios

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove incorrect joint claim doubling (each person gets flat individual
  amount per Attachment 660-2-4-.19a, couple total = sum of individuals)
- Add all 6 payment categories from Admin Code payment table (FCMP Nursing
  Care, Nursing Care, IHC Level A/B, Foster Care, Cerebral Palsy)
- Remove Specialized IHC enum value (not a separate payment category —
  it maps to IHC Level A per 660-2-4-.16)
- Consolidate 6 parameter files into single amount.yaml with breakdown
- Simplify formula from select() to direct parameter lookup

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add 6 integration tests verifying combined SSI + AL SSP amounts match
WorkWorld 2010 data ($674 FBR individual, $1,011 couple). Fix test
naming to follow Case N convention.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@hua7450 hua7450 marked this pull request as ready for review March 25, 2026 22:14
@codecov
Copy link

codecov bot commented Mar 25, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.26%. Comparing base (ac35815) to head (7d5120c).
⚠️ Report is 23 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff             @@
##              main    #7867      +/-   ##
===========================================
- Coverage   100.00%   97.26%   -2.74%     
===========================================
  Files            2        5       +3     
  Lines           32       73      +41     
  Branches         0        2       +2     
===========================================
+ Hits            32       71      +39     
- Misses           0        1       +1     
- Partials         0        1       +1     
Flag Coverage Δ
unittests 97.26% <100.00%> (-2.74%) ⬇️

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 4 commits March 25, 2026 18:57
- Fix parameter `breakdowns` → `breakdown` (singular convention)
- Fix parameter description to standard template wording
- Remove unnecessary inline comments in al_ssp.py
- Add 3 integration edge cases: mixed eligibility couple, mixed
  living arrangements, wrong state
- Renumber WorkWorld cases to 9-14

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…unit_benefits

- Require uncapped_ssi > 0 (actual SSI receipt) in addition to
  is_ssi_eligible (categorical eligibility) per federal SSI rules
- Add test case for SSI-eligible person with income too high
- Remove al_ssp from spm_unit_benefits.py (SSP not aggregated there)

Co-Authored-By: Claude Opus 4.6 (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 Alabama State Supplementary Payment (SSP)

2 participants