Skip to content

Document SNAP work requirement modeling simplifications and fix mislabeled HR1 parameter#8869

Draft
daphnehanse11 wants to merge 1 commit into
PolicyEngine:mainfrom
daphnehanse11:snap-work-requirements-documentation
Draft

Document SNAP work requirement modeling simplifications and fix mislabeled HR1 parameter#8869
daphnehanse11 wants to merge 1 commit into
PolicyEngine:mainfrom
daphnehanse11:snap-work-requirements-documentation

Conversation

@daphnehanse11

Copy link
Copy Markdown
Collaborator

Fixes #8866

Documentation/metadata-only PR — no behavior changes.

Changes

  1. ABAWD 3-in-36 time limit (meets_snap_abawd_work_requirements.py): adds a documentation attribute explaining that 7 CFR 273.24(b) disqualifies an ABAWD only after 3 countable months in 36, with regaining provisions (80 hours in 30 days, 273.24(d)) and one bonus 3-consecutive-month allotment (273.24(e)). The model treats noncompliance as immediate monthly ineligibility — a steady-state assumption that overstates ineligibility for new spells, largest in FY2026 as HR1 restarts time-limit clocks.
  2. Voluntary quit / reduced work effort (meets_snap_general_work_requirements.py): adds a documentation attribute noting that 7 CFR 273.7(j) disqualifications are not modeled, since job-separation events are unobservable in cross-sectional survey data.
  3. Mislabeled HR1 parameter (gov/usda/snap/work_requirements/abawd/in_effect.yaml): the description and label said it "removes the exemption ... for homeless individuals or veterans," but it gates all HR1 ABAWD changes (higher exempted age threshold, lower dependent-child age threshold, exemption removals and additions). Rewritten accurately; references kept.
  4. Annual hours proxy: comments in both work requirement variables where weekly_hours_worked_before_lsr is read over period.this_year, noting the annual-average proxy for what is legally a monthly determination (20 hrs/week averaged monthly / 80 hrs/month per 7 CFR 273.24(a)(1); 30 hrs/week per 273.7(b)(1)(vii)).
  5. Annual UC receipt (is_snap_work_registration_exempt_non_age.py): comment noting that annual unemployment compensation receipt exempting all months of the year is a simplification.

The optional parameterized grace-months fraction from the issue is deliberately excluded to keep this PR docs-only; it can follow in a separate PR if wanted.

Testing

policyengine-core test policyengine_us/tests/policy/baseline/gov/usda/snap/eligibility/work_requirements -c policyengine_us — 61 passed, unchanged.

🤖 Generated with Claude Code

…beled HR1 parameter

- Add documentation to meets_snap_abawd_work_requirements explaining the
  3-in-36 steady-state simplification of the 7 CFR 273.24(b) time limit,
  including regaining provisions and the FY2026 HR1 clock restart.
- Add documentation to meets_snap_general_work_requirements noting that
  voluntary quit / reduced work effort (7 CFR 273.7(j)) is not modeled.
- Add comments noting the annual-average-hours proxy for monthly work
  hour determinations and the annual UC receipt simplification.
- Rewrite gov/usda/snap/work_requirements/abawd/in_effect description
  and label: it gates all HR1 ABAWD changes, not only the homeless and
  veteran exemption removals.

No behavior changes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@codecov

codecov Bot commented Jul 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (fa285ae) to head (bbeadff).
⚠️ Report is 640 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #8869   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            5         3    -2     
  Lines           62        72   +10     
=========================================
+ Hits            62        72   +10     
Flag Coverage Δ
unittests 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SNAP work requirements: document non-modeled provisions and fix mislabeled in_effect parameter

1 participant