Update SNAP ABAWD work requirements for HR1 (P.L. 119-21) with missing exemptions and CA delay#7453
Merged
PavelMakarchuk merged 7 commits intomainfrom Feb 23, 2026
Merged
Conversation
Fix broken test cases (9, 11, 16) by adjusting periods and expected values after HR1 effective date moved to 2025-07-01. Add new cases testing ages 60-64 not ABAWD-exempt post-HR1, incapacitated person exemption, CA pre-HR1 rules, and SPM-unit-level CA/federal routing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ate CA duplicate - Add is_snap_work_registration_exempt_non_age for 7 CFR 273.7(b)(1) non-age exemptions (disabled, child under 6, incapacitated, student, UI recipient) - Absorb CA pre-HR1 delay logic into federal ABAWD variable using CA-specific parameters instead of hardcoded frozen date - Delete ca_meets_snap_abawd_work_requirements (merged into federal variable) - Add CA ABAWD age threshold parameters with delayed 2026-06-01 effective date - Redesign test cases organized by statutory provision with legal citations Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Extract state-level HR1 adoption routing into single variable using select() - Remove CA-specific parameters (use hardcoded pre-HR1 date instead) - Remove state logic from ABAWD and aggregator formulas - Fix test naming conventions and period formats per PolicyEngine standards - Add explicit state_code to post-HR1 tests (default is CA which delays HR1) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ulate_divide bug The unemployment_compensation call with options=[DIVIDE] triggers a policyengine-core bug where calculate_divide() rejects the decode_enums kwarg. Since we only check > 0, yearly amount works identically. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
7 CFR 273.7(b)(1)(v) also exempts people who have applied for but not yet received unemployment compensation; we are not tracking that yet. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #7453 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 2 4 +2
Lines 24 79 +55
=========================================
+ Hits 24 79 +55
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
hua7450
approved these changes
Feb 23, 2026
PavelMakarchuk
approved these changes
Feb 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces #7415 (rebased to resolve merge conflicts). Original PR by @hua7450.
Summary
Updates SNAP ABAWD work requirements to reflect P.L. 119-21 (One Big Beautiful Bill Act), adds missing non-age work registration exemptions per 7 U.S.C. 2015(o)(3)(D), and properly handles California's delayed HR1 adoption (ACL 25-93) via a centralized state routing variable.
Closes #7446 is tracked as a follow-up (HI/AK delayed adoption parameters).
Regulatory Authority
Changes
Federal parameter updates
2025-07-04(P.L. 119-21 enactment date)1997-03-01(PRWORA effective date) with full FRA 2023 phase-in history:1997-03-01(unchanged value of 18 until HR1 → 14)HI/AK exemption removed
is_exempt_state) frommeets_snap_abawd_work_requirementsformulaexempt_states.yamlparameter retained with updated description documenting preferential waiver authority per 7 U.S.C. 2015(o)(4)(A)(ii) and 2015(o)(7)New variable:
is_snap_abawd_hr1_in_effectCentralizes state-level HR1 adoption routing using
select(). States that delay HR1 adoption (currently CA) have their ownhr1_in_effectparameter; all other states use the federalin_effectparameter.New variable:
is_snap_work_registration_exempt_non_ageImplements 7 CFR 273.7(b)(1) non-age exemptions used by ABAWD exemption (D):
is_disabled)Intentionally omitted (documented in code):
Not implemented (documented in code)
Refactored
meets_snap_abawd_work_requirementsis_snap_abawd_hr1_in_effectfor pre/post HR1 branchingparameters("2025-06-01")(last month before effective date)Deleted
ca_meets_snap_abawd_work_requirements.pyand its tests (functionality merged into federal variable viais_snap_abawd_hr1_in_effectrouting)Behavioral Impact
Test plan
policyengine-core test .../work_requirements -c policyengine_us -v)Tests organized by statutory provision:
is_snap_abawd_hr1_in_effect): TX post/pre-HR1, CA pre/post-adoption