Skip to content

Add Washington State Supplementary Payment (SSP)#8157

Open
hua7450 wants to merge 9 commits intoPolicyEngine:mainfrom
hua7450:wa-ssp
Open

Add Washington State Supplementary Payment (SSP)#8157
hua7450 wants to merge 9 commits intoPolicyEngine:mainfrom
hua7450:wa-ssp

Conversation

@hua7450
Copy link
Copy Markdown
Collaborator

@hua7450 hua7450 commented Apr 25, 2026

Summary

Implements Washington's State Supplementary Payment (SSP) — flat-rate state cash supplement on top of federal SSI for aged, blind, disabled, and ineligible-spouse recipients, plus a separate medical-institution rate.

Closes #1009

Regulatory Authority

Program Overview

  • Administration: State-administered (Washington DSHS — ESA issues via ACES; DDA issues for developmental-disability clients)
  • Funding: State funds only (administration + benefit)
  • Current caseload: 33,308 recipients (Jan 2011, SSA State Assistance Programs report — newer figures unavailable since SSA does not publish for state-administered programs)
  • Enrollment status: Closed to new enrollees as of 2023 except via the DDA Pre-Vocational Legacy (PVL) track

Eligibility

Requirement Source How Modeled
Must be SSI-eligible (categorical) WAC 388-474-0012 is_ssi_eligible
Must actually receive SSI (income test) DSHS ESA Z Manual ssi > 0
Must reside in Washington WAC 388-474-0012 defined_for = StateCode.WA
Must fall in qualifying category WAC 388-474-0012 wa_ssp_payment_category != NONE
Aged 65+ WAC 388-474-0012(3) is_ssi_aged -> STANDARD
Blind WAC 388-474-0012(4) is_blind -> STANDARD
Disabled (only on/after 2023-12-28) WAC 388-474-0012(5), WSR 23-24-009 is_ssi_disabled gated by disabled_category_active parameter -> STANDARD
SSI recipient with ineligible spouse WAC 388-474-0012(2) marital unit has 2 persons and exactly 1 is is_ssi_eligible -> STANDARD
Medical institution resident WAC 388-474-0012(8); WAC 388-478-0055 ssi_federal_living_arrangement == MEDICAL_TREATMENT_FACILITY -> MEDICAL_INSTITUTION
Living arrangement codes A/B/C -> STANDARD; code D -> MEDICAL_INSTITUTION DSHS ESA Z Manual Federal living-arrangement enum routes code D to MEDICAL_INSTITUTION; A/B/C fall through to STANDARD
Grandfathered (MIL) recipients WAC 388-474-0012(1), 388-474-0001 Not modeled (variable per-person amounts $0.54-$199.77 require microdata)
DDA-determined / PVL track WAC 388-474-0012(6) Not modeled (discretionary determination, no DDA status input)
Foster child in BRS WAC 388-474-0012(7) Not modeled (narrow population, no CPS proxy)

Benefit Amounts (WAC 388-478-0055)

Category Effective Monthly Amount Source
Standard (aged/blind/disabled/ineligible-spouse) 2006-08-28 $46.00 WSR 06-16-071
Standard 2013-12-01 $40.00 WSR 13-22-037
Standard 2021-01-01 $38.25 WSR 20-23-053
Standard 2024-04-01 $35.50 WSR 24-06-025
Medical institution 2006-08-28 $23.68 WSR 06-16-071
Medical institution 2007-11-26 $25.45 WSR 07-22-022
Medical institution 2008-09-01 $27.28 WSR 08-16-067
Medical institution 2019-01-01 $40.00 WSR 18-24-032
Medical institution 2023-12-28 $70.00 WSR 23-24-009 (HB 1128 institutional PNA increase)

Couple treatment: individual rate per person — no couple reduction; each eligible spouse independently receives the per-category rate (confirmed by SSA 2011 State Assistance Programs report Table 1 for Washington).

COLA: medical-institution rate is subject to annual COLA from 2024 forward per WAC 388-478-0055; standard rate has historically been adjusted (often reduced) under WAC 388-478-0057 to keep total SSP spending flat as caseload grows. Future increases require parameter updates as DSHS publishes new WSR amendments.

