Skip to content

Implement Iowa State Supplementary Payment (SSP)#8017

Draft
hua7450 wants to merge 2 commits intoPolicyEngine:mainfrom
hua7450:ia-ssp
Draft

Implement Iowa State Supplementary Payment (SSP)#8017
hua7450 wants to merge 2 commits intoPolicyEngine:mainfrom
hua7450:ia-ssp

Conversation

@hua7450
Copy link
Copy Markdown
Collaborator

@hua7450 hua7450 commented Apr 16, 2026

Summary

Implements Iowa's State Supplementary Assistance (SSA) — a state SSI supplement program administered by Iowa Department of Health and Human Services (HHS) under Iowa Code Chapter 249. SSA provides six modeled supplement categories (Blind, Dependent Person, Family-Life Home, In-Home Health-Related Care, Residential Care Facility, and Supplement for Medicare and Medicaid Eligibles) for low-income aged, blind, and disabled Iowans who receive or would receive federal SSI.

Closes #7733

Regulatory Authority

Program Overview

  • Administration: Dual — federal SSA administers Mandatory, Blind, DP, and FLH categories; Iowa HHS administers RCF, IHHRC, and SMME.
  • Funding: State funds (supplement paid on top of federal SSI).
  • Agency: Iowa Department of Health and Human Services (HHS, formerly DHS; reorganized 2023).
  • Statutory name in code: ia_ssa (SSA = State Supplementary Assistance per Iowa Code Ch 249 title; "SSP" is colloquial only).
  • Current caseload: 5,281 recipients in 2011 per SSA State Assistance Programs report (last year SSA published state-level counts).

Six Modeled Supplement Categories

Category Type Amount Source
Blind Flat $22/month IAC 441—52.1(4)
Dependent Person (DP) Income-difference, 5 configs $1,470–$3,031/month standard (2025–2026) IAC 441—52.1(2)
Family-Life Home (FLH) Income-difference Standard $1,129 (2025) / $1,156 (2026); max supplement $142 IAC 441—52.1(1)
In-Home HRC (IHHRC) Cost-based (capped) $480.55 single / $961.10 couple per month IAC 441—177.4(1)(f)
Residential Care (RCF) Cost-based per-diem $37.60/day (2025) / $38.47/day (2026) × 31 IAC 441—52.1(3)
SMME Flat $1/month IAC 441—52.1(7)

Category priority (highest to lowest, enforced in ia_ssa_category): RCF → IHHRC → FLH → DP → Blind → SMME → NONE.

Eligibility

Requirement Source How Modeled
Must be SSI-eligible (aged/blind/disabled, resources, immigration) Iowa Code §249.3; IAC 441—51.1 is_ssi_eligible
Must receive SSI or be income-eligible but-for excess income Iowa Code §249.3(2), §249.3(3) income-difference formulas using uncapped_ssi
Must reside in Iowa IAC 441—51.6 defined_for = StateCode.IA
Resources ≤ $2,000 individual / $3,000 couple 6-B manual p.2 federal SSI resources/limit (identical limits)
Category-specific living arrangement / demographic per category rule input booleans (resides in FLH/RCF, needs IHHRC, has dependent, has full Medicaid + Part B)

Benefit Amounts (Iowa HHS SSA page + 6-B manual)

Blind — IAC 441—52.1(4)

Period Amount
2017-07-01+ $22/month (frozen in IAC rule text)

Dependent Person — IAC 441—52.1(2), 6-B manual p.16–26, Iowa HHS 2026 page

Configuration 2025 Standard 2026 Standard
Aged/disabled client + dependent $1,470 $1,512
Aged/disabled client + A/D spouse + dependent $1,953 $2,009
Blind client + dependent $1,492 $1,534
Blind client + A/D spouse + dependent $1,975 $3,031 ⚠ see verification TODO
Blind client + blind spouse + dependent $1,997 $2,053
Max per-person payment cap $503 $518
Dependent's countable income limit $503 $518

Family-Life Home — IAC 441—52.1(1), 6-B manual p.26

