Skip to content

Add WA SFA, WA RCA, and federal 5-year bar; fix WA TANF countable-income test#8151

Open
hua7450 wants to merge 9 commits intoPolicyEngine:mainfrom
hua7450:wa-rca-tanf-fixes
Open

Add WA SFA, WA RCA, and federal 5-year bar; fix WA TANF countable-income test#8151
hua7450 wants to merge 9 commits intoPolicyEngine:mainfrom
hua7450:wa-rca-tanf-fixes

Conversation

@hua7450
Copy link
Copy Markdown
Collaborator

@hua7450 hua7450 commented Apr 24, 2026

Summary

Implements two new Washington State cash assistance programs alongside fixes to the existing WA TANF implementation:

  • WA State Family Assistance (SFA) — state-funded cash assistance for families ineligible for federal TANF. Two pathways modeled: qualified aliens still in the 5-year bar (WAC 388-400-0010(2)(a)) and 19–20 year old students plus their caretaker relatives (WAC 388-400-0010(2)(c)–(d), WAC 388-404-0005(3)(b)).
  • WA Refugee Cash Assistance (RCA) — federally-funded cash assistance for refugees, asylees, Cuban/Haitian entrants, those granted withholding of deportation, conditional entrants, and humanitarian parolees, within the 12-month ORR window (45 CFR 400.211) and disqualified when TANF or SFA applies (45 CFR 400.47).
  • Federal 5-year bar on TANF (8 USC 1613) — new years_since_us_entry person-level input, federal parameters for the bar duration and statutory exemptions, and a wa_tanf_immigration_status_eligible variable applying the bar to Washington TANF.
  • Humanitarian-parolee routingPAROLED_ONE_YEAR is treated as TANF-bar-exempt to cover Afghan (P.L. 117-43) and Ukrainian (P.L. 117-128) humanitarian parolees, who are statutorily treated as refugees for federal benefit purposes. The PE enum doesn't distinguish those populations from other INA 212(d)(5) parolees, so this over-grants the bar exemption to a small population of non-humanitarian parolees — disclosed inline.
  • API-partner overridewa_show_all_cash_assistance_programs (SPM-unit bool) bypasses immigration gates and the TANF/SFA/RCA mutex so consumers can display all three programs side-by-side. Demographic, income, and resource tests still apply.
  • Fix: wa_tanf_income_eligible now also enforces WAC 388-450-0162 (countable income must be strictly below the payment standard). The prior implementation only checked the WAC 388-478-0035 applicant gross-earned-income cap, which let households with high unearned income pass eligibility.

Shared parameters

SFA and RCA reuse wa_tanf_payment_standard, wa_tanf_countable_income, wa_tanf_countable_earned_income, and wa_tanf_resources_eligible — consistent with WAC 388-478-0020 and 388-478-0035, which publish a single table for TANF, SFA, and RCA.

Eligibility gates

Status / household WA TANF WA SFA WA RCA
Citizen family with child yes no no
LPR past 5-year bar with child yes no no
LPR in 5-year bar with child no yes no
Refugee / asylee / CHE / DW / CE family with child (within window) yes no no (TANF wins via 45 CFR 400.47)
Single refugee adult, within 12-month ORR window no no yes
Single refugee adult, past 12-month ORR window no no no
Humanitarian parolee (PAROLED_ONE_YEAR) family with child yes no no
Citizen single mom + 19-year-old high school senior no (over age) yes (student pathway) no
Undocumented / DACA / TPS no no no

Not modeled (documented in code)

  • 60-month state/federal TANF time limit (WAC 388-484-0005) — consistent with existing PolicyEngine behavior across other state TANF programs.
  • TANF sanctions and noncompliance disqualifications for RCA (WAC 388-400-0030(2)(b)) and full-time higher-ed students (WAC 388-400-0030(2)(c)) — require sanction/enrollment data not tracked.
  • Other SFA pathways — nonqualified aliens meeting WA residency (WAC 388-400-0010(2)(b)), T/U-visa and VAWA crime survivors (2)(f), pregnant women convicted of multi-state fraud (2)(e), and the discretionary two-parent provision (3) — not tracked.
  • WAC 388-404-0005(3)(a) disability + special-education sub-pathway — students still in K-12 special education at ages 19–20 are typically captured by is_in_secondary_school.
  • Mixed-status assistance unit composition (WAC 388-450-0210) — PE grants the full SPM-unit payment standard rather than the smaller AU payment standard for child-only cases. Cross-cutting limitation; affects all 50 state TANF programs.