Not Modeled (by design)

What Source Why Excluded
Grandfathered (MIL) recipients and variable rate $0.54-$199.77 WAC 388-474-0012(1), 388-474-0001, 388-478-0055 Variable per-person amounts set per individual based on 1974 grandfather amount; we don't track 1973/1974 enrollment or per-person grandfather amounts at the moment
DDA-determined / PVL track eligibility WAC 388-474-0012(6) Discretionary determination requiring DDA caseload, prevocational-exit history, and residential-service status; we don't track DDA status at the moment
Foster child in Children's Administration BRS WAC 388-474-0012(7) Narrow population not identified in CPS
Special Needs payments (guide dog, restaurant meals, laundry, telephone, home-delivered meals) DSHS ESA Manual / SSA 2011 report Separate ESA/DEAP program, situational, not part of WAC 388-478-0055
POMS SI 01210.620 blind income disregards https://secure.ssa.gov/apps10/poms.nsf/lnx/0501210620 Handled upstream by federal SSI; WA SSP rate is independent of income
2023 closed-to-new-enrollees freeze WAC 388-474-0012 (2023 amendment context) We don't track enrollment date at the moment, so the model treats anyone meeting categorical criteria as eligible — overstates true post-2023 caseload

Files

policyengine_us/parameters/gov/states/wa/dshs/ssp/
  amount.yaml
  eligibility/disabled_category/in_effect.yaml

policyengine_us/variables/gov/states/wa/dshs/ssp/
  wa_ssp.py
  wa_ssp_payment_category.py

policyengine_us/tests/policy/baseline/gov/states/wa/dshs/ssp/
  wa_ssp.yaml
  wa_ssp_payment_category.yaml
  integration.yaml
  edge_cases.yaml

Also modified:

  • policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py (added wa_ssp to BENEFITS)
  • policyengine_us/parameters/gov/household/household_state_benefits.yaml (added wa_ssp in 2023 and 2024 sections)
  • policyengine_us/programs.yaml (added WA entry under ssi_state_supplement.state_implementations)

Verification TODO

  • Verify payment amounts against WAC 388-478-0055 amendment history (WSRs 06-16-071, 07-22-022, 08-16-067, 13-22-037, 18-24-032, 20-23-053, 23-24-009, 24-06-025)
  • Verify eligibility logic against WAC 388-474-0012 (especially the 2023-12-28 addition of disabled and medical-institution categories per WSR 23-24-009)
  • Verify amounts current as of 2017-2025 with focus on the 2019, 2021, 2023-12, and 2024-04 transitions
  • CI passes

Test plan

  • Unit tests for wa_ssp amount by category and date (wa_ssp.yaml)
  • Unit tests for wa_ssp_payment_category derivation across all categories and pre/post-2023-12-28 disabled gating (wa_ssp_payment_category.yaml)
  • Integration tests covering the 8 required scenarios — aged, blind, disabled (post-2023), ineligible-spouse, aged couple, medical institution, wrong-state, historical 2010 and 2020 rates (integration.yaml)
  • Edge-case tests covering disabled-only pre/post-2023-12-28, historical rate transitions, medical-institution couple, non-WA state, ineligible-spouse pairing, and SSI-eligible-but-not-receiving (edge_cases.yaml)
  • CI passes

Requirements Coverage

