PolicyEngine / PolicyEngine/policyengine-us

SNAP OBBBA work requirements: close state and local rules gaps

Open
#8,820 3 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.