PolicyEngine / PolicyEngine/policyengine-us
SNAP OBBBA work requirements: close state and local rules gaps
- Dominant language
- Python
- Stars
- 162
- Forks
- 212
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 97
Description
## Problem
PolicyEngine-US now has a solid federal SNAP work-requirement skeleton, but we should not yet describe it as complete state-by-state OBBBA work-requirement logic.
The current model covers the main federal mechanics:
- general SNAP work registration, including the 30-hour threshold;
- ABAWD work requirements, including the 20-hour threshold;
- HR1/OBBBA ABAWD age and dependent-child threshold changes;
- removal of pre-HR1 homeless and veteran ABAWD exemptions;
- the Indian / Urban Indian / California Indian exemption;
- California's delayed HR1 ABAWD implementation.
However, the model still has state/local implementation gaps that matter for a household-by-household OBBBA work-requirements analysis. We should track these explicitly rather than burying them in one broad audit note.
## Evidence
In `policyengine-us` 1.729.0:
- `meets_snap_general_work_requirements` reads `weekly_hours_worked_before_lsr`, disability, young-child care, incapacity care, and `is_snap_work_program_participant`.
- `meets_snap_abawd_work_requirements` reads the 20-hour threshold, age, disability, parent/child status, work-registration exemptions, pregnancy, Indian exemption, and pre-HR1 homeless/veteran exemptions.
- `is_snap_abawd_hr1_in_effect` only has a state-specific branch for California.
- `gov.usda.snap.work_requirements.abawd.exempt_states` lists HI and AK after 2025-07-04, but the parameter says it is not consumed by any formula.
- The ABAWD formula has a TODO for HI/AK delayed adoption and Alaska borough-level waivers.
- Some work-registration exemptions are commented as omitted because they need additional input variables.
## Child issues
- #8821: SNAP ABAWD: model HI/AK delayed HR1 implementation and consume exempt-state parameter.
- #8822: SNAP ABAWD: model Alaska borough-level waiver geography.
- #8823: SNAP ABAWD: support qualifying work-program participation or hours.
- #8824: SNAP work registration: add omitted non-age exemption hooks.
- #8825: SNAP work requirements: add state coverage tests and limitation diagnostics.
## Acceptance criteria
- We have focused issues for each rules gap that can reasonably map to a small or medium PR.
- The state/local limitations are visible from GitHub issues rather than only from ad hoc audit notes.
- Research using OBBBA SNAP work requirements can cite which parts are modeled and which are still pending.
## Related data work
Populace data/export parity work is tracked separately in PolicyEngine/populace#248, because even perfect rules will not produce credible household exposure estimates until the data carry hours worked and exemption inputs.
Contributor guide
Research direction
Start by reading the SNAP work-requirement formulas and the gov.usda.snap.work_requirements.abawd.exempt_states parameter described in the issue, then review child issues #8821–#8825. Identify which state or input gaps remain uncovered and confirm each can become a focused PR. Done means the gaps are represented by actionable issues with state coverage and limitation diagnostics where applicable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100