REQ Description Param Variable Test
REQ-001 Defined for State Code WA n/a wa_ssp.py, wa_ssp_payment_category.py (defined_for=StateCode.WA) integration.yaml Case 8; edge_cases.yaml Case 12
REQ-002 Person must be SSI-eligible n/a wa_ssp_payment_category.py (is_ssi_eligible) wa_ssp_payment_category.yaml "Not SSI eligible -> NONE"
REQ-003 Person must actually receive SSI (ssi > 0) n/a wa_ssp_payment_category.py (person("ssi", period) > 0) wa_ssp_payment_category.yaml "SSI eligible but not actually receiving SSI"; edge_cases.yaml Case 11
REQ-004 Must fall in qualifying category n/a wa_ssp_payment_category.py select branches wa_ssp_payment_category.yaml (all categories)
REQ-005 Aged 65+ -> STANDARD n/a wa_ssp_payment_category.py (is_ssi_aged) wa_ssp_payment_category.yaml "Aged SSI recipient -> STANDARD"; integration.yaml Case 1
REQ-006 Blind -> STANDARD n/a wa_ssp_payment_category.py (is_blind) wa_ssp_payment_category.yaml "Blind -> STANDARD"; integration.yaml Case 2
REQ-007 Disabled -> STANDARD on/after 2023-12-28 eligibility/disabled_category/in_effect.yaml (false -> true 2023-12-28) wa_ssp_payment_category.py (gated is_ssi_disabled) wa_ssp_payment_category.yaml "Disabled-only before/after 2023-12-28"; integration.yaml Cases 3+4; edge_cases.yaml Cases 1+2
REQ-008 SSI recipient with ineligible spouse -> STANDARD n/a wa_ssp_payment_category.py (marital_unit detection) wa_ssp_payment_category.yaml "ineligible spouse -> STANDARD"; integration.yaml Case 4; edge_cases.yaml Case 10
REQ-009 Medical institution resident -> MEDICAL_INSTITUTION n/a wa_ssp_payment_category.py (ssi_federal_living_arrangement == MEDICAL_TREATMENT_FACILITY) wa_ssp_payment_category.yaml "medical institution"; integration.yaml Case 6; edge_cases.yaml Cases 5/6/8/13/14/15
REQ-013 Standard rate by date (46 -> 40 -> 38.25 -> 35.50) amount.yaml STANDARD breakpoints wa_ssp.py formula wa_ssp.yaml; edge_cases.yaml Cases 3/4/7
REQ-014 Medical-institution rate by date (23.68 -> 25.45 -> 27.28 -> 40 -> 70) amount.yaml MEDICAL_INSTITUTION breakpoints wa_ssp.py formula wa_ssp.yaml; edge_cases.yaml Cases 5/6/13/14/15
REQ-016 No couple rate; per-person individual rate amount.yaml (single per-category rate) wa_ssp.py (no couple aggregation) edge_cases.yaml Case 9; integration.yaml Case 5
REQ-017 Ineligible spouse receives $0 n/a Falls out via is_ssi_eligible == False -> NONE category wa_ssp_payment_category.yaml "ineligible spouse" output [STANDARD, NONE]
REQ-018 Living arrangement codes A/B/C -> STANDARD; D -> MEDICAL_INSTITUTION n/a wa_ssp_payment_category.py via ssi_federal_living_arrangement enum wa_ssp_payment_category.yaml; edge_cases.yaml medical-institution cases
REQ-021 Core variables definition_period = MONTH amount.yaml period: month wa_ssp.py, wa_ssp_payment_category.py (MONTH) All tests use period: YYYY-MM
REQ-022 wa_ssp in spm_unit_benefits.py BENEFITS n/a spm_unit_benefits.py BENEFITS list Integration via SPM-unit benefit aggregation
REQ-023 wa_ssp in household_state_benefits.yaml (2023 + 2024) household_state_benefits.yaml 2023 + 2024 sections n/a n/a
REQ-024 WA in programs.yaml ssi_state_supplement.state_implementations programs.yaml (status: complete) n/a n/a

Historical Notes

Standard-rate timeline (per WAC 388-478-0055 amendment history):

              Standard      Medical-inst.    WSR
2006-08-28    $46.00        $23.68           06-16-071
2007-11-26    $46.00        $25.45           07-22-022
2008-09-01    $46.00        $27.28           08-16-067
2013-12-01    $40.00        $27.28           13-22-037
2019-01-01    $40.00        $40.00           18-24-032   <- HB-era institutional rate raise
2021-01-01    $38.25        $40.00           20-23-053   <- standard reduced (388-478-0057 mechanism)
2023-12-28    $38.25        $70.00           23-24-009   <- HB 1128 institutional PNA increase + disabled/medical-institution categories added
2024-04-01    $35.50        $70.00           24-06-025   <- standard reduced again; medical-institution rate begins annual COLA

