Skip to content

Implement Alaska State Supplementary Payment (SSP)#7873

Merged
MaxGhenis merged 12 commits intoPolicyEngine:mainfrom
hua7450:ak-ssp
Mar 27, 2026
Merged

Implement Alaska State Supplementary Payment (SSP)#7873
MaxGhenis merged 12 commits intoPolicyEngine:mainfrom
hua7450:ak-ssp

Conversation

@hua7450
Copy link
Copy Markdown
Collaborator

@hua7450 hua7450 commented Mar 25, 2026

Summary

Implements Alaska's State Supplementary Payment (SSP) -- the state supplement to federal SSI, administered as Adult Public Assistance (APA) by the Division of Public Assistance (DPA).

Closes #7872

Regulatory Authority

Program Overview

  • Administration: State-administered (Alaska Department of Health, Division of Public Assistance)
  • Funding: State funds
  • Current caseload: 17,630 recipients (January 2011, SSA report)
  • Expenditures: $55,946,103 (calendar year 2010)

Eligibility

Requirement Source How Modeled
Must be SSI-eligible (aged 65+, blind, or disabled; meets income/resource tests) SSA report p.1; AS 47.25.430 is_ssi_eligible
Must be age 18 or older (children excluded from APA) SSA report p.1 age >= age_threshold (parameter: eligibility/age_threshold, 18 since 1974)
Must reside in Alaska State program defined_for = StateCode.AK

Benefit Amounts (SSA report Table 1; APA Standards 2023-2026)

Independent Living (Type A)

Category Monthly Amount (2011-present)
Individual $362
Couple, both eligible $528
Couple, one eligible $521

Type A amounts are constant across all years (state supplements stay fixed as federal COLA applies equally to both the federal benefit and the APA need standard).

Household of Another (Type B)

Category Monthly Amount
Individual $368 (2011); $367.66 (2023); $368.33 (2024)
Couple, both eligible $543 (2011); $542.66 (2024); $543.33 (2025); $543 (2026)
Couple, one eligible $464 (2011); $463.66 (2023); $464.33 (2024)

Type B amounts show rounding variations of +/- $0.34 across years because the Type B payment standard = (2/3 of federal benefit rate + state supplement), where the 2/3 factor introduces fractional cents.

Assisted Living (ALH)

Category Monthly Amount (2011-present)
Individual $100
Couple, both eligible $200
Couple, one eligible $100

Medicaid Facility / Nursing Home Personal Needs (NHP)

Category Monthly Amount
Individual $45 (2011-2016); $170 (2017+)
Couple, both eligible $90 (2011-2016); $340 (2017+)
Couple, one eligible $45 (2011-2016); $170 (2017+)

NHP rate change: Nursing home personal needs allowance increased from $45 to $170/month effective 2017 (nearly 4x increase).

Couple treatment: Joint claims split evenly per APA Manual 452-8. Implemented via marital_unit.sum(supplement) / 2.

COLA: APA standards increase by the same dollar amount as the federal SSI COLA, keeping state supplements constant (except Type B rounding variations and the NHP increase in 2017).

Income Reduction Logic

The state supplement is reduced dollar-for-dollar by income that exceeds the federal SSI benefit level. This is computed using uncapped_ssi (which can be negative when countable income exceeds the SSI benefit):

  • income_excess = max(0, -uncapped_ssi)
  • state_supplement = max(0, payment_standard - income_excess)

This correctly handles the "gap zone" where a person's income is too high for federal SSI but still below the APA need standard.

Not Modeled (by design)

What Source Why Excluded
Pioneer Home / institution exclusion SSA report No input variable tracks Pioneer Home residency
Disabled Kids at Home (waiver category) APA Standards PDF Waiver-specific; children excluded from APA by age requirement
Waiver recipients (ASL, WAV) APA Manual 452 Waiver participation not tracked as input variable
Nursing Home Regular (NHR), NH 300% (NH3) APA Manual 452 Separate nursing home payment categories beyond standard NHP
In-kind income exclusion SSA report Federal SSI income counting already handles this
Non-SSI APA recipients APA Manual 452-2 People with income between SSI threshold and APA need standard -- requires separate income test not yet in model
$1/month minimum benefit for pre-2020 gap zone APA Manual 452 Edge case for gap zone recipients
Ineligible spouse budgeting exception APA Manual 452-2 Rare exception to standard deeming

Files

policyengine_us/parameters/gov/states/ak/dpa/ssp/
  eligibility/age_threshold.yaml    # Age 18+ since 1974
  payment_standard.yaml             # Supplement amounts by living arrangement x claim type (2011-2026)

