diff --git a/changelog.d/snap-abawd-ak-borough-waivers.added.md b/changelog.d/snap-abawd-ak-borough-waivers.added.md new file mode 100644 index 00000000000..4f9d1e8d3f6 --- /dev/null +++ b/changelog.d/snap-abawd-ak-borough-waivers.added.md @@ -0,0 +1 @@ +Model Alaska borough-level SNAP ABAWD time limit waivers, waiving the work requirement time limit for residents of waived boroughs and census areas identified by county FIPS code. diff --git a/changelog.d/snap-abawd-ca-statewide-waivers.added.md b/changelog.d/snap-abawd-ca-statewide-waivers.added.md new file mode 100644 index 00000000000..5df1803a151 --- /dev/null +++ b/changelog.d/snap-abawd-ca-statewide-waivers.added.md @@ -0,0 +1 @@ +Add California county-level SNAP ABAWD time limit waivers (CDSS ACL 25-79 and ACL 26-15) and litigation-reinstated statewide waivers for CA, DC, IL, and NV following Rhode Island State Council of Churches v. Rollins. diff --git a/policyengine_us/parameters/gov/usda/snap/work_requirements/abawd/waived_county_fips.yaml b/policyengine_us/parameters/gov/usda/snap/work_requirements/abawd/waived_county_fips.yaml new file mode 100644 index 00000000000..b3a8bf982e8 --- /dev/null +++ b/policyengine_us/parameters/gov/usda/snap/work_requirements/abawd/waived_county_fips.yaml @@ -0,0 +1,118 @@ +# County FIPS codes of areas with an approved USDA FNS waiver of the SNAP +# ABAWD time limit under 7 U.S.C. 2015(o)(4) and 7 CFR 273.24(f). +# +# From 2024-11-01 through 2025-10-31, FNS approved Alaska's request to waive +# the ABAWD time limit in 29 boroughs and census areas — every Alaska +# county-equivalent except the Municipality of Anchorage (FIPS 02020) — plus +# the Eklutna Alaska Native Village Statistical Area, which lies within the +# Anchorage municipality and is below county-level geography, so it is not +# represented here. +# From 2025-11-01 through 2026-10-31, FNS approved Alaska's good faith +# exemption waiver under P.L. 119-21 (OBBBA) section 10102, covering the same +# 29 boroughs and census areas (all except the Municipality of Anchorage). +# From 2025-11-01 through 2026-10-31, FNS approved California's request to +# waive the time limit in seven counties under the post-OBBBA over-10-percent +# unemployment criterion of 7 U.S.C. 2015(o)(4)(A)(i) and 7 CFR 273.24(f): +# Colusa, Imperial, and Tulare (approved October 23, 2025, announced in CDSS +# ACL 25-79), and Alpine, Merced, Monterey, and Plumas (modification approved +# February 10, 2026, retroactively effective November 1, 2025, announced in +# CDSS ACL 26-15). +# Waivers in effect before 2024-11-01 (in Alaska and elsewhere), and after +# the documented 2026-10-31 Alaska and California approval end dates, are +# not modeled. Statewide waivers are modeled separately in waived_states. +description: The Department of Agriculture waives the Able-Bodied Adult Without Dependents (ABAWD) time limit under the Supplemental Nutrition Assistance Program for residents of areas with these county FIPS codes. + +values: + 2018-01-01: + [] + 2024-11-01: + - "02013" # Aleutians East Borough, AK + - "02016" # Aleutians West Census Area, AK + - "02050" # Bethel Census Area, AK + - "02060" # Bristol Bay Borough, AK + - "02063" # Chugach Census Area, AK + - "02066" # Copper River Census Area, AK + - "02068" # Denali Borough, AK + - "02070" # Dillingham Census Area, AK + - "02090" # Fairbanks North Star Borough, AK + - "02100" # Haines Borough, AK + - "02105" # Hoonah-Angoon Census Area, AK + - "02110" # Juneau City and Borough, AK + - "02122" # Kenai Peninsula Borough, AK + - "02130" # Ketchikan Gateway Borough, AK + - "02150" # Kodiak Island Borough, AK + - "02158" # Kusilvak Census Area, AK + - "02164" # Lake and Peninsula Borough, AK + - "02170" # Matanuska-Susitna Borough, AK + - "02180" # Nome Census Area, AK + - "02185" # North Slope Borough, AK + - "02188" # Northwest Arctic Borough, AK + - "02195" # Petersburg Borough, AK + - "02198" # Prince of Wales-Hyder Census Area, AK + - "02220" # Sitka City and Borough, AK + - "02230" # Skagway Municipality, AK + - "02240" # Southeast Fairbanks Census Area, AK + - "02275" # Wrangell City and Borough, AK + - "02282" # Yakutat City and Borough, AK + - "02290" # Yukon-Koyukuk Census Area, AK + 2025-11-01: + - "02013" # Aleutians East Borough, AK + - "02016" # Aleutians West Census Area, AK + - "02050" # Bethel Census Area, AK + - "02060" # Bristol Bay Borough, AK + - "02063" # Chugach Census Area, AK + - "02066" # Copper River Census Area, AK + - "02068" # Denali Borough, AK + - "02070" # Dillingham Census Area, AK + - "02090" # Fairbanks North Star Borough, AK + - "02100" # Haines Borough, AK + - "02105" # Hoonah-Angoon Census Area, AK + - "02110" # Juneau City and Borough, AK + - "02122" # Kenai Peninsula Borough, AK + - "02130" # Ketchikan Gateway Borough, AK + - "02150" # Kodiak Island Borough, AK + - "02158" # Kusilvak Census Area, AK + - "02164" # Lake and Peninsula Borough, AK + - "02170" # Matanuska-Susitna Borough, AK + - "02180" # Nome Census Area, AK + - "02185" # North Slope Borough, AK + - "02188" # Northwest Arctic Borough, AK + - "02195" # Petersburg Borough, AK + - "02198" # Prince of Wales-Hyder Census Area, AK + - "02220" # Sitka City and Borough, AK + - "02230" # Skagway Municipality, AK + - "02240" # Southeast Fairbanks Census Area, AK + - "02275" # Wrangell City and Borough, AK + - "02282" # Yakutat City and Borough, AK + - "02290" # Yukon-Koyukuk Census Area, AK + - "06003" # Alpine County, CA + - "06011" # Colusa County, CA + - "06025" # Imperial County, CA + - "06047" # Merced County, CA + - "06053" # Monterey County, CA + - "06063" # Plumas County, CA + - "06107" # Tulare County, CA + 2026-11-01: + [] + +metadata: + label: SNAP ABAWD time limit waived county FIPS codes + period: month + unit: list + reference: + - title: 7 U.S.C. 2015(o)(4) - ABAWD Time Limit Waivers + href: https://www.law.cornell.edu/uscode/text/7/2015#o_4 + - title: 7 CFR 273.24(f) - Waivers + href: https://www.law.cornell.edu/cfr/text/7/273.24#f + - title: USDA FNS Alaska FY 2025 ABAWD Waiver Response (September 20, 2024) + href: https://www.fna.usda.gov/sites/default/files/resource-files/ak-abawd-response-fy2025.pdf + - title: Public Law 119-21, Section 10102 - Modifications to SNAP ABAWD Requirements + href: https://www.congress.gov/119/plaws/publ21/PLAW-119publ21.pdf#page=81 + - title: USDA FNS ABAWD Waivers Implementation Memorandum (October 3, 2025) + href: https://www.fns.usda.gov/snap/obbb-ABAWD-Waivers-Implementation-Memo + - title: State of Alaska Department of Health, H.R. 1 - AK Impacts (good faith exemption waiver, November 1, 2025 - October 31, 2026) + href: https://health.alaska.gov/en/education/hr-1-ak-impacts/ + - title: CDSS All County Letter No. 25-79 (November 7, 2025) - CalFresh One-Year ABAWD Time Limit Waiver for Colusa, Imperial, and Tulare Counties + href: https://www.cdss.ca.gov/Portals/9/Additional-Resources/Letters-and-Notices/ACLs/2025/25-79.pdf + - title: CDSS All County Letter No. 26-15 (February 26, 2026) - CalFresh One-Year ABAWD Time Limit Waiver for Alpine, Merced, Monterey, and Plumas Counties + href: https://www.cdss.ca.gov/Portals/9/Additional-Resources/Letters-and-Notices/ACLs/2026/26-15.pdf diff --git a/policyengine_us/parameters/gov/usda/snap/work_requirements/abawd/waived_states.yaml b/policyengine_us/parameters/gov/usda/snap/work_requirements/abawd/waived_states.yaml new file mode 100644 index 00000000000..4113d5dedb5 --- /dev/null +++ b/policyengine_us/parameters/gov/usda/snap/work_requirements/abawd/waived_states.yaml @@ -0,0 +1,101 @@ +# State codes of states with an approved USDA FNS statewide waiver of the +# SNAP ABAWD time limit under 7 U.S.C. 2015(o)(4) and 7 CFR 273.24(f). +# +# Only waivers verified as STATEWIDE from FNS FY2025 waiver response letters +# are encoded here: +# - CA: statewide, 2024-11-01 through 2025-10-31 (FNS response, +# Aug 12, 2024), replaced by a statewide waiver effective 2025-02-01 +# (FNS response, Jan 15, 2025). +# - IL: statewide, 2024-11-01 through 2025-10-31 (FNS response, +# Aug 19, 2024), replaced by a statewide waiver effective 2025-02-01 +# through 2026-01-31 (FNS response, partially approving 12 of the +# requested 24 months). +# - NV: statewide since 2024-07-01; the FNS response of Mar 14, 2025, +# effective 2025-02-01 through 2026-01-31, replaced the prior statewide +# waiver (partially approving 12 of the requested 24 months). Modeled from +# 2024-11-01, in line with this parameter's overall modeling start date. +# - DC: districtwide, 2024-12-01 through 2025-11-30 (FNS response, +# Apr 26, 2024), replaced by a districtwide waiver effective 2025-01-01 +# (FNS response, Jan 13, 2025). +# +# In November 2025, USDA terminated waivers approved under the +# "lack of sufficient jobs" criterion, which P.L. 119-21 (OBBBA) +# section 10102 repealed. After Rhode Island State Council of Churches v. +# Rollins (D.R.I., No. 1:25-cv-00569, TRO issued 2025-10-31), USDA's +# February 26, 2026 guidance kept the terminated waivers in effect through +# their original expiration dates. Per that guidance's expiration table (as +# reported by Ballotpedia's OBBBA implementation tracker; USDA has not +# published the table on a stable public page): CT and KY through 2025-11-30; +# DC, NM, and OR through 2025-12-31; CA, IL, NV, NJ, and WA through +# 2026-01-31; MI, NY, and RI through 2026-02-28; MN, MT, and ND through +# 2026-06-30. +# +# Known limitations: +# - Twelve of the sixteen reinstated waivers were PARTIAL-state waivers per +# the FNS FY2025 response letters (CT: 68 towns; KY: 117 counties; MI: 80 +# counties, 3 cities, 10 reservations; MN: 17 counties, 9 reservations; +# MT: 6 reservation areas; NJ: 20 counties; NM: 29 counties, +# 18 reservations; NY: 61 counties; OR: 30 counties, 7 reservation areas; +# RI: 9 towns; WA: 38 counties, 1 reservation area; ND: partial per the +# FY2025 quarterly status reports). Sub-state coverage would require +# county FIPS (or sub-county) encoding and is not modeled here. +# - The CA and DC FNS approval letters run through 2027-01-31 and 2026-12-31 +# respectively, but the USDA February 26, 2026 guidance table lists their +# reinstated expirations as 2026-01-31 and 2025-12-31; this parameter +# follows the guidance table, which governs post-litigation administration +# (CDSS implemented the time limit statewide on 2026-06-01 per ACL 25-93). +# - Statewide waivers in effect before 2024-11-01 are not modeled. +# - Guam and the U.S. Virgin Islands held territory-wide waivers but are not +# modeled by PolicyEngine US. +description: The Department of Agriculture waives the Able-Bodied Adult Without Dependents (ABAWD) time limit under the Supplemental Nutrition Assistance Program statewide in these states. + +values: + 2018-01-01: + [] + 2024-11-01: + - CA + - IL + - NV + 2024-12-01: + - CA + - DC + - IL + - NV + # DC districtwide waiver expired 2025-12-31. + 2026-01-01: + - CA + - IL + - NV + # CA, IL, and NV statewide waivers expired 2026-01-31. + 2026-02-01: + [] + +metadata: + label: SNAP ABAWD time limit statewide waived states + period: month + unit: list + reference: + - title: 7 U.S.C. 2015(o)(4) - ABAWD Time Limit Waivers + href: https://www.law.cornell.edu/uscode/text/7/2015#o_4 + - title: 7 CFR 273.24(f) - Waivers + href: https://www.law.cornell.edu/cfr/text/7/273.24#f + - title: USDA FNS California Statewide ABAWD Waiver Response, FY 2025 (effective 2024-11-01) + href: https://fns-prod.azureedge.us/sites/default/files/resource-files/ca-abawd-response-fy2025.pdf + - title: USDA FNS California Statewide ABAWD Waiver Response, January 15, 2025 (effective 2025-02-01) + href: https://fns-prod.azureedge.us/sites/default/files/resource-files/ca-abawd-response-fy2025-b.pdf + - title: USDA FNS Illinois Statewide ABAWD Waiver Response, FY 2025 (effective 2024-11-01) + href: https://fns-prod.azureedge.us/sites/default/files/resource-files/il-abawd-response-fy2025.pdf + - title: USDA FNS Illinois Statewide ABAWD Waiver Response (effective 2025-02-01 through 2026-01-31) + href: https://fns-prod.azureedge.us/sites/default/files/resource-files/il-abawd-response-fy2025-b.pdf + - title: USDA FNS Nevada Statewide ABAWD Waiver Response (effective 2025-02-01 through 2026-01-31) + href: https://fns-prod.azureedge.us/sites/default/files/resource-files/nv-abawd-response-fy2025.pdf + - title: USDA FNS District of Columbia Districtwide ABAWD Waiver Response, FY 2025 (effective 2024-12-01) + href: https://fns-prod.azureedge.us/sites/default/files/resource-files/dc-abawd-response-fy2025.pdf + - title: USDA FNS District of Columbia Districtwide ABAWD Waiver Response, January 13, 2025 (effective 2025-01-01) + href: https://fns-prod.azureedge.us/sites/default/files/resource-files/dc-abawd-response-fy2025-b.pdf + - title: Rhode Island State Council of Churches v. Rollins, D.R.I. No. 1:25-cv-00569, Temporary Restraining Order (November 1, 2025) + href: https://democracyforward.org/wp-content/uploads/2025/11/RH-State-Council-of-Churchs-v.-Rollins-SNAP-TRO-11.1.25.pdf + - title: Ballotpedia, USDA guidance in response to litigation reinstates SNAP benefits for some ABAWDs (reporting the USDA February 26, 2026 guidance expiration table) + href: https://news.ballotpedia.org/2026/04/02/usda-guidance-in-response-to-litigation-reinstates-snap-benefits-for-some-abawds/ + - title: USDA FNS FY 2025 Quarter 2 ABAWD Waiver Status Report (statewide vs. partial waiver classification) + href: https://fns-prod.azureedge.us/sites/default/files/resource-files/FY25-Quarter-2-ABAWD-Waiver-Status-Revised.pdf diff --git a/policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/work_requirements/is_in_snap_abawd_waived_area.yaml b/policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/work_requirements/is_in_snap_abawd_waived_area.yaml new file mode 100644 index 00000000000..f9794135e67 --- /dev/null +++ b/policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/work_requirements/is_in_snap_abawd_waived_area.yaml @@ -0,0 +1,265 @@ +# SNAP ABAWD area waivers — 7 U.S.C. 2015(o)(4), 7 CFR 273.24(f). +# From 2024-11-01, FNS waived the ABAWD time limit in every Alaska +# borough and census area except the Municipality of Anchorage +# (FIPS 02020). +# From 2025-11-01 through 2026-10-31, FNS waived the time limit in seven +# California counties (CDSS ACL 25-79 and ACL 26-15). +# Statewide waivers (CA, DC, IL, NV) are modeled in waived_states, +# including the period litigation kept them in effect (Rhode Island State +# Council of Churches v. Rollins, D.R.I. No. 1:25-cv-00569). + +- name: Case 1, post-HR1 AK resident of waived borough (Fairbanks North Star) meets ABAWD requirements via area waiver. + period: 2026-01 + absolute_error_margin: 0.1 + input: + age: 30 + weekly_hours_worked_before_lsr: 1 + is_disabled: false + state_code: AK + county_fips: "02090" + output: + is_in_snap_abawd_waived_area: true + meets_snap_abawd_work_requirements: true + +- name: Case 2, post-HR1 AK resident of non-waived Municipality of Anchorage is subject to the time limit. + period: 2026-01 + absolute_error_margin: 0.1 + input: + age: 30 + weekly_hours_worked_before_lsr: 1 + is_disabled: false + state_code: AK + county_fips: "02020" + output: + is_in_snap_abawd_waived_area: false + meets_snap_abawd_work_requirements: false + +- name: Case 3, post-HR1 lower-48 resident (Harris County, TX) is unaffected by the Alaska waiver. + period: 2026-01 + absolute_error_margin: 0.1 + input: + age: 30 + weekly_hours_worked_before_lsr: 1 + is_disabled: false + state_code: TX + county_fips: "48201" + output: + is_in_snap_abawd_waived_area: false + meets_snap_abawd_work_requirements: false + +- name: Case 4, AK household without county geography falls back to no area waiver. + period: 2026-01 + absolute_error_margin: 0.1 + input: + age: 30 + weekly_hours_worked_before_lsr: 1 + is_disabled: false + state_code: AK + output: + is_in_snap_abawd_waived_area: false + meets_snap_abawd_work_requirements: false + +- name: Case 5, pre-HR1 AK resident of waived census area (Bethel) meets ABAWD requirements via area waiver. + period: 2025-01 + absolute_error_margin: 0.1 + input: + age: 30 + weekly_hours_worked_before_lsr: 1 + is_disabled: false + state_code: AK + county_fips: "02050" + output: + is_in_snap_abawd_waived_area: true + meets_snap_abawd_work_requirements: true + +- name: Case 6, after the Alaska waiver approval end date the area waiver no longer applies. + period: 2027-01 + absolute_error_margin: 0.1 + input: + age: 30 + weekly_hours_worked_before_lsr: 1 + is_disabled: false + state_code: AK + county_fips: "02090" + output: + is_in_snap_abawd_waived_area: false + meets_snap_abawd_work_requirements: false + +# California county waivers (CDSS ACL 25-79, ACL 26-15): Colusa, Imperial, +# Tulare, Alpine, Merced, Monterey, and Plumas counties, 2025-11-01 through +# 2026-10-31. California applies pre-HR1 ABAWD rules until 2026-06-01 +# (ACL 25-93), so the waiver is tested in both branches. + +- name: Case 7, CA resident of waived Tulare County (2026-03, after the statewide waiver expired) is exempt via the county waiver under pre-HR1 rules. + period: 2026-03 + absolute_error_margin: 0.1 + input: + age: + 2026: 30 + weekly_hours_worked_before_lsr: + 2026: 1 + is_disabled: + 2026: false + state_code: + 2026: CA + county_fips: + 2026: "06107" + output: + is_in_snap_abawd_waived_area: true + meets_snap_abawd_work_requirements: true + +- name: Case 8, CA resident of non-waived Los Angeles County (2026-03) is not exempt via any waiver. + period: 2026-03 + absolute_error_margin: 0.1 + input: + age: + 2026: 30 + weekly_hours_worked_before_lsr: + 2026: 1 + is_disabled: + 2026: false + state_code: + 2026: CA + county_fips: + 2026: "06037" + output: + is_in_snap_abawd_waived_area: false + meets_snap_abawd_work_requirements: false + +- name: Case 9, CA resident of waived Tulare County (2026-07, after CA adopts HR1 rules on 2026-06-01) remains exempt via the county waiver under the post-HR1 branch. + period: 2026-07 + absolute_error_margin: 0.1 + input: + age: + 2026: 30 + weekly_hours_worked_before_lsr: + 2026: 1 + is_disabled: + 2026: false + state_code: + 2026: CA + county_fips: + 2026: "06107" + output: + is_in_snap_abawd_waived_area: true + meets_snap_abawd_work_requirements: true + +- name: Case 10, CA household without county geography (2025-12) is exempt via the litigation-reinstated statewide waiver under pre-HR1 rules. + period: 2025-12 + absolute_error_margin: 0.1 + input: + age: + 2025: 30 + weekly_hours_worked_before_lsr: + 2025: 1 + is_disabled: + 2025: false + state_code: + 2025: CA + output: + is_in_snap_abawd_waived_area: true + meets_snap_abawd_work_requirements: true + +# Litigation-reinstated statewide waivers (Rhode Island State Council of +# Churches v. Rollins; USDA February 26, 2026 guidance): CA, IL, and NV +# through 2026-01-31; DC through 2025-12-31. + +- name: Case 11, NV resident (2026-01) is exempt via the statewide waiver under the post-HR1 branch. + period: 2026-01 + absolute_error_margin: 0.1 + input: + age: + 2026: 30 + weekly_hours_worked_before_lsr: + 2026: 1 + is_disabled: + 2026: false + state_code: + 2026: NV + output: + is_in_snap_abawd_waived_area: true + meets_snap_abawd_work_requirements: true + +- name: Case 12, NV resident (2026-02) is no longer exempt after the statewide waiver expires on 2026-01-31. + period: 2026-02 + absolute_error_margin: 0.1 + input: + age: + 2026: 30 + weekly_hours_worked_before_lsr: + 2026: 1 + is_disabled: + 2026: false + state_code: + 2026: NV + output: + is_in_snap_abawd_waived_area: false + meets_snap_abawd_work_requirements: false + +- name: Case 13, DC resident (2025-12) is exempt via the districtwide waiver. + period: 2025-12 + absolute_error_margin: 0.1 + input: + age: + 2025: 30 + weekly_hours_worked_before_lsr: + 2025: 1 + is_disabled: + 2025: false + state_code: + 2025: DC + output: + is_in_snap_abawd_waived_area: true + meets_snap_abawd_work_requirements: true + +- name: Case 14, DC resident (2026-01) is no longer exempt after the districtwide waiver expires on 2025-12-31. + period: 2026-01 + absolute_error_margin: 0.1 + input: + age: + 2026: 30 + weekly_hours_worked_before_lsr: + 2026: 1 + is_disabled: + 2026: false + state_code: + 2026: DC + output: + is_in_snap_abawd_waived_area: false + meets_snap_abawd_work_requirements: false + +- name: Case 15, IL resident (2025-06, before HR1 takes effect) is exempt via the statewide waiver under the pre-HR1 branch. + period: 2025-06 + absolute_error_margin: 0.1 + input: + age: + 2025: 30 + weekly_hours_worked_before_lsr: + 2025: 1 + is_disabled: + 2025: false + state_code: + 2025: IL + output: + is_in_snap_abawd_waived_area: true + meets_snap_abawd_work_requirements: true + +# Documented limitation: 12 of the 16 litigation-reinstated waivers were +# partial-state waivers (e.g., NY covered 61 of 62 counties) and are not +# modeled; see waived_states.yaml. + +- name: Case 16, NY resident (2026-02) is not exempt because NY's litigation-reinstated waiver was partial-state and is not modeled. + period: 2026-02 + absolute_error_margin: 0.1 + input: + age: + 2026: 30 + weekly_hours_worked_before_lsr: + 2026: 1 + is_disabled: + 2026: false + state_code: + 2026: NY + output: + is_in_snap_abawd_waived_area: false + meets_snap_abawd_work_requirements: false diff --git a/policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/work_requirements/meets_snap_abawd_work_requirements.yaml b/policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/work_requirements/meets_snap_abawd_work_requirements.yaml index a981c0dc15e..b82b9236a35 100644 --- a/policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/work_requirements/meets_snap_abawd_work_requirements.yaml +++ b/policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/work_requirements/meets_snap_abawd_work_requirements.yaml @@ -33,6 +33,8 @@ output: meets_snap_abawd_work_requirements: true +# state_code defaults to CA, which holds a statewide waiver from +# 2024-11-01 (see waived_states.yaml), so a non-waived state is set. - name: Case 4, pre-HR1 age 54 NOT exempt. period: 2024 absolute_error_margin: 0.1 @@ -40,6 +42,7 @@ age: 54 weekly_hours_worked_before_lsr: 1 is_disabled: false + state_code: TX output: meets_snap_abawd_work_requirements: false @@ -357,6 +360,8 @@ output: meets_snap_abawd_work_requirements: true +# state_code defaults to CA, which holds a statewide waiver from +# 2024-11-01 (see waived_states.yaml), so a non-waived state is set. - name: Case 25, pre-HR1 Indian exemption input does not change ABAWD rules. period: 2024 input: @@ -364,6 +369,7 @@ weekly_hours_worked_before_lsr: 1 is_disabled: false is_snap_abawd_indian_exempt: true + state_code: TX output: meets_snap_abawd_work_requirements: false @@ -451,13 +457,19 @@ output: meets_snap_abawd_work_requirements: [true, true] -- name: Case 32, CA pre-HR1 non-exempt person fails. - period: 2026-01 +# In 2026-01 the litigation-reinstated CA statewide waiver still applies +# (through 2026-01-31), so the non-exempt case is tested in 2026-03. +- name: Case 32, CA pre-HR1 non-exempt person fails after the statewide waiver expires. + period: 2026-03 absolute_error_margin: 0.1 input: - age: 30 - weekly_hours_worked_before_lsr: 1 - is_disabled: false - state_code: CA + age: + 2026: 30 + weekly_hours_worked_before_lsr: + 2026: 1 + is_disabled: + 2026: false + state_code: + 2026: CA output: meets_snap_abawd_work_requirements: false diff --git a/policyengine_us/variables/gov/usda/snap/eligibility/work_requirements/is_in_snap_abawd_waived_area.py b/policyengine_us/variables/gov/usda/snap/eligibility/work_requirements/is_in_snap_abawd_waived_area.py new file mode 100644 index 00000000000..1d5c9071acb --- /dev/null +++ b/policyengine_us/variables/gov/usda/snap/eligibility/work_requirements/is_in_snap_abawd_waived_area.py @@ -0,0 +1,35 @@ +from policyengine_us.model_api import * + + +class is_in_snap_abawd_waived_area(Variable): + value_type = bool + entity = Person + label = "Lives in an area with a waived SNAP ABAWD time limit" + definition_period = MONTH + reference = ( + "https://www.law.cornell.edu/uscode/text/7/2015#o_4", + "https://www.law.cornell.edu/cfr/text/7/273.24#f", + "https://www.fna.usda.gov/sites/default/files/resource-files/ak-abawd-response-fy2025.pdf", + "https://www.cdss.ca.gov/Portals/9/Additional-Resources/Letters-and-Notices/ACLs/2025/25-79.pdf", + "https://www.cdss.ca.gov/Portals/9/Additional-Resources/Letters-and-Notices/ACLs/2026/26-15.pdf", + ) + documentation = ( + "Whether the person lives in an area where the USDA Food and " + "Nutrition Service has waived the SNAP ABAWD time limit under " + "7 U.S.C. 2015(o)(4) and 7 CFR 273.24(f). Waived areas are " + "identified by county FIPS code (sub-state waivers) or by state " + "code (statewide waivers, including waivers litigation kept in " + "effect after Rhode Island State Council of Churches v. Rollins, " + "D.R.I. No. 1:25-cv-00569). When a dataset does not include county " + "geography, county_fips defaults to an empty string and no " + "county-level waiver applies; statewide waivers still apply via " + "state_code." + ) + + def formula(person, period, parameters): + p = parameters(period).gov.usda.snap.work_requirements.abawd + county_fips = person.household("county_fips", period.this_year) + state_code = person.household("state_code_str", period.this_year) + in_waived_county = np.isin(county_fips, p.waived_county_fips) + in_waived_state = np.isin(state_code, p.waived_states) + return in_waived_county | in_waived_state diff --git a/policyengine_us/variables/gov/usda/snap/eligibility/work_requirements/meets_snap_abawd_work_requirements.py b/policyengine_us/variables/gov/usda/snap/eligibility/work_requirements/meets_snap_abawd_work_requirements.py index dfc4491f6ca..2a97fa8b520 100644 --- a/policyengine_us/variables/gov/usda/snap/eligibility/work_requirements/meets_snap_abawd_work_requirements.py +++ b/policyengine_us/variables/gov/usda/snap/eligibility/work_requirements/meets_snap_abawd_work_requirements.py @@ -45,6 +45,9 @@ def formula(person, period, parameters): is_pregnant = person("is_pregnant", period) # (F)-(G) Indian, Urban Indian, or California Indian. is_indian_exempt = person("is_snap_abawd_indian_exempt", period) + # Area waiver — 7 U.S.C. 2015(o)(4), 7 CFR 273.24(f). The time limit + # is waived for residents of areas with an approved FNS waiver. + in_waived_area = person("is_in_snap_abawd_waived_area", period) # TODO: HI/AK delayed adoption (2025-11-01) to be handled # in a follow-up PR via state-level hr1_in_effect parameters. base_conditions = ( @@ -54,6 +57,7 @@ def formula(person, period, parameters): | exempt_parent | work_reg_exempt | is_pregnant + | in_waived_area ) # Pre-HR1 exemptions: homeless, veteran is_homeless = person.household("is_homeless", period)