Registry updates

  • spm_unit_benefits sums the two new programs alongside TANF.
  • household_state_benefits.yaml includes the WA entries under 2023-01-01 and 2024-01-01.
  • programs.yaml is not updated in this PR; SFA/RCA still have documented coverage gaps and would warrant status: partial rather than complete. Will be added in a follow-up.

Regulatory authority

  • WA TANF immigration: WAC 388-424-0006, WAC 388-424-0010, 8 USC 1613
  • WA TANF countable income test: WAC 388-450-0162
  • WA SFA: WAC 388-400-0010, WAC 388-424-0015, WAC 388-404-0005, RCW 74.08A.010
  • WA RCA: WAC 388-400-0030, WAC 388-466-0120, 8 USC 1522, 45 CFR 400.47, 45 CFR 400.211
  • Federal 5-year bar: 8 USC 1613(a) and (b)(1) exemptions
  • Humanitarian parolees: P.L. 117-43 (Afghan), P.L. 117-128 (Ukrainian)

Microsim note

years_since_us_entry defaults to 5 and has no CPS imputation. With microsim defaults (immigration_status → CITIZEN, years_since_us_entry → 5), all eligible households route to TANF; SFA and RCA evaluate to zero. This is intentional — both programs have small caseloads in real life, and the household calculator is where the SFA/RCA logic matters most. A future imputation can drive non-zero microsim counts.

Test plan

  • New unit tests pass — wa_tanf_immigration_status_eligible (14 cases), wa_sfa_immigration_status_eligible (8), wa_sfa_eligible (15), wa_sfa_student_pathway_eligible (6), wa_rca_immigration_status_eligible (10), wa_rca_eligible (9), wa_sfa (6), wa_rca (6)
  • Updated wa_tanf_eligible.yaml and wa_tanf_income_eligible.yaml pass
  • Integration test (wa/dshs/integration.yaml) passes — 13 cross-program scenarios including mixed-status, override, RCA window, humanitarian parolee, and student pathway
  • 182 / 182 WA DSHS tests pass
  • make format clean
  • CI passes

🤖 Generated with Claude Code

…ome test

Implements Washington State Family Assistance (SFA) and Refugee Cash
Assistance (RCA), with shared parameters reused from WA TANF per WAC
388-478-0020 and 388-478-0035. Adds a federal 5-year bar check on TANF
eligibility (8 USC 1613) with a new years_since_us_entry person-level
input (default 5 years) and a bar_exempt_immigration_statuses parameter
list.

Fixes wa_tanf_income_eligible to also enforce the WAC 388-450-0162
countable-income-below-payment-standard test, which was previously
missing and allowed households with high unearned income to pass
eligibility.

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

codecov Bot commented Apr 24, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.79%. Comparing base (20705b0) to head (3afe240).
⚠️ Report is 25 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #8151       +/-   ##
===========================================
+ Coverage   85.36%   96.79%   +11.42%     
===========================================
  Files           3       13       +10     
  Lines          41      187      +146     
  Branches        2        2               
===========================================
+ Hits           35      181      +146     
  Misses          6        6               
Flag Coverage Δ
unittests 96.79% <100.00%> (+11.42%) ⬆️

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 7 commits April 24, 2026 00:50
Adds an SPMUnit-level boolean input that lets API consumers display all
three WA cash assistance programs' benefit amounts for the same
household. The override bypasses the immigration gate on TANF, SFA, and
RCA; demographic, income, and resource tests still apply.

Also adds a cross-program integration test covering the mutually-
exclusive immigration gates and the override behavior.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a YAML comment explaining that PAROLED_ONE_YEAR is included as
RCA-eligible to cover Afghan and Ukrainian humanitarian parolees, at
the cost of over-granting RCA to the smaller population of non-
humanitarian parolees.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Critical fixes per review:
- Remove CONDITIONAL_ENTRANT from federal TANF bar-exempt list. 8 USC
  1613(b)(1) does not exempt conditional entrants; they are qualified
  aliens subject to the 5-year bar.
- Correct WAC citation on wa_tanf_immigration_status_eligible from
  388-424-0020 (SNAP) to 388-424-0006 and 388-424-0010.
- Prevent mixed-status SFA+TANF double-pay. SFA eligibility now excludes
  households with any TANF-immigration-eligible member at the SPM-unit
  level, matching WAC 388-400-0010's intent that SFA is for families
  federally ineligible for TANF.