policyengine_us/variables/gov/states/ak/dpa/ssp/
  ak_ssp.py                         # Main benefit variable (income reduction + joint claim splitting)
  ak_ssp_eligible.py                # Eligibility: is_ssi_eligible & age >= 18
  ak_ssp_living_arrangement.py      # Enum: INDEPENDENT, HOUSEHOLD_OF_ANOTHER, ASSISTED_LIVING, MEDICAID_FACILITY
  ak_ssp_claim_type.py              # Enum: INDIVIDUAL, COUPLE_BOTH_ELIGIBLE, COUPLE_ONE_ELIGIBLE
  ak_ssp_payment_standard.py        # Lookup: payment_standard[living_arrangement][claim_type] * 12

policyengine_us/tests/policy/baseline/gov/states/ak/dpa/ssp/
  ak_ssp.yaml                       # 8 unit tests (benefit formula)
  ak_ssp_eligible.yaml              # 7 unit tests (eligibility)
  ak_ssp_payment_standard.yaml      # 15 unit tests (all arrangement x claim type combos + NHP rate change)
  ak_ssp_claim_type.yaml            # 4 unit tests (claim type derivation)
  integration.yaml                  # 13 integration tests (end-to-end with full entity structure)

Verification TODO

Test plan

  • 47 tests pass (8 benefit + 7 eligibility + 15 payment standard + 4 claim type + 13 integration)
  • CI passes

hua7450 and others added 3 commits March 25, 2026 18:59
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 25, 2026

Codecov Report

❌ Patch coverage is 73.68421% with 25 lines in your changes missing coverage. Please review.
✅ Project coverage is 70.98%. Comparing base (ac35815) to head (63da80c).
⚠️ Report is 45 commits behind head on main.

Files with missing lines Patch % Lines
...us/variables/gov/ssa/ssi/ssi_amount_if_eligible.py 0.00% 7 Missing ⚠️
...s/gov/states/ak/dpa/ssp/ak_ssp_payment_standard.py 62.50% 6 Missing ⚠️
...ngine_us/variables/gov/states/ak/dpa/ssp/ak_ssp.py 68.75% 5 Missing ⚠️
...riables/gov/states/ak/dpa/ssp/ak_ssp_claim_type.py 75.00% 5 Missing ⚠️
...variables/gov/states/ak/dpa/ssp/ak_ssp_eligible.py 81.81% 2 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##              main    #7873       +/-   ##
============================================
- Coverage   100.00%   70.98%   -29.02%     
============================================
  Files            2     4109     +4107     
  Lines           32    59411    +59379     
  Branches         0      290      +290     
============================================
+ Hits            32    42170    +42138     
- Misses           0    17240    +17240     
- Partials         0        1        +1     
Flag Coverage Δ
unittests 70.98% <73.68%> (-29.02%) ⬇️

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 6 commits March 25, 2026 20:06
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Backdate payment_standard.yaml with 2017-2026 supplements
- Fix NHP (Eligible Institution) supplement: $45 (2011) → $170 (2017+)
- Add need_standard.yaml (pre-2020 income eligibility threshold)
- Add separate_need_standard_in_effect toggle (true pre-2020, false 2020+)
- Add min_benefit.yaml ($1/mo minimum for gap zone)
- Update ak_ssp.py with two-step eligibility/payment logic
- Fix broken reference URLs
- Add 6 new tests for need standard logic

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The $1/month minimum benefit for the pre-2020 gap zone (income between
payment standard and need standard) affects a tiny population for a
trivial amount. Removing the need_standard, separate_need_standard_in_effect,
and min_benefit parameters simplifies the formula without meaningful
impact on simulation accuracy.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 3 new payment_standard tests for Medicaid facility post-2017 rates
- 1 new integration test for couple-both-eligible end-to-end

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Type B (household of another) supplements had sub-dollar rounding
variations (±$0.34) from the 2/3 SSI reduction. Rounding to nearest
dollar makes all supplements constant since 2011, matching what
Alaska actually pays.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@hua7450 hua7450 marked this pull request as ready for review March 26, 2026 02:12
@MaxGhenis
Copy link
Copy Markdown
Contributor

MaxGhenis commented Mar 27, 2026

I pushed follow-up fixes here.

What changed:

  • corrected the Alaska SSP payment logic so the supplement is computed on the right base amount
  • fixed the claim-type logic for one-eligible-couple cases
  • 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 Alaska SSP follow-up fixes.

@MaxGhenis MaxGhenis merged commit 3f4e73d into PolicyEngine:main Mar 27, 2026
6 of 7 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 Alaska State Supplementary Payment (SSP)

2 participants