Notes:

  • Standard-rate decreases are intentional: WAC 388-478-0057 (https://app.leg.wa.gov/wac/default.aspx?cite=388-478-0057) authorizes DSHS to reduce SSP rates at end of calendar year to keep total SSP spending flat as caseload grows. The 2021-01-01 reduction from $40 to $38.25 and the 2024-04-01 reduction from $38.25 to $35.50 both reflect this counter-cyclical mechanism, not a coding error.
  • 2023-12-28 amendment (WSR 23-24-009): added "disabled" as a standalone qualifying category and added "medical institution resident" as a standalone category in WAC 388-474-0012. The model gates the disabled category via the eligibility/disabled_category/in_effect.yaml parameter so pre-2023-12-28 periods correctly exclude disabled-only recipients. Medical-institution residents existed in WAC 388-478-0055 since at least 2006-08-28 (WSR 06-16-071), so the rate parameter is dated from that point.
  • HB 1128 (2023 c 201): drove the institutional-PNA increase from $40 to $70 effective 2023-12-28.
  • No SSA factsheet (EN-05-11XXX): WA is state-administered, so SSA does not publish a combined federal+state factsheet. Historical caseload corroboration draws from the SSA 2011 State Assistance Programs report (Washington), the most recent published.

hua7450 and others added 3 commits April 25, 2026 19:00
Closes PolicyEngine#1009

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
State Supplementary Payment for SSI recipients in Washington (DSHS,
state-administered). Two-rate flat structure: STANDARD ($35.50 since
2024-04-01) for aged/blind/disabled/ineligible-spouse, MEDICAL_INSTITUTION
($70 since 2023-12-28) for Title XIX residents.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.88%. Comparing base (20705b0) to head (451a08d).
⚠️ Report is 34 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8157      +/-   ##
==========================================
+ Coverage   85.36%   88.88%   +3.52%     
==========================================
  Files           3        3              
  Lines          41       54      +13     
  Branches        2        2              
==========================================
+ Hits           35       48      +13     
  Misses          6        6              
Flag Coverage Δ
unittests 88.88% <100.00%> (+3.52%) ⬆️

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 5 commits April 25, 2026 20:13
- Backdate $70 medical-institution rate from 2023-12-28 to 2023-07-01
  (operational date per emergency rule WSR 23-14-065, driven by HB 1128;
  WSR 23-24-009 is the permanent codification at 2023-12-28).
- Correct subsection citation in disabled_category/in_effect.yaml from
  WAC 388-474-0012(5) to (2)(e) — the rule has only top-level (1) and (2)
  with categories at (2)(a)-(h).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Backdate disabled-category in_effect from 2023-12-28 to 2023-07-01 to
match the medical-institution rate backdate from round 1. WSR 23-14-065
(emergency, eff. 2023-07-01) added the (2)(e) standalone disabled
qualifying category and the (2)(h) medical-institution category in the
same rule that raised the medical-institution rate per HB 1128. Round 1
applied the backdate to amount.yaml but missed in_effect.yaml.

Also update the stale (5) subsection comment in wa_ssp_payment_category.py
to (2)(e) so it matches the corrected parameter citation.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Captures generalized rules from /encode-policy-v2 run for WA SSP:
- Emergency vs permanent WSR effective dates
- Subsection citation verification against rule structure
- Holistic backdate application across related parameters
- Cross-reference alignment when fixing citations

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The medical institution rate has annual COLA from 2024-01-01 forward
(73.20 in 2024, 75.78 in 2025, 78.74 in 2026). Update Case 8 in
edge_cases.yaml and Case 6 in integration.yaml to expect 75.78 at
2025-01 instead of the pre-COLA 70 value.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hua7450 hua7450 marked this pull request as ready for review April 26, 2026 21:21
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.

Washington State Supplementary Payment

1 participant