Skip to content

Implement Alabama State Supplementary Payment (SSP)#7867

Merged
MaxGhenis merged 11 commits intoPolicyEngine:mainfrom
hua7450:al-ssi-ssp
Mar 27, 2026
Merged

Implement Alabama State Supplementary Payment (SSP)#7867
MaxGhenis merged 11 commits intoPolicyEngine:mainfrom
hua7450:al-ssi-ssp

Conversation

@hua7450
Copy link
Copy Markdown
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
Copy Markdown

codecov bot commented Mar 25, 2026

Codecov Report

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

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

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>
@MaxGhenis
Copy link
Copy Markdown
Contributor

MaxGhenis commented Mar 27, 2026

I pushed follow-up fixes here.

What changed:

  • corrected Alabama SSP eligibility logic and payment amounts
  • included the payment-side fix for the nursing-care amount issue that was called out in review
  • final follow-up was formatting only

Copy link
Copy Markdown
Contributor

@MaxGhenis MaxGhenis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the Alabama SSP follow-up fixes.

@MaxGhenis MaxGhenis merged commit 7150a2d into PolicyEngine:main Mar 27, 2026
8 of 9 checks passed
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