Also applies the previously queued Option A fix to wa_rca_eligible:
enforce the 12-month ORR window via years_since_us_entry and
disqualify RCA applicants who are eligible for TANF or SFA per 45
CFR 400.47 and WAC 388-400-0030(2)(a). Override bypasses both new
gates so API consumers can still display all three programs.

Test updates:
- wa_tanf_immigration_status_eligible: add DEPORTATION_WITHHELD and
  CONDITIONAL_ENTRANT cases (in-bar and past-bar).
- wa_rca_eligible: reframe cases around the 12-month window, add
  past-window and default-year cases.
- integration.yaml: flip Case 3 (refugee family) to TANF-only; add
  Case 8 (refugee past window), Case 10 (mixed-status household),
  Case 11 (override with refugee still fires all three).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds inline comments per the program review:
- wa_show_all_cash_assistance_programs: explain consumer-facing use
- years_since_us_entry: note the default preserves prior behavior
- wa_sfa_immigration_status_eligible: list the unmodeled WAC 388-400-0010
  SFA pathways (T/U visa, nonqualified-alien residency, student cases)
- wa_rca_eligible: note the unmodeled WAC 388-400-0030(2)(b)/(c)
  exclusions (TANF-sanction history, full-time students)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Case 2 previously duplicated Case 1's inputs and output. Retarget it to
cover the PAROLED_ONE_YEAR pathway for Afghan/Ukrainian humanitarian
parolees, which is the main non-refugee RCA population.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Add PAROLED_ONE_YEAR to the federal TANF five-year-bar-exempt list so
  Afghan (P.L. 117-43) and Ukrainian (P.L. 117-128) humanitarian parolee
  families with children receive TANF rather than SFA/RCA. Cross-reference
  the existing approximation comment on the WA RCA eligible-status list.
- Update WA SFA Case 4 (PAROLED_ONE_YEAR) and WA TANF Case 14 to reflect
  the bar-exempt routing.
- Set immigration_status explicitly on dependent children in WA DSHS
  integration Cases 2, 3, 9, 11 so the test inputs match each case name
  (children otherwise default to CITIZEN, which routed mixed-status cases
  through the citizen-child pathway instead of the parent's status).
- Add WA DSHS integration Case 12 covering an Afghan/Ukrainian humanitarian
  parolee family with a child receiving TANF only.
- Drop the redundant default_value = False on wa_show_all_cash_assistance_programs.

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

- Add wa_sfa_student_pathway_eligible covering WAC 388-400-0010(2)(c).
  Caretaker relatives per (2)(d) are picked up automatically through
  SPM-unit aggregation. Uses a single bracket-style age parameter
  (age_eligible.yaml) covering ages 19 and 20.
- Wire the student pathway alongside the qualified-alien-in-bar pathway
  in wa_sfa_eligible, with TANF mutex via ~wa_tanf_eligible so families
  with an under-18 child still route to TANF.
- Update wa_sfa_immigration_status_eligible docstring to mark the
  student and caretaker pathways as modeled.
- Tests: 6 cases on the new variable + 7 new SFA eligibility cases
  (19/20 student, vocational, age boundaries, caretaker, TANF mutex,
  LPR-in-bar parent + citizen student). New integration Case 13 covers
  single-mom-plus-19-year-old-senior end-to-end.
- Consolidate the 6 changelog fragments into a single .added.md per
  one-fragment-per-PR convention.
- Revert programs.yaml additions so SFA and RCA registry entries can be
  added later with an accurate partial/complete status.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hua7450 hua7450 marked this pull request as ready for review April 25, 2026 21:54
Both PAROLED_ONE_YEAR additions were dated to 1996-08-22 alongside
the original PRWORA-era statuses, which retroactively grants Afghan/
Ukrainian-style bar-exemption and RCA eligibility to humanitarian
parolees in pre-2021 historical-year simulations.

- bar_exempt_immigration_statuses: split into two value entries; only
  the 2021-09-30 entry includes PAROLED_ONE_YEAR, matching enactment
  of P.L. 117-43 § 2502 (Continuing Appropriations Act, 2022).
- eligible_immigration_statuses (WA RCA): same split, kept consistent
  with the federal bar-exempt list as the cross-reference comment
  promises.
- Add 8 USC 1641(b)(8) and P.L. 117-43 § 2502 to the bar-exempt YAML
  reference block; the comment already named them but the structured
  reference list cited only 1613(b)(1), which does not actually
  enumerate parolees.
- Update both comments to lead with the 2021-09-30 start date and
  cite P.L. 117-128 / P.L. 118-42 § 209(f) for the Ukrainian
  extension.

Co-Authored-By: Claude Opus 4.7 (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.

1 participant