Component 2025 2026
Assistance standard (total) $1,129 $1,156
Personal needs allowance $126 $130
Max supplement (caps at $142, not $162, to offset SSI $20 disregard) $142 $142

In-Home Health-Related Care — IAC 441—177.4(1)(f) (frozen)

Component Amount
Max cost-of-care single $480.55/month
Max cost-of-care couple (both need care) $961.10/month

Residential Care Facility — IAC 441—52.1(3), IL 2024-12-30

Component 2025 2026
Max cost-related per diem $37.60/day $38.47/day
Personal needs allowance $126 $130
Days multiplier 31 31

SMME — IAC 441—52.1(7) (frozen)

Component Amount
Supplement $1/month (paid quarterly, modeled as $1/month)

Couple treatment: DP and FLH use per-couple configurations with both spouses eligible; RCF/IHHRC use per-person cost caps; Blind/SMME use individual flat amounts.

COLA: Annual, effective January 1, per IAC 441—52.1 introductory text and Iowa Code §249.9A (for RCF PNA, new in 2024). Blind ($22), IHHRC caps ($480.55/$961.10), and SMME ($1) are frozen in IAC rule text (no COLA).

Not Modeled (by design)

What Source Why Excluded
Mandatory State Supplement (MSS) Iowa Code §249.3(1); IAC 441—52.1(6) Closed December 1973 grandfather cohort; no input data in PolicyEngine
SMME SGA test IAC 441—51.7 SGA not modeled in PolicyEngine
Physician certification for IHHRC (Form 470-0673) IAC 441—177.6 Administrative verification
IHHRC 5-step disregard cascade (unmet medical needs) IAC 441—177.4(1)(f) uncapped_ssi > 0 proxy covers federal SSI disregards; state-specific unmet-medical disregards require inputs not in PolicyEngine
RCF pre-2017-07-01 flat $17.86/day branch IAC 441—52.1(3) Outside historical scope; program coverage starts 2017-07-01
Apply-for-other-benefits rule IAC 441—51.2 Administrative
SSN requirement IAC 441—51.9 Administrative
SMME income band (120% FPL to Medicaid limit) Iowa Code §249.3(4); IAC 441—51.7 Iowa Medicaid income-limit variable not available
IHHRC home maintenance allowances ($967/$1,450/$483) 6-B manual p.32 Equal federal SSI FBR — already handled by federal SSI calc
2012-2023 historical rate separate entries N/A Not separately verifiable — Wayback snapshots of Iowa HHS rates page return 404 for those years; values carry from 2017-07-01 entry via PolicyEngine date-carry

Files

policyengine_us/parameters/gov/states/ia/hhs/ssa/
  blind.yaml
  smme.yaml
  dp/
    assistance_standard.yaml       # breakdown by ia_ssa_dp_configuration enum
    dependent_income_limit.yaml
    max_per_person_cap.yaml
  flh/
    assistance_standard.yaml
    max_supplement.yaml
    personal_needs_allowance.yaml
  ihhrc/
    max_cost_single.yaml
    max_cost_couple.yaml
  rcf/
    days_multiplier.yaml
    max_per_diem.yaml
    personal_needs_allowance.yaml

policyengine_us/variables/gov/states/ia/hhs/ssa/
  ia_ssa.py
  ia_ssa_eligible.py
  ia_ssa_category.py
  ia_ssa_resources_eligible.py
  ia_ssa_blind_supplement.py
  dp/
    ia_ssa_dp_configuration.py
    ia_ssa_dp_supplement.py
    ia_ssa_dp_has_eligible_dependent.py
    ia_ssa_dp_dependent_countable_income.py
  flh/
    ia_ssa_flh_supplement.py
    ia_ssa_resides_in_family_life_home.py
  ihhrc/
    ia_ssa_ihhrc_supplement.py
    ia_ssa_ihhrc_cost_of_care.py
    ia_ssa_needs_in_home_health_related_care.py
  rcf/
    ia_ssa_rcf_supplement.py
    ia_ssa_rcf_cost_per_diem.py
    ia_ssa_resides_in_residential_care_facility.py
  smme/
    ia_ssa_smme_supplement.py
    ia_ssa_smme_eligible.py
    ia_ssa_has_full_medicaid.py
    ia_ssa_has_medicare_part_b.py

