Skip to content

Statewide ABAWD waiver map (FNS FY2025 Q1) + Sec. 10102 discretionary-cut parameter#9030

Open
daphnehanse11 wants to merge 3 commits into
PolicyEngine:mainfrom
daphnehanse11:hr1-waiver-map
Open

Statewide ABAWD waiver map (FNS FY2025 Q1) + Sec. 10102 discretionary-cut parameter#9030
daphnehanse11 wants to merge 3 commits into
PolicyEngine:mainfrom
daphnehanse11:hr1-waiver-map

Conversation

@daphnehanse11

@daphnehanse11 daphnehanse11 commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

Standalone on main — previously stacked on #8961, but rebased off it after main merged the SNAP ineligible-member income proration (snap-ineligible-member-income). This PR now contains only the three ABAWD waiver-map commits and none of #8961's SNAP work-requirement income changes. On the income-counting question that separated the two: 7 CFR 273.11(c)(2) (and the explicit cross-reference in 273.24) prorates the income of an ABAWD-time-limit-ineligible member, which is exactly what main now implements — so this PR adopts main's proration rather than #8961's full-count.

The in-model ABAWD waiver surface was 29 Alaska county FIPS — but the FNS FY2025 Q1 status report shows nine statewide waivers as of October 1, 2024 (CA, DE, DC, GU, IL, NV, NM, NY, VI) plus 22 partial-waiver states. CA+NY+IL alone are roughly a third of the national caseload, fully shielded pre-HR1. With no waiver map, HR1's waiver terminations — the largest single driver in CBO/CBPP loss estimates — scored near zero in release-scale reform runs (#8961 discussion).

  • New waived_states parameter (postal-code-keyed; state_fips is an input defaulting to 6 and cannot key policy), FY25-Q1-sourced, ending at P.L. 119-21 Sec. 10102 enactment with the ran-to-expiration simplification documented.
  • is_in_snap_abawd_waived_area resolves statewide OR county waivers.
  • Sec. 10102's discretionary-exemption cut (8% → 1%) recorded on discretionary_exemption_rate, with a NOTE that runtime consumption requires a persisted seed quantile on the dataset (populace-side follow-up).
  • Partial-waiver states (22) are a documented follow-up — their sub-state area lists live in individual waiver approvals, not the quarterly report.
  • Two existing ABAWD tests pinned to TX (the default-CA household became waiver-exempt).

Caveat: the partial-state county map rides on imputed county geography

Populace datasets impute each household's county via the geography ladder (CPS does not identify counties for most households). County assignment is validated for presence and state-consistency, but has not been validated against county-level benchmarks (populace#241/#292). The exposure decomposes cleanly in release-scale runs (Build K × #8961, 2026 HR1 repeal):

  • ~$4.0B of the $4.18B/yr estimate keys on statewide waivers or non-geographic channels — state is observed, so no county risk.
  • Only the ~$150M partial-state increment depends on imputed counties, and most of it is robust to within-state misassignment because the big partial states are lopsided (MI 82/83 counties waived, KY 117/120, WA 38/39, AZ 14/15 — a misassigned household almost always lands in another waived county).
  • The genuinely county-sensitive slice is the even-split states — CO (18/64), MN (15/87), VA (12/133) — together roughly $80M.

Any published use of the partial-state increment should carry this caveat until county assignment gets a benchmark (populace#292).

Tests: 286 passed across the SNAP work-requirements/income suites rebased on main (main's proration tests and the new waiver tests pass together); new is_in_snap_abawd_waived_area.yaml covers statewide, never-waived, post-HR1, and county cases.

🤖 Generated with Claude Code

@daphnehanse11

Copy link
Copy Markdown
Collaborator Author

Second commit lands the partial-state county map: 436 county FIPS across 16 states at full-county grain, each state's list read from its FNS approval letter (references on the parameter; five research passes over the approval PDFs, verified area-by-area). Sub-county waivers (ME's 213 towns, CT's 68, RI/NH towns, MT's reservation-only waiver) are deliberately omitted and documented as an understatement — county-grain inclusion would overstate them.

Release-scale validation (Build K artifact × #8961, 2026, repeal counterfactual restoring the pre-HR1 waiver map by reading the parameters' own 2025-01 vintages):

waiver map HR1 provisions' effect households affected
none (29 AK counties) $3.06B/yr 1.29M
+ 9 statewide $4.03B/yr 1.63M
+ 436 partial-state counties $4.18B/yr 1.71M

Largest state effects: NY $1.04B, CA $764M, PA $297M, FL $286M, OR $145M, MI $119M, WA $112M. Dataset county coverage verified (e.g., KY records span 106 distinct counties), so the map binds geographically; the moderate partial-state increment reflects the model's remaining exemption shields (annual-hours proxy, discretionary seeds at the pre-HR1 8% cap), tracked separately.

🤖 Generated with Claude Code

@daphnehanse11
daphnehanse11 marked this pull request as ready for review July 17, 2026 19:07
@daphnehanse11
daphnehanse11 requested review from hua7450 and removed request for hua7450 July 17, 2026 19:25
daphnehanse11 and others added 3 commits July 17, 2026 16:04
…-cut parameter

The waiver surface was 29 Alaska county FIPS, so pre-HR1 law offered
almost no waiver protection in-model and HR1's waiver terminations — the
largest single driver in CBO/CBPP estimates — scored near zero. Adds
waived_states (postal-code-keyed: CA DE DC GU IL NV NM NY VI statewide
as of 2024-10-01, ending at Sec. 10102 enactment), resolved alongside
county waivers via state_code_str (state_fips is an input defaulting to
6 and cannot key policy). Two existing ABAWD tests pinned to TX, which
the default-CA household made waiver-exempt. Also records the Sec.
10102 discretionary-exemption cut (8% -> 1%) on the rate parameter;
runtime consumption needs a persisted seed quantile (populace follow-up).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
436 county FIPS across 16 states at full-county grain, each sourced to
its FNS approval letter (references in the parameter). Sub-county
waivers (ME 213 towns, CT 68 towns, RI/NH towns, MT reservation-only,
city and reservation areas elsewhere) are omitted — county-grain
inclusion would overstate them — so the map understates pre-HR1 waiver
protection. Non-delayed states end at Sec. 10102 enactment; Alaska's 29
areas persist to 2026-11-01 per delayed HR1 adoption.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Update is_in_snap_abawd_waived_area docstring: it now resolves statewide
  waivers by state postal code, so a household in a statewide-waived state
  resolves even without county geography (previously the docstring said it
  returns False without a county).
- Add period: month metadata to waived_states for consistency with the
  companion waived_county_fips parameter, and note that the mid-month
  Sec. 10102 break resolves at the following month start (July 2025 stays
  waived, August 2025 clears) — behavior unchanged.
- Reorder waived_county_fips value keys chronologically (2026-11-01 after
  2025-07-04); the engine sorts by date, so behavior is unchanged.

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

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

Codecov Report

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

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #9030   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            1         1           
  Lines           17        15    -2     
=========================================
- Hits            17        15    -2     
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.

@daphnehanse11
daphnehanse11 requested a review from hua7450 July 22, 2026 16:20
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.

1 participant