diff --git a/changelog.d/wa-rca-tanf-fixes.added.md b/changelog.d/wa-rca-tanf-fixes.added.md new file mode 100644 index 00000000000..a08141a55d2 --- /dev/null +++ b/changelog.d/wa-rca-tanf-fixes.added.md @@ -0,0 +1,2 @@ +Washington State Family Assistance and Refugee Cash Assistance programs. +Fix Washington TANF immigration eligibility, add `years_since_us_entry` and `wa_show_all_cash_assistance_programs` variables. diff --git a/policyengine_us/parameters/gov/hhs/tanf/bar_exempt_immigration_statuses.yaml b/policyengine_us/parameters/gov/hhs/tanf/bar_exempt_immigration_statuses.yaml new file mode 100644 index 00000000000..5a2d17580dd --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/tanf/bar_exempt_immigration_statuses.yaml @@ -0,0 +1,34 @@ +description: The United States exempts these immigration statuses from the five-year bar on federal Temporary Assistance for Needy Families. + +# PAROLED_ONE_YEAR is treated as bar-exempt starting 2021-09-30 to cover +# Afghan (P.L. 117-43 § 2502, enacted 2021-09-30) and Ukrainian (P.L. 117-128 +# and P.L. 118-42 Div. G § 209(f)) humanitarian parolees, who are statutorily +# treated as refugees for federal benefit purposes per 8 USC 1641(b)(8). We +# do not distinguish those populations from other INA 212(d)(5) parolees at +# the moment, so this over-grants the bar exemption to the small population +# of non-humanitarian parolees. Kept consistent with the RCA eligible-status +# list at parameters/gov/states/wa/dshs/rca/eligible_immigration_statuses.yaml. +values: + 1996-08-22: + - REFUGEE + - ASYLEE + - CUBAN_HAITIAN_ENTRANT + - DEPORTATION_WITHHELD + 2021-09-30: + - REFUGEE + - ASYLEE + - CUBAN_HAITIAN_ENTRANT + - DEPORTATION_WITHHELD + - PAROLED_ONE_YEAR + +metadata: + unit: list + period: year + label: TANF five-year bar exempt immigration statuses + reference: + - title: 8 USC 1613(b)(1) - Exceptions to five-year limited eligibility + href: https://www.law.cornell.edu/uscode/text/8/1613 + - title: 8 USC 1641(b)(8) - "Qualified alien" includes humanitarian parolees treated as refugees + href: https://www.law.cornell.edu/uscode/text/8/1641 + - title: P.L. 117-43 § 2502 - Afghan humanitarian parolees treated as refugees for benefit purposes + href: https://www.congress.gov/117/plaws/publ43/PLAW-117publ43.pdf diff --git a/policyengine_us/parameters/gov/hhs/tanf/five_year_bar_years.yaml b/policyengine_us/parameters/gov/hhs/tanf/five_year_bar_years.yaml new file mode 100644 index 00000000000..57ab1351fb9 --- /dev/null +++ b/policyengine_us/parameters/gov/hhs/tanf/five_year_bar_years.yaml @@ -0,0 +1,12 @@ +description: The United States bars qualified aliens from federal Temporary Assistance for Needy Families for this many years after obtaining qualified status. + +values: + 1996-08-22: 5 + +metadata: + unit: year + period: year + label: TANF five-year bar duration + reference: + - title: 8 USC 1613(a) - Five-year limited eligibility + href: https://www.law.cornell.edu/uscode/text/8/1613 diff --git a/policyengine_us/parameters/gov/household/household_state_benefits.yaml b/policyengine_us/parameters/gov/household/household_state_benefits.yaml index 619bf682302..17d0982b4e7 100644 --- a/policyengine_us/parameters/gov/household/household_state_benefits.yaml +++ b/policyengine_us/parameters/gov/household/household_state_benefits.yaml @@ -55,6 +55,9 @@ values: - ks_sspp # Hawaii benefits - hi_oss + # Washington benefits + - wa_sfa + - wa_rca 2024-01-01: # Delaware benefits - de_ssp @@ -112,6 +115,9 @@ values: - ks_sspp # Hawaii benefits - hi_oss + # Washington benefits + - wa_sfa + - wa_rca metadata: unit: list period: year diff --git a/policyengine_us/parameters/gov/states/wa/dshs/rca/eligible_immigration_statuses.yaml b/policyengine_us/parameters/gov/states/wa/dshs/rca/eligible_immigration_statuses.yaml new file mode 100644 index 00000000000..d3a5da246ba --- /dev/null +++ b/policyengine_us/parameters/gov/states/wa/dshs/rca/eligible_immigration_statuses.yaml @@ -0,0 +1,39 @@ +description: Washington considers these immigration statuses eligible for the Refugee Cash Assistance program. + +# PAROLED_ONE_YEAR is treated as RCA-eligible starting 2021-09-30 to cover +# Afghan (P.L. 117-43 § 2502, enacted 2021-09-30) and Ukrainian (P.L. 117-128 +# and P.L. 118-42 Div. G § 209(f)) humanitarian parolees, who are statutorily +# treated as refugees for federal benefit purposes per 8 USC 1641(b)(8). We +# do not distinguish those populations from other INA 212(d)(5) parolees at +# the moment, so this over-grants RCA to the small population of +# non-humanitarian parolees. PAROLED_ONE_YEAR is also bar-exempt for federal +# TANF (see parameters/gov/hhs/tanf/bar_exempt_immigration_statuses.yaml), so +# a humanitarian-parolee family with a child receives TANF rather than RCA; +# RCA picks up adults without children and pre-TANF cases via the 12-month +# ORR window. +values: + 1996-08-22: + - REFUGEE + - ASYLEE + - CUBAN_HAITIAN_ENTRANT + - DEPORTATION_WITHHELD + - CONDITIONAL_ENTRANT + 2021-09-30: + - REFUGEE + - ASYLEE + - CUBAN_HAITIAN_ENTRANT + - DEPORTATION_WITHHELD + - CONDITIONAL_ENTRANT + - PAROLED_ONE_YEAR + +metadata: + unit: list + period: year + label: Washington RCA eligible immigration statuses + reference: + - title: 8 USC 1522 - Authorization for Refugee Assistance + href: https://www.law.cornell.edu/uscode/text/8/1522 + - title: 45 CFR 400.43 - Requirements for Documentation of Immigration Status + href: https://www.ecfr.gov/current/title-45/subtitle-B/chapter-IV/part-400/subpart-D/section-400.43 + - title: WAC 388-466-0120 - Refugee assistance + href: https://app.leg.wa.gov/wac/default.aspx?cite=388-466-0120 diff --git a/policyengine_us/parameters/gov/states/wa/dshs/sfa/student_pathway/age_eligible.yaml b/policyengine_us/parameters/gov/states/wa/dshs/sfa/student_pathway/age_eligible.yaml new file mode 100644 index 00000000000..bdfc07f0044 --- /dev/null +++ b/policyengine_us/parameters/gov/states/wa/dshs/sfa/student_pathway/age_eligible.yaml @@ -0,0 +1,27 @@ +description: Washington considers a person in this age range a 19-20 year old student for the State Family Assistance program. + +metadata: + type: single_amount + threshold_unit: year + amount_unit: bool + period: year + label: Washington SFA 19-20 year old student age eligibility + reference: + - title: WAC 388-400-0010(2)(c) - Who Is Eligible for State Family Assistance + href: https://app.leg.wa.gov/wac/default.aspx?cite=388-400-0010 + - title: WAC 388-404-0005(3) - How Does a Child's Age and Attendance in School Affect Their Eligibility for TANF and SFA + href: https://app.leg.wa.gov/wac/default.aspx?cite=388-404-0005 + +brackets: + - threshold: + 2010-07-01: 0 + amount: + 2010-07-01: false + - threshold: + 2010-07-01: 19 + amount: + 2010-07-01: true + - threshold: + 2010-07-01: 21 + amount: + 2010-07-01: false diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/integration.yaml new file mode 100644 index 00000000000..4995bb7faf7 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/integration.yaml @@ -0,0 +1,391 @@ +# Cross-program integration tests for Washington cash assistance +# programs: TANF, SFA, and RCA. Exercises the mutually-exclusive +# immigration gates and the wa_show_all_cash_assistance_programs +# override used by consumers that want to display all three programs' +# benefit amounts alongside each other. + +- name: Case 1, citizen family with child receives TANF only. + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 30 + immigration_status: CITIZEN + person2: + age: 5 + is_tax_unit_dependent: true + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WA + output: + wa_tanf_eligible: true + wa_sfa_eligible: false + wa_rca_eligible: false + # Family size 2 payment standard Jan 2024: $570 + wa_tanf: 570 + wa_sfa: 0 + wa_rca: 0 + +- name: Case 2, LPR-only family in 5-year bar receives SFA only. + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 30 + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 2 + person2: + age: 5 + is_tax_unit_dependent: true + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 2 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WA + output: + # Child immigration_status set explicitly: it defaults to CITIZEN, which + # would otherwise route the unit to TANF via the citizen-child pathway. + wa_tanf_eligible: false + wa_sfa_eligible: true + wa_rca_eligible: false + wa_tanf: 0 + wa_sfa: 570 + wa_rca: 0 + +- name: Case 3, refugee family with child receives TANF only (RCA blocked by 45 CFR 400.47). + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 30 + immigration_status: REFUGEE + years_since_us_entry: 0 + person2: + age: 5 + is_tax_unit_dependent: true + immigration_status: REFUGEE + years_since_us_entry: 0 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WA + output: + # Refugees are bar-exempt, so TANF applies. Per 45 CFR 400.47, an + # applicant eligible for TANF is disqualified from RCA. + wa_tanf_eligible: true + wa_sfa_eligible: false + wa_rca_eligible: false + wa_tanf: 570 + wa_sfa: 0 + wa_rca: 0 + +- name: Case 4, single refugee adult without child receives RCA only. + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 30 + immigration_status: REFUGEE + years_since_us_entry: 0 + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: WA + output: + # RCA does not require a dependent child; TANF and SFA do. + wa_tanf_eligible: false + wa_sfa_eligible: false + wa_rca_eligible: true + wa_tanf: 0 + wa_sfa: 0 + # Family size 1 payment standard Jan 2024: $450 + wa_rca: 450 + +- name: Case 5, override shows all 3 programs with benefit amounts. + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 30 + immigration_status: CITIZEN + person2: + age: 5 + is_tax_unit_dependent: true + person3: + age: 3 + is_tax_unit_dependent: true + spm_units: + spm_unit: + members: [person1, person2, person3] + wa_show_all_cash_assistance_programs: true + households: + household: + members: [person1, person2, person3] + state_code: WA + output: + # Override bypasses the immigration gate across all 3 programs; + # other requirements (demographic, income, resources) still apply. + wa_tanf_eligible: true + wa_sfa_eligible: true + wa_rca_eligible: true + # Family size 3 payment standard Jan 2024: $706; no income. + wa_tanf: 706 + wa_sfa: 706 + wa_rca: 706 + +- name: Case 6, override with single adult shows RCA only (TANF and SFA still require a child). + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 30 + immigration_status: CITIZEN + spm_units: + spm_unit: + members: [person1] + wa_show_all_cash_assistance_programs: true + households: + household: + members: [person1] + state_code: WA + output: + wa_tanf_eligible: false + wa_sfa_eligible: false + wa_rca_eligible: true + wa_tanf: 0 + wa_sfa: 0 + # Family size 1 payment standard Jan 2024: $450 + wa_rca: 450 + +- name: Case 7, override respects the income test (high unearned income disqualifies all). + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 30 + immigration_status: CITIZEN + social_security: 24_000 + person2: + age: 5 + is_tax_unit_dependent: true + spm_units: + spm_unit: + members: [person1, person2] + wa_show_all_cash_assistance_programs: true + households: + household: + members: [person1, person2] + state_code: WA + output: + # Monthly unearned = $2,000 > PS ($570) → income test fails for all + wa_tanf_eligible: false + wa_sfa_eligible: false + wa_rca_eligible: false + wa_tanf: 0 + wa_sfa: 0 + wa_rca: 0 + +- name: Case 8, single refugee adult past 12-month window receives nothing. + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 30 + immigration_status: REFUGEE + years_since_us_entry: 2 + spm_units: + spm_unit: + members: [person1] + households: + household: + members: [person1] + state_code: WA + output: + # No child → TANF/SFA demographic fails. Past 12-month window → RCA fails. + wa_tanf_eligible: false + wa_sfa_eligible: false + wa_rca_eligible: false + wa_tanf: 0 + wa_sfa: 0 + wa_rca: 0 + +- name: Case 9, fully undocumented family is ineligible for all 3. + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 30 + immigration_status: UNDOCUMENTED + person2: + age: 5 + is_tax_unit_dependent: true + immigration_status: UNDOCUMENTED + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WA + output: + # Child immigration_status set explicitly: it defaults to CITIZEN, which + # would otherwise route the unit to TANF via the citizen-child pathway. + wa_tanf_eligible: false + wa_sfa_eligible: false + wa_rca_eligible: false + wa_tanf: 0 + wa_sfa: 0 + wa_rca: 0 + +- name: Case 10, mixed-status citizen head + LPR-in-bar spouse + child receives TANF only. + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 30 + immigration_status: CITIZEN + person2: + age: 28 + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 2 + person3: + age: 5 + is_tax_unit_dependent: true + spm_units: + spm_unit: + members: [person1, person2, person3] + households: + household: + members: [person1, person2, person3] + state_code: WA + output: + # Citizen head makes household TANF-immigration-eligible; SFA-eligibility + # excluded at SPM-unit level to prevent mixed-status double-pay. + wa_tanf_eligible: true + wa_sfa_eligible: false + wa_rca_eligible: false + # Family size 3 payment standard Jan 2024: $706 + wa_tanf: 706 + wa_sfa: 0 + wa_rca: 0 + +- name: Case 11, override with refugee household still fires all 3. + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 30 + immigration_status: REFUGEE + years_since_us_entry: 0 + person2: + age: 5 + is_tax_unit_dependent: true + immigration_status: REFUGEE + years_since_us_entry: 0 + spm_units: + spm_unit: + members: [person1, person2] + wa_show_all_cash_assistance_programs: true + households: + household: + members: [person1, person2] + state_code: WA + output: + # Override bypasses the SFA mutex and RCA mutex so API consumers can + # display all 3 programs for bar-exempt immigrants too. + wa_tanf_eligible: true + wa_sfa_eligible: true + wa_rca_eligible: true + # Family size 2 payment standard Jan 2024: $570 + wa_tanf: 570 + wa_sfa: 570 + wa_rca: 570 + +- name: Case 12, Afghan or Ukrainian humanitarian parolee family with child receives TANF only. + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 30 + immigration_status: PAROLED_ONE_YEAR + years_since_us_entry: 0 + person2: + age: 5 + is_tax_unit_dependent: true + immigration_status: PAROLED_ONE_YEAR + years_since_us_entry: 0 + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WA + output: + # PAROLED_ONE_YEAR stands in for Afghan (P.L. 117-43) and Ukrainian + # (P.L. 117-128) humanitarian parolees, who are bar-exempt for TANF. + # TANF therefore applies; RCA is blocked by 45 CFR 400.47. + wa_tanf_eligible: true + wa_sfa_eligible: false + wa_rca_eligible: false + # Family size 2 payment standard Jan 2024: $570 + wa_tanf: 570 + wa_sfa: 0 + wa_rca: 0 + +- name: Case 13, single mom + 19-year-old high school senior receives SFA only via 19-20 student pathway. + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 35 + immigration_status: CITIZEN + person2: + age: 19 + immigration_status: CITIZEN + is_in_secondary_school: true + spm_units: + spm_unit: + members: [person1, person2] + households: + household: + members: [person1, person2] + state_code: WA + output: + # No under-18 child means TANF demographic fails. The 19-year-old + # student triggers the WAC 388-400-0010(2)(c) pathway; the parent is + # covered as a caretaker relative per (2)(d) via SPM-unit aggregation. + wa_tanf_eligible: false + wa_sfa_eligible: true + wa_rca_eligible: false + # Family size 2 payment standard Jan 2024: $570 + wa_tanf: 0 + wa_sfa: 570 + wa_rca: 0 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/rca/eligibility/wa_rca_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/rca/eligibility/wa_rca_eligible.yaml new file mode 100644 index 00000000000..03e97be55cd --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/rca/eligibility/wa_rca_eligible.yaml @@ -0,0 +1,95 @@ +- name: Case 1, refugee within 12-month window, no TANF/SFA competition - eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: REFUGEE + years_since_us_entry: 0 + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_rca_eligible: true + +- name: Case 2, Afghan humanitarian parolee within window - eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: PAROLED_ONE_YEAR + years_since_us_entry: 0 + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_rca_eligible: true + +- name: Case 3, citizen - ineligible (not an RCA-eligible immigration status). + period: 2024-01 + input: + state_code: WA + immigration_status: CITIZEN + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_rca_eligible: false + +- name: Case 4, refugee past 12-month window - ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: REFUGEE + years_since_us_entry: 2 + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_rca_eligible: false + +- name: Case 5, refugee using default years_since_us_entry (5) - ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: REFUGEE + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_rca_eligible: false + +- name: Case 6, refugee income-ineligible - ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: REFUGEE + years_since_us_entry: 0 + wa_tanf_income_eligible: false + wa_tanf_resources_eligible: true + output: + wa_rca_eligible: false + +- name: Case 7, refugee resources-ineligible - ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: REFUGEE + years_since_us_entry: 0 + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: false + output: + wa_rca_eligible: false + +- name: Case 8, non-WA refugee - ineligible. + period: 2024-01 + input: + state_code: OR + immigration_status: REFUGEE + years_since_us_entry: 0 + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_rca_eligible: false + +- name: Case 9, undocumented - ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: UNDOCUMENTED + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_rca_eligible: false diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/rca/eligibility/wa_rca_immigration_status_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/rca/eligibility/wa_rca_immigration_status_eligible.yaml new file mode 100644 index 00000000000..a1072179760 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/rca/eligibility/wa_rca_immigration_status_eligible.yaml @@ -0,0 +1,79 @@ +- name: Case 1, refugee is eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: REFUGEE + output: + wa_rca_immigration_status_eligible: true + +- name: Case 2, asylee is eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: ASYLEE + output: + wa_rca_immigration_status_eligible: true + +- name: Case 3, Cuban or Haitian entrant is eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: CUBAN_HAITIAN_ENTRANT + output: + wa_rca_immigration_status_eligible: true + +- name: Case 4, deportation-withheld is eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: DEPORTATION_WITHHELD + output: + wa_rca_immigration_status_eligible: true + +- name: Case 5, conditional entrant is eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: CONDITIONAL_ENTRANT + output: + wa_rca_immigration_status_eligible: true + +- name: Case 6, humanitarian parolee is eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: PAROLED_ONE_YEAR + output: + wa_rca_immigration_status_eligible: true + +- name: Case 7, US citizen is ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: CITIZEN + output: + wa_rca_immigration_status_eligible: false + +- name: Case 8, lawful permanent resident is ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: LEGAL_PERMANENT_RESIDENT + output: + wa_rca_immigration_status_eligible: false + +- name: Case 9, undocumented immigrant is ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: UNDOCUMENTED + output: + wa_rca_immigration_status_eligible: false + +- name: Case 10, DACA recipient is ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: DACA + output: + wa_rca_immigration_status_eligible: false diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/rca/wa_rca.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/rca/wa_rca.yaml new file mode 100644 index 00000000000..30114ec7ffb --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/rca/wa_rca.yaml @@ -0,0 +1,67 @@ +- name: Case 1, eligible refugee with no income. + period: 2024-01 + absolute_error_margin: 0.1 + input: + state_code: WA + wa_rca_eligible: true + wa_tanf_payment_standard: 450 + wa_tanf_countable_income: 0 + output: + # Single-person payment standard = $450 (2024 Jan, family of 1) + wa_rca: 450 + +- name: Case 2, eligible refugee family with partial income. + period: 2024-01 + absolute_error_margin: 0.1 + input: + state_code: WA + wa_rca_eligible: true + wa_tanf_payment_standard: 706 + wa_tanf_countable_income: 250 + output: + # Benefit = $706 - $250 = $456 + wa_rca: 456 + +- name: Case 3, countable income equals payment standard. + period: 2024-01 + absolute_error_margin: 0.1 + input: + state_code: WA + wa_rca_eligible: true + wa_tanf_payment_standard: 706 + wa_tanf_countable_income: 706 + output: + wa_rca: 0 + +- name: Case 4, countable income exceeds payment standard. + period: 2024-01 + absolute_error_margin: 0.1 + input: + state_code: WA + wa_rca_eligible: true + wa_tanf_payment_standard: 706 + wa_tanf_countable_income: 900 + output: + wa_rca: 0 + +- name: Case 5, ineligible household. + period: 2024-01 + absolute_error_margin: 0.1 + input: + state_code: WA + wa_rca_eligible: false + wa_tanf_payment_standard: 706 + wa_tanf_countable_income: 0 + output: + wa_rca: 0 + +- name: Case 6, negative countable income capped at payment standard. + period: 2024-01 + absolute_error_margin: 0.1 + input: + state_code: WA + wa_rca_eligible: true + wa_tanf_payment_standard: 450 + wa_tanf_countable_income: -500 + output: + wa_rca: 450 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/sfa/eligibility/wa_sfa_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/sfa/eligibility/wa_sfa_eligible.yaml new file mode 100644 index 00000000000..0c21e5908ae --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/sfa/eligibility/wa_sfa_eligible.yaml @@ -0,0 +1,260 @@ +- name: Case 1, LPR in bar with child meets all requirements - eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 2 + is_demographic_tanf_eligible: true + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_sfa_eligible: true + +- name: Case 2, LPR past bar - ineligible (qualifies for TANF instead). + period: 2024-01 + input: + state_code: WA + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 6 + is_demographic_tanf_eligible: true + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_sfa_eligible: false + +- name: Case 3, refugee - ineligible (qualifies for TANF instead). + period: 2024-01 + input: + state_code: WA + immigration_status: REFUGEE + years_since_us_entry: 0 + is_demographic_tanf_eligible: true + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_sfa_eligible: false + +- name: Case 4, LPR in bar without demographic eligibility - ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 2 + is_demographic_tanf_eligible: false + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_sfa_eligible: false + +- name: Case 5, LPR in bar with income ineligible - ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 2 + is_demographic_tanf_eligible: true + wa_tanf_income_eligible: false + wa_tanf_resources_eligible: true + output: + wa_sfa_eligible: false + +- name: Case 6, LPR in bar with resources ineligible - ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 2 + is_demographic_tanf_eligible: true + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: false + output: + wa_sfa_eligible: false + +- name: Case 7, undocumented - ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: UNDOCUMENTED + is_demographic_tanf_eligible: true + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_sfa_eligible: false + +- name: Case 8, non-WA state - ineligible. + period: 2024-01 + input: + state_code: OR + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 2 + is_demographic_tanf_eligible: true + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_sfa_eligible: false + +- name: Case 9, single 19-year-old citizen high school senior - eligible via student pathway. + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 19 + immigration_status: CITIZEN + is_in_secondary_school: true + spm_units: + spm_unit: + members: [person1] + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + households: + household: + members: [person1] + state_code: WA + output: + wa_sfa_eligible: true + +- name: Case 10, single 20-year-old citizen vocational student - eligible via student pathway. + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 20 + immigration_status: CITIZEN + technical_institution_student: true + spm_units: + spm_unit: + members: [person1] + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + households: + household: + members: [person1] + state_code: WA + output: + wa_sfa_eligible: true + +- name: Case 11, single 21-year-old citizen student - ineligible (over age cap). + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 21 + immigration_status: CITIZEN + is_in_secondary_school: true + spm_units: + spm_unit: + members: [person1] + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + households: + household: + members: [person1] + state_code: WA + output: + wa_sfa_eligible: false + +- name: Case 12, single 19-year-old citizen non-student - ineligible. + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 19 + immigration_status: CITIZEN + spm_units: + spm_unit: + members: [person1] + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + households: + household: + members: [person1] + state_code: WA + output: + wa_sfa_eligible: false + +- name: Case 13, parent + 19-year-old citizen student (no younger child) - eligible via caretaker pathway. + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 35 + immigration_status: CITIZEN + person2: + age: 19 + immigration_status: CITIZEN + is_in_secondary_school: true + spm_units: + spm_unit: + members: [person1, person2] + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + households: + household: + members: [person1, person2] + state_code: WA + output: + # Caretaker (parent) is covered automatically because the 19-year-old + # student in the SPM unit makes the unit demographically SFA-eligible. + wa_sfa_eligible: true + +- name: Case 14, parent + 19-year-old student + 5-year-old child - ineligible (TANF wins). + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 35 + immigration_status: CITIZEN + person2: + age: 19 + immigration_status: CITIZEN + is_in_secondary_school: true + person3: + age: 5 + immigration_status: CITIZEN + is_tax_unit_dependent: true + spm_units: + spm_unit: + members: [person1, person2, person3] + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + households: + household: + members: [person1, person2, person3] + state_code: WA + output: + # 5-year-old triggers TANF demographic; TANF/SFA mutex blocks SFA. + wa_sfa_eligible: false + +- name: Case 15, LPR-in-bar parent + 19-year-old citizen student - eligible via student pathway. + period: 2024-01 + absolute_error_margin: 0.1 + input: + people: + person1: + age: 35 + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 2 + person2: + age: 19 + immigration_status: CITIZEN + is_in_secondary_school: true + spm_units: + spm_unit: + members: [person1, person2] + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + households: + household: + members: [person1, person2] + state_code: WA + output: + # Citizen 19-year-old student blocks the immigration pathway (mutex + # excludes units with TANF-immigration-eligible members), but the + # student pathway fires independently. + wa_sfa_eligible: true diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/sfa/eligibility/wa_sfa_immigration_status_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/sfa/eligibility/wa_sfa_immigration_status_eligible.yaml new file mode 100644 index 00000000000..42cb0e7e724 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/sfa/eligibility/wa_sfa_immigration_status_eligible.yaml @@ -0,0 +1,68 @@ +- name: Case 1, US citizen is not SFA-eligible (TANF-eligible instead). + period: 2024-01 + input: + state_code: WA + immigration_status: CITIZEN + output: + wa_sfa_immigration_status_eligible: false + +- name: Case 2, LPR in 5-year bar is SFA-eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 2 + output: + wa_sfa_immigration_status_eligible: true + +- name: Case 3, LPR past 5-year bar is not SFA-eligible (TANF-eligible instead). + period: 2024-01 + input: + state_code: WA + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 6 + output: + wa_sfa_immigration_status_eligible: false + +- name: Case 4, paroled one-year alien is not SFA-eligible (TANF bar-exempt as humanitarian parolee). + period: 2024-01 + input: + state_code: WA + immigration_status: PAROLED_ONE_YEAR + years_since_us_entry: 1 + output: + wa_sfa_immigration_status_eligible: false + +- name: Case 5, refugee is not SFA-eligible (TANF bar-exempt). + period: 2024-01 + input: + state_code: WA + immigration_status: REFUGEE + years_since_us_entry: 0 + output: + wa_sfa_immigration_status_eligible: false + +- name: Case 6, asylee is not SFA-eligible (TANF bar-exempt). + period: 2024-01 + input: + state_code: WA + immigration_status: ASYLEE + years_since_us_entry: 0 + output: + wa_sfa_immigration_status_eligible: false + +- name: Case 7, undocumented immigrant is not SFA-eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: UNDOCUMENTED + output: + wa_sfa_immigration_status_eligible: false + +- name: Case 8, DACA recipient is not SFA-eligible (not a qualified alien). + period: 2024-01 + input: + state_code: WA + immigration_status: DACA + output: + wa_sfa_immigration_status_eligible: false diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/sfa/eligibility/wa_sfa_student_pathway_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/sfa/eligibility/wa_sfa_student_pathway_eligible.yaml new file mode 100644 index 00000000000..759753b0c36 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/sfa/eligibility/wa_sfa_student_pathway_eligible.yaml @@ -0,0 +1,53 @@ +- name: Case 1, age 18 secondary student - not in pathway (TANF covers them). + period: 2024-01 + input: + state_code: WA + age: 18 + is_in_secondary_school: true + output: + wa_sfa_student_pathway_eligible: false + +- name: Case 2, age 19 secondary student - eligible. + period: 2024-01 + input: + state_code: WA + age: 19 + is_in_secondary_school: true + output: + wa_sfa_student_pathway_eligible: true + +- name: Case 3, age 20 vocational student - eligible. + period: 2024-01 + input: + state_code: WA + age: 20 + technical_institution_student: true + output: + wa_sfa_student_pathway_eligible: true + +- name: Case 4, age 21 secondary student - not in pathway (over age cap). + period: 2024-01 + input: + state_code: WA + age: 21 + is_in_secondary_school: true + output: + wa_sfa_student_pathway_eligible: false + +- name: Case 5, age 19 non-student - not in pathway. + period: 2024-01 + input: + state_code: WA + age: 19 + output: + wa_sfa_student_pathway_eligible: false + +- name: Case 6, age 20 secondary and vocational - eligible (either qualifies). + period: 2024-01 + input: + state_code: WA + age: 20 + is_in_secondary_school: true + technical_institution_student: true + output: + wa_sfa_student_pathway_eligible: true diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/sfa/wa_sfa.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/sfa/wa_sfa.yaml new file mode 100644 index 00000000000..a686b34e2d2 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/sfa/wa_sfa.yaml @@ -0,0 +1,69 @@ +- name: Case 1, eligible LPR in bar with no income. + period: 2024-01 + absolute_error_margin: 0.1 + input: + state_code: WA + wa_sfa_eligible: true + wa_tanf_payment_standard: 706 + wa_tanf_countable_income: 0 + output: + # Benefit = $706 - $0 = $706 (uses TANF payment standard per WAC 388-478-0020) + wa_sfa: 706 + +- name: Case 2, eligible LPR in bar with partial income. + period: 2024-01 + absolute_error_margin: 0.1 + input: + state_code: WA + wa_sfa_eligible: true + wa_tanf_payment_standard: 706 + wa_tanf_countable_income: 250 + output: + # Benefit = $706 - $250 = $456 + wa_sfa: 456 + +- name: Case 3, eligible with income equal to payment standard. + period: 2024-01 + absolute_error_margin: 0.1 + input: + state_code: WA + wa_sfa_eligible: true + wa_tanf_payment_standard: 706 + wa_tanf_countable_income: 706 + output: + wa_sfa: 0 + +- name: Case 4, eligible with income exceeding payment standard. + period: 2024-01 + absolute_error_margin: 0.1 + input: + state_code: WA + wa_sfa_eligible: true + wa_tanf_payment_standard: 706 + wa_tanf_countable_income: 900 + output: + # Benefit capped at 0, not negative + wa_sfa: 0 + +- name: Case 5, ineligible household. + period: 2024-01 + absolute_error_margin: 0.1 + input: + state_code: WA + wa_sfa_eligible: false + wa_tanf_payment_standard: 706 + wa_tanf_countable_income: 0 + output: + wa_sfa: 0 + +- name: Case 6, negative countable income capped at payment standard. + period: 2024-01 + absolute_error_margin: 0.1 + input: + state_code: WA + wa_sfa_eligible: true + wa_tanf_payment_standard: 706 + wa_tanf_countable_income: -500 + output: + # max_ on countable_income prevents negative-income inflation + wa_sfa: 706 diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.yaml index 3ae2c572f55..0a6204fccda 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.yaml @@ -3,7 +3,6 @@ input: state_code: WA is_demographic_tanf_eligible: true - is_citizen_or_legal_immigrant: true wa_tanf_income_eligible: true wa_tanf_resources_eligible: true output: @@ -14,29 +13,63 @@ input: state_code: WA is_demographic_tanf_eligible: false - is_citizen_or_legal_immigrant: true wa_tanf_income_eligible: true wa_tanf_resources_eligible: true output: wa_tanf_eligible: false -- name: Missing citizenship - ineligible +- name: Undocumented immigrant - ineligible period: 2024-01 input: state_code: WA + immigration_status: UNDOCUMENTED is_demographic_tanf_eligible: true - is_citizen_or_legal_immigrant: false wa_tanf_income_eligible: true wa_tanf_resources_eligible: true output: wa_tanf_eligible: false +- name: LPR inside 5-year bar - ineligible + period: 2024-01 + input: + state_code: WA + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 2 + is_demographic_tanf_eligible: true + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_tanf_eligible: false + +- name: LPR past 5-year bar - eligible + period: 2024-01 + input: + state_code: WA + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 6 + is_demographic_tanf_eligible: true + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_tanf_eligible: true + +- name: Refugee bar-exempt - eligible + period: 2024-01 + input: + state_code: WA + immigration_status: REFUGEE + years_since_us_entry: 0 + is_demographic_tanf_eligible: true + wa_tanf_income_eligible: true + wa_tanf_resources_eligible: true + output: + wa_tanf_eligible: true + - name: Income ineligible - ineligible period: 2024-01 input: state_code: WA is_demographic_tanf_eligible: true - is_citizen_or_legal_immigrant: true wa_tanf_income_eligible: false wa_tanf_resources_eligible: true output: @@ -47,7 +80,6 @@ input: state_code: WA is_demographic_tanf_eligible: true - is_citizen_or_legal_immigrant: true wa_tanf_income_eligible: true wa_tanf_resources_eligible: false output: @@ -58,7 +90,6 @@ input: state_code: ID is_demographic_tanf_eligible: true - is_citizen_or_legal_immigrant: true wa_tanf_income_eligible: true wa_tanf_resources_eligible: true output: diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_immigration_status_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_immigration_status_eligible.yaml new file mode 100644 index 00000000000..e774277d01a --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_immigration_status_eligible.yaml @@ -0,0 +1,121 @@ +- name: Case 1, US citizen is eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: CITIZEN + output: + wa_tanf_immigration_status_eligible: true + +- name: Case 2, refugee just arrived is eligible (bar-exempt). + period: 2024-01 + input: + state_code: WA + immigration_status: REFUGEE + years_since_us_entry: 0 + output: + wa_tanf_immigration_status_eligible: true + +- name: Case 3, asylee just arrived is eligible (bar-exempt). + period: 2024-01 + input: + state_code: WA + immigration_status: ASYLEE + years_since_us_entry: 0 + output: + wa_tanf_immigration_status_eligible: true + +- name: Case 4, Cuban or Haitian entrant just arrived is eligible (bar-exempt). + period: 2024-01 + input: + state_code: WA + immigration_status: CUBAN_HAITIAN_ENTRANT + years_since_us_entry: 0 + output: + wa_tanf_immigration_status_eligible: true + +- name: Case 5, LPR in 5-year bar is ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 2 + output: + wa_tanf_immigration_status_eligible: false + +- name: Case 6, LPR at exactly 5 years is eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 5 + output: + wa_tanf_immigration_status_eligible: true + +- name: Case 7, LPR past 5-year bar is eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: LEGAL_PERMANENT_RESIDENT + years_since_us_entry: 10 + output: + wa_tanf_immigration_status_eligible: true + +- name: Case 8, LPR using default years_since_us_entry is eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: LEGAL_PERMANENT_RESIDENT + output: + wa_tanf_immigration_status_eligible: true + +- name: Case 9, undocumented immigrant is ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: UNDOCUMENTED + output: + wa_tanf_immigration_status_eligible: false + +- name: Case 10, DACA recipient is ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: DACA + output: + wa_tanf_immigration_status_eligible: false + +- name: Case 11, deportation-withheld just arrived is eligible (bar-exempt). + period: 2024-01 + input: + state_code: WA + immigration_status: DEPORTATION_WITHHELD + years_since_us_entry: 0 + output: + wa_tanf_immigration_status_eligible: true + +- name: Case 12, conditional entrant in 5-year bar is ineligible. + period: 2024-01 + input: + state_code: WA + immigration_status: CONDITIONAL_ENTRANT + years_since_us_entry: 2 + output: + wa_tanf_immigration_status_eligible: false + +- name: Case 13, conditional entrant past 5-year bar is eligible. + period: 2024-01 + input: + state_code: WA + immigration_status: CONDITIONAL_ENTRANT + years_since_us_entry: 6 + output: + wa_tanf_immigration_status_eligible: true + +- name: Case 14, Afghan or Ukrainian humanitarian parolee just arrived is eligible (bar-exempt). + period: 2024-01 + input: + state_code: WA + immigration_status: PAROLED_ONE_YEAR + years_since_us_entry: 0 + output: + wa_tanf_immigration_status_eligible: true diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.yaml index 0c0bba89104..f0abc036356 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.yaml @@ -1,4 +1,6 @@ -# Tests for Aug 2024+ income limits +# Tests cover both the WAC 388-478-0035 gross earned income limit +# and the WAC 388-450-0162 countable-income-under-payment-standard test. + - name: Case 1, zero gross earned income. period: 2025-01 input: @@ -6,8 +8,6 @@ spm_unit_size: 3 tanf_gross_earned_income: 0 output: - # Income limit for family of 3: $1,912 (Aug 2024+) - # Gross earned: $0 <= $1,912 wa_tanf_income_eligible: true - name: Case 2, gross earned income below threshold. @@ -17,77 +17,61 @@ spm_unit_size: 3 tanf_gross_earned_income: 1_500 output: - # Income limit for family of 3: $1,912 - # Gross earned: $1,500 <= $1,912 + # Countable earned = max($1,500 - $500, 0) x 0.5 = $500 < $706 PS → eligible wa_tanf_income_eligible: true -- name: Case 3, gross earned income exactly at threshold. +- name: Case 3, gross earned at threshold, countable equals payment standard. period: 2025-01 input: state_code: WA spm_unit_size: 3 tanf_gross_earned_income: 1_912 output: - # Income limit for family of 3: $1,912 - # Gross earned: $1,912 <= $1,912 - wa_tanf_income_eligible: true + # Gross earned ($1,912) at WAC 388-478-0035 limit → passes + # Countable earned = max($1,912 - $500, 0) x 0.5 = $706 = PS → fails WAC 388-450-0162 + wa_tanf_income_eligible: false -- name: Case 4, gross earned income one dollar over threshold. +- name: Case 4, gross earned one dollar over threshold. period: 2025-01 input: state_code: WA spm_unit_size: 3 tanf_gross_earned_income: 1_913 output: - # Income limit for family of 3: $1,912 - # Gross earned: $1,913 > $1,912 wa_tanf_income_eligible: false -- name: Case 5, gross earned income far over threshold. +- name: Case 5, gross earned far over threshold. period: 2025-01 input: state_code: WA spm_unit_size: 3 tanf_gross_earned_income: 3_000 output: - # Income limit for family of 3: $1,912 - # Gross earned: $3,000 > $1,912 wa_tanf_income_eligible: false -- name: Case 6, family size 1 at threshold. - period: 2025-01 - input: - state_code: WA - spm_unit_size: 1 - tanf_gross_earned_income: 1_400 - output: - # Income limit for family of 1: $1,400 (Aug 2024+) - # Gross earned: $1,400 <= $1,400 - wa_tanf_income_eligible: true - -- name: Case 7, family size 10 at maximum threshold. +- name: Case 6, high unearned income fails payment standard test. period: 2025-01 input: state_code: WA - spm_unit_size: 10 - tanf_gross_earned_income: 3_824 + spm_unit_size: 3 + tanf_gross_earned_income: 0 + tanf_gross_unearned_income: 1_000 output: - # Income limit for family of 10: $3,824 (Aug 2024+) - # Gross earned: $3,824 <= $3,824 - wa_tanf_income_eligible: true + # Countable = $1,000 > PS ($706) → fails WAC 388-450-0162 + wa_tanf_income_eligible: false -- name: Case 8, family size 15 capped at size 10 limit. +- name: Case 7, moderate unearned income below payment standard. period: 2025-01 input: state_code: WA - spm_unit_size: 15 - tanf_gross_earned_income: 3_824 + spm_unit_size: 3 + tanf_gross_earned_income: 0 + tanf_gross_unearned_income: 300 output: - # Income limit capped at family of 10: $3,824 - # Gross earned: $3,824 <= $3,824 + # Countable = $300 < PS ($706) → eligible wa_tanf_income_eligible: true -- name: Case 9, only calculate for WA. +- name: Case 8, only calculate for WA. period: 2025-01 input: state_code: MT @@ -96,71 +80,60 @@ output: wa_tanf_income_eligible: false -# Historical tests - verify 2024-01 income limits (before Aug 2024 increase) -- name: Case 10, 2024-01 uses Jan 2024 income limits. +- name: Case 9, 2024-01 at Jan 2024 gross earned limit. period: 2024-01 input: state_code: WA spm_unit_size: 3 tanf_gross_earned_income: 1_412 output: - # Income limit for family of 3 in Jan 2024: $1,412 - # Gross earned: $1,412 <= $1,412 - wa_tanf_income_eligible: true + # Gross earned at limit; countable = $1,412 x 0.5 = $706 = PS → fails payment standard test + wa_tanf_income_eligible: false -- name: Case 11, 2024-01 over Jan 2024 limit. +- name: Case 10, 2024-01 over Jan 2024 limit. period: 2024-01 input: state_code: WA spm_unit_size: 3 tanf_gross_earned_income: 1_413 output: - # Income limit for family of 3 in Jan 2024: $1,412 - # Gross earned: $1,413 > $1,412 wa_tanf_income_eligible: false -# Historical tests - verify 2018-01 income limits (2016 values) -- name: Case 12, 2018-01 uses 2016 income limits. +- name: Case 11, 2018-01 at 2016 gross earned limit. period: 2018-01 input: state_code: WA spm_unit_size: 3 tanf_gross_earned_income: 1_042 output: - # Income limit for family of 3 in 2018-01: $1,042 (2016 value) - # Gross earned: $1,042 <= $1,042 - wa_tanf_income_eligible: true + # Countable = $1,042 x 0.5 = $521 = PS → fails payment standard test + wa_tanf_income_eligible: false -- name: Case 13, 2018-01 over 2016 income limit. +- name: Case 12, 2018-01 well below threshold. period: 2018-01 input: state_code: WA spm_unit_size: 3 - tanf_gross_earned_income: 1_043 + tanf_gross_earned_income: 500 output: - # Income limit for family of 3 in 2018-01: $1,042 - # Gross earned: $1,043 > $1,042 - wa_tanf_income_eligible: false + # Countable = $500 x 0.5 = $250 < PS ($521) → eligible + wa_tanf_income_eligible: true -# Historical tests - verify 2021-07 income limits (15% increase) -- name: Case 14, 2022-01 uses July 2021 income limits. +- name: Case 13, 2022-01 at July 2021 gross earned limit. period: 2022-01 input: state_code: WA spm_unit_size: 3 tanf_gross_earned_income: 1_308 output: - # Income limit for family of 3 in 2022-01: $1,308 (15% increase) - # Gross earned: $1,308 <= $1,308 - wa_tanf_income_eligible: true + # Countable = $1,308 x 0.5 = $654 = PS → fails payment standard test + wa_tanf_income_eligible: false -- name: Case 15, 2022-01 over July 2021 limit. +- name: Case 14, 2022-01 over July 2021 limit. period: 2022-01 input: state_code: WA spm_unit_size: 3 tanf_gross_earned_income: 1_309 output: - # Income limit for family of 3 in 2022-01: $1,308 - # Gross earned: $1,309 > $1,308 wa_tanf_income_eligible: false diff --git a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/integration.yaml b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/integration.yaml index 981285e2d37..bb3548efa8f 100644 --- a/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/integration.yaml +++ b/policyengine_us/tests/policy/baseline/gov/states/wa/dshs/tanf/integration.yaml @@ -98,7 +98,8 @@ # Monthly income: $22,944 / 12 = $1,912 (at income limit) # Countable earned = max($1,912 - $500, 0) × 0.5 = $706 wa_tanf_countable_income: 706 - wa_tanf_eligible: true + # Countable income ($706) not less than payment standard ($706) per WAC 388-450-0162 + wa_tanf_eligible: false wa_tanf: 0 - name: Case 4, two parents with 3 children, one parent working. @@ -397,7 +398,8 @@ wa_tanf_payment_standard: 959 # Monthly unearned income: $12,000 / 12 = $1,000 wa_tanf_countable_income: 1_000 - wa_tanf_eligible: true + # Countable income ($1,000) not less than payment standard ($959) per WAC 388-450-0162 + wa_tanf_eligible: false wa_tanf: 0 - name: Case 12, single parent with 4 children, self-employment income. @@ -540,7 +542,8 @@ # Monthly income: $15,696 / 12 = $1,308 (at income limit) # Countable earned = $1,308 × 0.5 = $654 wa_tanf_countable_income: 654 - wa_tanf_eligible: true + # Countable income ($654) not less than payment standard ($654) per WAC 388-450-0162 + wa_tanf_eligible: false wa_tanf: 0 # Historical integration tests for 2018-01 period @@ -643,7 +646,8 @@ # Monthly income: $12,504 / 12 = $1,042 (at income limit) # Countable earned = $1,042 × 0.5 = $521 wa_tanf_countable_income: 521 - wa_tanf_eligible: true + # Countable income ($521) not less than payment standard ($521) per WAC 388-450-0162 + wa_tanf_eligible: false wa_tanf: 0 # Historical integration tests for 2024-01 period @@ -746,7 +750,8 @@ # Monthly income: $16,944 / 12 = $1,412 (at income limit) # Countable earned = $1,412 × 0.5 = $706 wa_tanf_countable_income: 706 - wa_tanf_eligible: true + # Countable income ($706) not less than payment standard ($706) per WAC 388-450-0162 + wa_tanf_eligible: false wa_tanf: 0 # Mixed earned + unearned income tests (post-Aug-2024) diff --git a/policyengine_us/variables/gov/states/wa/dshs/rca/eligibility/wa_rca_eligible.py b/policyengine_us/variables/gov/states/wa/dshs/rca/eligibility/wa_rca_eligible.py new file mode 100644 index 00000000000..d150425f8f4 --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/dshs/rca/eligibility/wa_rca_eligible.py @@ -0,0 +1,46 @@ +from policyengine_us.model_api import * + + +class wa_rca_eligible(Variable): + value_type = bool + entity = SPMUnit + label = "Washington Refugee Cash Assistance eligible" + definition_period = MONTH + defined_for = StateCode.WA + reference = ( + "https://app.leg.wa.gov/wac/default.aspx?cite=388-400-0030", + "https://app.leg.wa.gov/wac/default.aspx?cite=388-466-0120", + "https://www.ecfr.gov/current/title-45/subtitle-B/chapter-IV/part-400/subpart-D/section-400.47", + "https://www.ecfr.gov/current/title-45/subtitle-B/chapter-IV/part-400/subpart-J/section-400.211", + ) + # Two WAC 388-400-0030 exclusions are not tracked at the moment: + # (2)(b) applicants denied/terminated from TANF for noncompliance + # (requires TANF sanction history) and (2)(c) full-time students in + # higher education. + + def formula(spm_unit, period, parameters): + members_rca_imm_eligible = spm_unit.members( + "wa_rca_immigration_status_eligible", period + ) + within_orr_window = ( + spm_unit.members("years_since_us_entry", period.this_year) < 1 + ) + has_rca_eligible_member = spm_unit.any( + members_rca_imm_eligible & within_orr_window + ) + + tanf_eligible = spm_unit("wa_tanf_eligible", period) + sfa_eligible = spm_unit("wa_sfa_eligible", period) + not_otherwise_eligible = ~tanf_eligible & ~sfa_eligible + + show_all = spm_unit("wa_show_all_cash_assistance_programs", period) + + income_eligible = spm_unit("wa_tanf_income_eligible", period) + resources_eligible = spm_unit("wa_tanf_resources_eligible", period.this_year) + + return ( + (has_rca_eligible_member | show_all) + & (not_otherwise_eligible | show_all) + & income_eligible + & resources_eligible + ) diff --git a/policyengine_us/variables/gov/states/wa/dshs/rca/eligibility/wa_rca_immigration_status_eligible.py b/policyengine_us/variables/gov/states/wa/dshs/rca/eligibility/wa_rca_immigration_status_eligible.py new file mode 100644 index 00000000000..ae774efbe37 --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/dshs/rca/eligibility/wa_rca_immigration_status_eligible.py @@ -0,0 +1,20 @@ +from policyengine_us.model_api import * + + +class wa_rca_immigration_status_eligible(Variable): + value_type = bool + entity = Person + label = "Washington Refugee Cash Assistance immigration status eligible" + definition_period = MONTH + defined_for = StateCode.WA + reference = ( + "https://www.law.cornell.edu/uscode/text/8/1522", + "https://app.leg.wa.gov/wac/default.aspx?cite=388-466-0120", + "https://app.leg.wa.gov/wac/default.aspx?cite=388-400-0030", + ) + + def formula(person, period, parameters): + status = person("immigration_status", period.this_year) + status_str = status.decode_to_str() + p = parameters(period).gov.states.wa.dshs.rca + return np.isin(status_str, p.eligible_immigration_statuses) diff --git a/policyengine_us/variables/gov/states/wa/dshs/rca/wa_rca.py b/policyengine_us/variables/gov/states/wa/dshs/rca/wa_rca.py new file mode 100644 index 00000000000..72146824a2f --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/dshs/rca/wa_rca.py @@ -0,0 +1,19 @@ +from policyengine_us.model_api import * + + +class wa_rca(Variable): + value_type = float + entity = SPMUnit + label = "Washington Refugee Cash Assistance" + unit = USD + definition_period = MONTH + reference = ( + "https://app.leg.wa.gov/wac/default.aspx?cite=388-478-0020", + "https://app.leg.wa.gov/wac/default.aspx?cite=388-466-0120", + ) + defined_for = "wa_rca_eligible" + + def formula(spm_unit, period, parameters): + payment_standard = spm_unit("wa_tanf_payment_standard", period) + countable_income = max_(spm_unit("wa_tanf_countable_income", period), 0) + return max_(payment_standard - countable_income, 0) diff --git a/policyengine_us/variables/gov/states/wa/dshs/sfa/eligibility/wa_sfa_eligible.py b/policyengine_us/variables/gov/states/wa/dshs/sfa/eligibility/wa_sfa_eligible.py new file mode 100644 index 00000000000..11ecf1292cc --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/dshs/sfa/eligibility/wa_sfa_eligible.py @@ -0,0 +1,49 @@ +from policyengine_us.model_api import * + + +class wa_sfa_eligible(Variable): + value_type = bool + entity = SPMUnit + label = "Washington State Family Assistance eligible" + definition_period = MONTH + defined_for = StateCode.WA + reference = ( + "https://app.leg.wa.gov/wac/default.aspx?cite=388-400-0010", + "https://app.leg.wa.gov/rcw/default.aspx?cite=74.08A.010", + ) + + def formula(spm_unit, period, parameters): + # Pathway A: qualified alien in 5-year bar, per WAC 388-400-0010(2)(a). + # Per WAC 388-400-0010, SFA is for families federally ineligible for + # TANF. Exclude at SPM-unit level to prevent mixed-status households + # from receiving both. + has_sfa_eligible_immigrant = ( + add(spm_unit, period, ["wa_sfa_immigration_status_eligible"]) > 0 + ) + has_tanf_eligible_immigrant = ( + add(spm_unit, period, ["wa_tanf_immigration_status_eligible"]) > 0 + ) + immigration_pathway = has_sfa_eligible_immigrant & ~has_tanf_eligible_immigrant + + # Pathway B: 19-20 year old student, per WAC 388-400-0010(2)(c) and + # the caretaker relative of such a student per (2)(d). Caretakers + # are covered automatically because the student's presence in the + # SPM unit makes the whole unit demographically eligible. + has_19_20_student = ( + add(spm_unit, period, ["wa_sfa_student_pathway_eligible"]) > 0 + ) + tanf_eligible = spm_unit("wa_tanf_eligible", period) + student_pathway = has_19_20_student & ~tanf_eligible + + federal_demographic_eligible = spm_unit("is_demographic_tanf_eligible", period) + demographic_eligible = federal_demographic_eligible | has_19_20_student + + show_all = spm_unit("wa_show_all_cash_assistance_programs", period) + income_eligible = spm_unit("wa_tanf_income_eligible", period) + resources_eligible = spm_unit("wa_tanf_resources_eligible", period.this_year) + return ( + demographic_eligible + & (immigration_pathway | student_pathway | show_all) + & income_eligible + & resources_eligible + ) diff --git a/policyengine_us/variables/gov/states/wa/dshs/sfa/eligibility/wa_sfa_immigration_status_eligible.py b/policyengine_us/variables/gov/states/wa/dshs/sfa/eligibility/wa_sfa_immigration_status_eligible.py new file mode 100644 index 00000000000..77f766c621c --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/dshs/sfa/eligibility/wa_sfa_immigration_status_eligible.py @@ -0,0 +1,28 @@ +from policyengine_us.model_api import * + + +class wa_sfa_immigration_status_eligible(Variable): + value_type = bool + entity = Person + label = "Washington State Family Assistance immigration status eligible" + definition_period = MONTH + defined_for = StateCode.WA + reference = ( + "https://app.leg.wa.gov/wac/default.aspx?cite=388-400-0010", + "https://app.leg.wa.gov/wac/default.aspx?cite=388-424-0015", + "https://app.leg.wa.gov/rcw/default.aspx?cite=74.08A.010", + ) + # The qualified-alien-in-5-year-bar pathway (WAC 388-424-0015(1)(a)) is + # modeled here. The 19-20 year old student pathway (WAC 388-400-0010(2)(c)) + # and the caretaker-relative pathway (2)(d) are modeled separately via + # wa_sfa_student_pathway_eligible. Other SFA pathways from + # WAC 388-400-0010 — nonqualified aliens meeting WA residency, + # T/U-visa and VAWA survivors of certain crimes, and pregnant women + # convicted of multi-state fraud — are not tracked at the moment. + + def formula(person, period, parameters): + is_qualified = person("is_citizen_or_legal_immigrant", period.this_year) + tanf_immigration_eligible = person( + "wa_tanf_immigration_status_eligible", period + ) + return is_qualified & ~tanf_immigration_eligible diff --git a/policyengine_us/variables/gov/states/wa/dshs/sfa/eligibility/wa_sfa_student_pathway_eligible.py b/policyengine_us/variables/gov/states/wa/dshs/sfa/eligibility/wa_sfa_student_pathway_eligible.py new file mode 100644 index 00000000000..ca90ab8fe8e --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/dshs/sfa/eligibility/wa_sfa_student_pathway_eligible.py @@ -0,0 +1,25 @@ +from policyengine_us.model_api import * + + +class wa_sfa_student_pathway_eligible(Variable): + value_type = bool + entity = Person + label = "Washington SFA student pathway eligible" + definition_period = MONTH + defined_for = StateCode.WA + reference = ( + "https://app.leg.wa.gov/wac/default.aspx?cite=388-400-0010", + "https://app.leg.wa.gov/wac/default.aspx?cite=388-404-0005", + ) + # WAC 388-404-0005(3)(a) extends SFA to 19-20 year olds with disabilities + # receiving special education per RCW 28A.155.020. We do not separately + # model that pathway at the moment; students still in K-12 special + # education at ages 19-20 are typically captured by is_in_secondary_school. + + def formula(person, period, parameters): + age = person("age", period.this_year) + p = parameters(period).gov.states.wa.dshs.sfa.student_pathway + in_age_range = p.age_eligible.calc(age) + in_secondary = person("is_in_secondary_school", period.this_year) + in_vocational = person("technical_institution_student", period.this_year) + return in_age_range & (in_secondary | in_vocational) diff --git a/policyengine_us/variables/gov/states/wa/dshs/sfa/wa_sfa.py b/policyengine_us/variables/gov/states/wa/dshs/sfa/wa_sfa.py new file mode 100644 index 00000000000..f3a434b25d0 --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/dshs/sfa/wa_sfa.py @@ -0,0 +1,19 @@ +from policyengine_us.model_api import * + + +class wa_sfa(Variable): + value_type = float + entity = SPMUnit + label = "Washington State Family Assistance" + unit = USD + definition_period = MONTH + reference = ( + "https://app.leg.wa.gov/wac/default.aspx?cite=388-478-0020", + "https://app.leg.wa.gov/wac/default.aspx?cite=388-450-0165", + ) + defined_for = "wa_sfa_eligible" + + def formula(spm_unit, period, parameters): + payment_standard = spm_unit("wa_tanf_payment_standard", period) + countable_income = max_(spm_unit("wa_tanf_countable_income", period), 0) + return max_(payment_standard - countable_income, 0) diff --git a/policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.py b/policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.py index 67eb8b2a78e..ec9a289bd4a 100644 --- a/policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.py +++ b/policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_eligible.py @@ -11,9 +11,15 @@ class wa_tanf_eligible(Variable): def formula(spm_unit, period, parameters): demographic_eligible = spm_unit("is_demographic_tanf_eligible", period) - has_citizen = ( - add(spm_unit, period.this_year, ["is_citizen_or_legal_immigrant"]) > 0 + has_tanf_eligible_immigrant = ( + add(spm_unit, period, ["wa_tanf_immigration_status_eligible"]) > 0 ) + show_all = spm_unit("wa_show_all_cash_assistance_programs", period) income_eligible = spm_unit("wa_tanf_income_eligible", period) resources_eligible = spm_unit("wa_tanf_resources_eligible", period.this_year) - return demographic_eligible & has_citizen & income_eligible & resources_eligible + return ( + demographic_eligible + & (has_tanf_eligible_immigrant | show_all) + & income_eligible + & resources_eligible + ) diff --git a/policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_immigration_status_eligible.py b/policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_immigration_status_eligible.py new file mode 100644 index 00000000000..3fad419f410 --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_immigration_status_eligible.py @@ -0,0 +1,28 @@ +from policyengine_us.model_api import * + + +class wa_tanf_immigration_status_eligible(Variable): + value_type = bool + entity = Person + label = "Washington TANF immigration status eligible" + definition_period = MONTH + defined_for = StateCode.WA + reference = ( + "https://www.law.cornell.edu/uscode/text/8/1613", + "https://app.leg.wa.gov/wac/default.aspx?cite=388-424-0006", + "https://app.leg.wa.gov/wac/default.aspx?cite=388-424-0010", + ) + + def formula(person, period, parameters): + status = person("immigration_status", period.this_year) + status_str = status.decode_to_str() + is_citizen = status == status.possible_values.CITIZEN + + p = parameters(period).gov.hhs.tanf + is_bar_exempt = np.isin(status_str, p.bar_exempt_immigration_statuses) + + is_qualified = person("is_citizen_or_legal_immigrant", period.this_year) + years_in_us = person("years_since_us_entry", period.this_year) + past_bar = years_in_us >= p.five_year_bar_years + + return is_citizen | is_bar_exempt | (is_qualified & past_bar) diff --git a/policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.py b/policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.py index 3f5e96b8cd8..2acfab5772d 100644 --- a/policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.py +++ b/policyengine_us/variables/gov/states/wa/dshs/tanf/eligibility/wa_tanf_income_eligible.py @@ -8,6 +8,7 @@ class wa_tanf_income_eligible(Variable): definition_period = MONTH reference = ( "https://app.leg.wa.gov/wac/default.aspx?cite=388-478-0035", + "https://app.leg.wa.gov/wac/default.aspx?cite=388-450-0162", "https://app.leg.wa.gov/wac/default.aspx?cite=388-450-0170", ) defined_for = StateCode.WA @@ -17,4 +18,10 @@ def formula(spm_unit, period, parameters): p = parameters(period).gov.states.wa.dshs.tanf size = spm_unit("spm_unit_size", period) size_capped = min_(size, p.maximum_family_size) - return gross_earned <= p.income.limit[size_capped] + gross_earned_eligible = gross_earned <= p.income.limit[size_capped] + + countable_income = spm_unit("wa_tanf_countable_income", period) + payment_standard = spm_unit("wa_tanf_payment_standard", period) + countable_eligible = countable_income < payment_standard + + return gross_earned_eligible & countable_eligible diff --git a/policyengine_us/variables/gov/states/wa/dshs/wa_show_all_cash_assistance_programs.py b/policyengine_us/variables/gov/states/wa/dshs/wa_show_all_cash_assistance_programs.py new file mode 100644 index 00000000000..342d60c5a6c --- /dev/null +++ b/policyengine_us/variables/gov/states/wa/dshs/wa_show_all_cash_assistance_programs.py @@ -0,0 +1,14 @@ +from policyengine_us.model_api import * + + +class wa_show_all_cash_assistance_programs(Variable): + value_type = bool + entity = SPMUnit + label = "Treat all Washington cash assistance programs as immigration-eligible for display" + definition_period = MONTH + defined_for = StateCode.WA + # Consumer-facing toggle that bypasses immigration-based mutual + # exclusivity across TANF, SFA, and RCA so that frontend calculators + # can display all three programs' benefit amounts side by side for the + # same household. Does not override demographic, income, or resource + # tests. diff --git a/policyengine_us/variables/household/demographic/person/years_since_us_entry.py b/policyengine_us/variables/household/demographic/person/years_since_us_entry.py new file mode 100644 index 00000000000..f15adff47f9 --- /dev/null +++ b/policyengine_us/variables/household/demographic/person/years_since_us_entry.py @@ -0,0 +1,15 @@ +from policyengine_us.model_api import * + + +class years_since_us_entry(Variable): + value_type = float + entity = Person + label = "Years since US entry or qualified immigration status grant" + unit = "year" + definition_period = YEAR + default_value = 5 + reference = "https://www.law.cornell.edu/uscode/text/8/1613" + # Default of 5 treats a person as past the federal 5-year bar, which + # preserves pre-5-year-bar behavior for households that do not set + # this input. Refugee-like or bar-exempt statuses are handled via + # separate parameter lists rather than this clock. diff --git a/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py b/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py index 9fdb27b3401..4393ee80b38 100644 --- a/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py +++ b/policyengine_us/variables/household/income/spm_unit/spm_unit_benefits.py @@ -43,6 +43,8 @@ def formula(spm_unit, period, parameters): "spm_unit_broadband_subsidy", "spm_unit_energy_subsidy", "tanf", + "wa_sfa", + "wa_rca", "high_efficiency_electric_home_rebate", "residential_efficiency_electrification_rebate", "unemployment_compensation",