policyengine_us/tests/policy/baseline/gov/states/ia/hhs/ssa/
  (15 YAML test files covering 51 test cases — unit per category, integration with real income, category priority, transition boundaries, historical effective date)

policyengine_us/parameters/gov/household/household_state_benefits.yaml   [modified: adds ia_ssa to 2023 and 2024 date entries]
policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py [modified: adds ia_ssa to BENEFITS list]
changelog.d/ia-ssp.added.md

Historical Coverage

Parameters start at 2017-07-01 — the statutory effective date when IAC 441—52.1(3) removed the RCF flat-per-diem option and moved to cost-related-only reimbursement, aligning the entire program implementation with the post-2017 regulatory regime.

The 2017-07-01 entry uses the earliest-verified Iowa HHS rates (the 2024-published values preserved in the 6-B manual and Wayback snapshots). PolicyEngine date-carry applies these values to 2017-2023 simulations. Updates are added at 2025-01-01 and 2026-01-01 where rates change. This approach follows agent-lessons guidance against encoding unverified historical values.

2012-2016 and pre-2017 rates are not encoded — Wayback snapshots of the Iowa DHS SSA page return 404 for those years, and SSA stopped publishing state-by-state SSP reports after 2011. Future PRs may backdate if Iowa HHS provides historical records.

2026 DP Typo Verification Note

The 2026 DP configuration (d) "Blind Client + Aged/Disabled Spouse + Dependent Relative" shows $3,031 on the Iowa HHS SSA page — a 53% jump from 2025's $1,975, while all other 2026 DP values reflect a ~2.8% COLA (expected ~$2,031). Per user scope decision, the $3,031 value is encoded as published, with a YAML comment flagging the suspected transposition typo. Reviewer action: verify against Iowa HHS bulletin before final merge.

Verification TODO

  • Verify 2026 DP config (d) "Blind + A/D spouse + dep" value ($3,031 as published vs expected ~$2,031 by COLA)
  • Verify 6-B manual rate amounts against Iowa HHS bulletin for 2025 and 2026
  • Consider backdating parameters to 2012-2023 if Iowa HHS can provide historical rate records
  • CI passes

Test plan

  • 51 tests pass across 15 YAML files — unit tests per category, integration tests with real social_security/employment_income inputs (not bypassing federal SSI), category priority tests, 2024→2025 and 2025→2026 transition boundary tests, 2017-07-01 effective-date test
  • CI passes

Key Citations

hua7450 added 2 commits April 16, 2026 12:59
Adds Iowa SSA (Iowa Code Ch 249; IAC 441 Chs 50-52, 54, 177) covering:
- Blind supplement (flat $22/month)
- Dependent Person (DP) supplement (5 household configurations)
- Family-Life Home (FLH) supplement (max $142/month)
- In-Home Health-Related Care (IHHRC) supplement (cost-based, max $480.55/$961.10)
- Residential Care Facility (RCF) supplement (cost-related per diem)
- Supplement for Medicare and Medicaid Eligibles (SMME) (flat $1/month)

Closes PolicyEngine#7733
@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 98.02%. Comparing base (46eaaf1) to head (1c921b4).
⚠️ Report is 36 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8017      +/-   ##
==========================================
+ Coverage   94.82%   98.02%   +3.19%     
==========================================
  Files           5       22      +17     
  Lines          58      304     +246     
  Branches        2        2              
==========================================
+ Hits           55      298     +243     
- Misses          1        6       +5     
+ Partials        2        0       -2     
Flag Coverage Δ
unittests 98.02% <100.00%> (+3.19%) ⬆️

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.

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 Iowa State Supplemental Payment (SSP)

1 participant