Skip to content

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

Merged
hua7450 merged 3 commits into
PolicyEngine:mainfrom
daphnehanse11:hr1-waiver-map
Aug 7, 2026
Merged

Statewide ABAWD waiver map (FNS FY2025 Q1) + Sec. 10102 discretionary-cut parameter#9030
hua7450 merged 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
@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 (63bcfc5) to head (bb81609).
⚠️ Report is 6 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##              main     #9030    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files           12         1    -11     
  Lines          192        17   -175     
  Branches         0         1     +1     
==========================================
- Hits           192        17   -175     
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

hua7450 commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

I pushed a formatting-only cleanup to waived_county_fips.yaml and synced the branch with the latest upstream/main. This reformats the description, moves contextual details into comments, and quotes FIPS codes consistently. It does not change any waiver areas or effective dates.

Codex spotted the following issues, which require further investigation:

  1. discretionary_exemption_rate.yaml says P.L. 119-21 did not amend 7 U.S.C. § 2015(o)(6), but it also introduces a 1% rate attributed to that law. The statutory rate appears to remain 8%.
  2. The blanket July 4, 2025 waiver cutoff may conflict with FNS guidance stating that affected waivers remain effective through their original expiration dates because of ongoing litigation.
  3. The FY2025-Q1 county waiver list may need separate implementation dates. For example, Kentucky’s approval began December 1, 2024, while New Jersey’s and Washington’s began February 1, 2025.
  4. California’s statewide waiver appears to have continued through January 31, 2026. Seven counties—Alpine, Colusa, Imperial, Merced, Monterey, Plumas, and Tulare—also appear to have coverage from November 1, 2025 through October 31, 2026.
  5. Pennsylvania has two “balance of county” waivers that cannot be represented exactly using county FIPS codes: Butler County excludes Cranberry Township, and Cumberland County excludes Hampden Township. This may need to be documented as a known county-level approximation.

These findings were not changed by the formatting commit and should be verified against the underlying FNS approvals before making policy-data updates.

Validation: make format passed, and the targeted ABAWD tests passed (47 tests).

@hua7450 hua7450 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting changes based on the policy-data issues summarized in this comment. In particular, items 1–4 require further investigation and verification against the underlying statute and FNS approvals before this PR is ready to merge. Item 5 should be documented as a known county-level modeling limitation.

@DTrim99

DTrim99 commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

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

Program Review — via /review-program (multi-agent audit)

PR: #9030 (hr1-waiver-map, daphnehanse11)
Scope: SNAP ABAWD time-limit waiver geography (gov/usda/snap/work_requirements/abawd) — new waived_states.yaml (9 statewide jurisdictions), rewritten waived_county_fips.yaml (29 AK → 465 FIPS, adding a 436-county partial-waiver map across 16 states), is_in_snap_abawd_waived_area formula (county OR state), and a discretionary_exemption_rate entry modeling an 8%→1% cut attributed to P.L. 119-21 Sec. 10102.
Reviewed: 2026-08-04. Read-only; no code changes made.

This review has an unusual shape, and the findings organize around three pillars:

  1. Not enacted (CRITICAL): the 8%→1% discretionary-exemption cut does not exist in enacted P.L. 119-21. Both the source audit and an independent adversarial verification CONFIRMED this against the full enacted statute text. The 2025-07-04: 0.01 entry must be removed.
  2. Superseded / contradicted by merged Model California county and litigation-reinstated statewide SNAP ABAWD waivers #8872: most of waived_states.yaml, the formula change, and both test-file changes are already on main or contradict main's litigation-aware timeline. Every file except the changelog fragments and discretionary_exemption_rate.yaml will merge-conflict. The PR's "everything terminates at enactment (2025-07-04)" premise is also wrong in direction: per the FNS implementation memo, existing waivers ran through Aug–Oct 2025 and were administratively terminated ~2025-11-02.
  3. Salvageable novel core: the FY2025 partial-state 436-county map (16 states) is genuinely new — main documents partial-state waivers as a known unmodeled limitation — and is mostly source-verified (9 audit matches), with correctable defects (MI county count, HI expiry, effective-date compression, month-key convention, a wrong PDF anchor).

Sources

  • FNS FY25 Quarter 1 ABAWD Waiver Status PDF (fns.usda.gov, 69,846 bytes; byte-identical copy verified on fns-prod.azureedge.us) — "Updated to show waivers in effect as of October 1, 2024."
  • P.L. 119-21 enrolled text (PLAW-119publ21.pdf, congress.gov, 968,588 bytes, full-text extracted and grepped) — Sec. 10102, 139 Stat. 81–83.
  • 7 U.S.C. 2015 current text + 2025 OLRC amendment notes (uscode.house.gov, prelim edition — verified current through P.L. 119-21).
  • FNS approval letters: KY (Nov 27 2024, FY2025), MI (Oct 19 2023, FY2024), MI FY2025 renewal, HI (May 31 2024, FY2024); host resolution spot-checks for AZ/CO/MA/MD/MN/ND/NJ/OR/PA/SD/VA/WA/WI letter URLs.
  • FNS Oct 3 2025 OBBBA ABAWD Waivers implementation memo — live page now a stripped stub ("Page updated: February 25, 2026"); text verified via web.archive.org snapshot 2025-10-08.
  • Merged PR Model California county and litigation-reinstated statewide SNAP ABAWD waivers #8872 (main, merged 2026-08-04) — statewide waiver map with litigation-aware timeline per the USDA Feb 26 2026 memo Appendix A (RI Council of Churches v. Rollins).

Branch Status


Critical (Must Fix)

C1. The 8%→1% discretionary-exemption cut was NOT enacted — remove 2025-07-04: 0.01

discretionary_exemption_rate.yaml adds 2025-07-04: 0.01 citing "7 U.S.C. 2015(o)(6), amended by P.L. 119-21 … Section 10102." This provision does not exist in the enacted law. Confirmed twice — by the source audit and by an independent adversarial verification against the full enrolled text:

  • Enacted Sec. 10102 contains exactly three subsections: (a) Exceptions (rewrites 2015(o)(3)), (b) Standardizing Enforcement (amends the (o)(4)(A)(ii) waiver criterion: "is in a noncontiguous State and has an unemployment rate that is at or above 1.5 times the national unemployment rate", adds (o)(4)(C)), (c) Waiver for Noncontiguous States (new (o)(7) good-faith exemption expiring Dec 31 2028). There is no subsection (d).
  • Grep of the full enacted PLAW text: zero occurrences of "(o)(6)"; "1 percent" appears nowhere in the SNAP title.
  • Current U.S. Code (prelim, post-119-21 — it already contains the new (o)(7)): 2015(o)(6)(F) still reads "…for fiscal years 2024 and each subsequent fiscal year … does not exceed 8 percent of the number of covered individuals" (set by P.L. 118-5, Fiscal Responsibility Act of 2023). The OLRC 2025 amendment notes list §10102 changes to (o)(3), (o)(4)(A)(ii), (o)(4)(C), (o)(7)/(8) — no (o)(6) amendment.
  • The PR's own file contradicts itself: the comment retained two lines above the new entry still says "OBBBA (P.L. 119-21, Section 10102) did not amend 2015(o)(6)." The retained comment is correct; the new entry is not.
  • Likely origin: the 8%→1% cut appeared in the House-passed version of H.R. 1 but was dropped before enactment. The entry encodes a bill draft, not law.

Fix: delete the 2025-07-04: 0.01 entry (and the changelog language claiming the cut). The runtime-consumption question (the parameter is populace-side, never read by any variable — confirmed by grep) is moot once the entry is gone; if a future legal basis emerges, key it at a fiscal-year boundary and reconcile the file's comment.

C2. Termination-at-enactment premise is wrong in direction and timing

The PR ends all statewide waivers and all non-AK county waivers at 2025-07-04 (effectively 2025-08 under monthly semantics). The statute does not do this: Sec. 10102(b) narrows approval criteria prospectively and contains no termination or savings clause for already-approved waivers. The FNS Oct 3 2025 implementation memo (via Wayback) states the criteria changes "were effective upon enactment," but for existing approvals: "FNS strongly encourages State agencies to terminate active ABAWD waivers approved under the outdated 'lack of sufficient jobs' criteria as soon as possible … FNS will terminate any such ABAWD waivers 30 days after issuance of this memorandum. State agencies with a currently approved ABAWD waiver … that expires on or before November 2, 2025, do not need to take further action."

So existing waivers ran to the earlier of their own expiration or ~2025-11-02 — roughly 4 months past the PR's modeled end. All three sampled letters (KY/MI/HI) used the struck "lack of sufficient jobs" evidence path, so the Nov 2 administrative termination applied to them; KY's waiver (to Nov 30 2025) ran ~3 months past the PR's modeled end. Aug–Oct 2025 is modeled un-waived but was waived in reality. The PR's caveat ("some ran weeks to their expiration dates") materially understates this. Note: this timeline also critiques main's "waivers run their approved term" treatment (imperfect for waivers that were cut short in Nov 2025), but main is far closer for Jul–Oct 2025; the PR's blanket enactment-date cutoff is further off, and additionally contradicts main's litigation-reinstated coverage into 2026 (Appendix A: CT/KY 2025-11-30; DC/NM/OR/VI 2025-12-31; CA/IL/NV/NJ/WA/GU 2026-01-31; MI/NY/RI 2026-02-28; MN/MT/ND 2026-06-30).

Fix: in the reworked county map, terminate non-AK waivers per the FNS memo timeline — each waiver's own expiration or ~2025-11 (month-start key), with reinstated partial-waiver states (KY/MI/MN/NJ/OR/WA/ND) carried to their Appendix A dates.


Superseded by merged #8872

Every hunk below either duplicates what #8872 already landed on main or contradicts it. These should be dropped on rebase (this also resolves the code audit's three test-coverage criticals, which were all regressions the PR's test rewrite would introduce against main's richer suite).

PR hunk Class Disposition
is_in_snap_abawd_waived_area.py county-OR-state formula SUPERSEDED Main has the identical in_waived_county | in_waived_state formula plus a richer docstring (litigation citation). Drop. (Code audit confirms the PR's entity/period handling was itself correct: Person/MONTH reading Household YEAR state_code_str/county_fips via period.this_year.)
waived_states.yaml — CA/IL/NV/NY/DC entries SUPERSEDED Main dates them more precisely (CA/IL/NV/NY 2024-11-01; DC 2024-12-01; NY drops 2025-03-01). Drop.
waived_states.yaml2025-07-04: [] CONTRADICTORY Main deliberately runs waivers into 2026 per the USDA Feb 26 2026 memo (RI Council of Churches v. Rollins): DC → 2025-12-31; CA/IL/NV → 2026-01-31; empty 2026-02-01. See C2. Drop.
waived_states.yaml — DE/NM/GU/VI statewide CONTRADICTORY (mostly deliberate omissions on main) Main encodes only letter-verified statewide waivers; GU/VI are explicitly "not modeled by PolicyEngine US" (and can never match national microdata — inert); main classifies NM as PARTIAL (29 counties + 18 reservations). DE is the one possible genuine gap — verify DE's FNS response letter before adding it to main's file; never NM/GU/VI.
waived_county_fips.yaml — AK block reformat + 2025-07-04 AK-only key SUPERSEDED / CONTRADICTORY The rewrite strips main's per-county comments and drops main's 2025-11-01 AK+CA-7 block and CDSS ACL 25-79/26-15 references — a regression if applied as-is. The AK-only termination key embeds the C2 premise. Rebase must retain main's 2025-11-01 and 2026-11-01 blocks verbatim.
tests/is_in_snap_abawd_waived_area.yaml full rewrite SUPERSEDED Main's 26-case suite covers the PR's 4 cases and far more (AK county matrix incl. non-waived Anchorage, empty-county fallback, CA counties, litigation window, NY partial). The PR's "CA not waived 2026-01" expectation directly contradicts main (CA waived through 2026-01-31). Deleting main's cases would regress coverage — the code audit's CRITICAL findings (lost county-boundary matrix, no AK-persistence assertion, no non-waived-county guard) are exactly this regression. Drop the rewrite.
tests/meets_snap_abawd_work_requirements.yamlstate_code: TX on 2 cases SUPERSEDED Main already has TX + the same rationale comment on those exact cases. (The substitution itself was the right fix; it's just already done.) Drop.
changelog.d/hr1-statewide-waiver-map.added.md SUPERSEDED The statewide map shipped in #8872. Drop.

Not superseded (novel): the 436-county FY2025 partial-waiver map in waived_county_fips.yaml (nothing on main covers AZ/CO/HI/KY/MA/MD/MI/MN/ND/NJ/OR/PA/SD/VA/WA/WI counties), its per-approval reference links, and changelog.d/hr1-partial-waiver-counties.added.md (rewrite to the salvaged scope). Date-key safety note: list parameters are full-replacement snapshots, so an added 2024-11-01 list does not clobber main's 2025-11-01 block — but only if the rebase preserves main's later blocks.


Should Address

All items below apply to the salvageable county map (the reworked PR's core).

  1. MI: 82 → 80 counties from 2025-03. MI's FY2024 waiver (82 counties) expired 2025-02-28; the FY2025 renewal (mi-abawd-response-fy2025.pdf, verified on fns.usda.gov) runs 2025-03-01 to 2026-02-28 with only 80 counties — Kent (26081) and Livingston (26093) were dropped (3 cities + 10 reservations added are sub-county, per the PR's own omission policy). The PR keeps all 82 through Jul 2025, overstating 2 counties for Mar–Jul 2025. Add a 2025-03-01 key.
  2. HI: waiver expired 2025-06-30; no FY2025 renewal exists (hi-abawd-response-fy2025.pdf → 404). Ending HI at 2025-07-04 leaves July 2025 resolving as waived under monthly semantics — ~1 month overstatement. Drop HI at 2025-07-01.
  3. Effective-date compression at 2024-11-01. KY is effective 2024-12-01, OR 2025-01-01, NJ and WA 2025-02-01 — dates the PR's own reference titles state correctly — yet all 436 counties are keyed at 2024-11-01, overstating those states' coverage by 1–3 months (Nov 2024–Jan 2025). Key each state at its actual effective month.
  4. Month-key convention + untested mid-month semantics. On MONTH-period parameters a 2025-07-04 key first bites in August (period 2025-07 resolves at 2025-07-01) — the PR's most load-bearing semantic, asserted nowhere in tests. Main avoids the issue entirely with month-start keys; follow that convention in the rework, and add boundary tests pinning the before/after months for at least one statewide and one non-AK county case.
  5. AK persistence guard. Any post-termination key must re-list the 29 AK FIPS byte-identically (full-replacement list semantics — the PR did this correctly), and a test should assert an AK county remains waived after the non-AK drop (e.g. at 2026-01); without it, a future edit that forgets to re-list AK would pass CI.
  6. Wrong #page=81 anchor on the PLAW PDF. Sec. 10102 begins at 139 STAT. 81 = PDF page 10; PDF page 81 is 139 STAT. 151 (Sec. 50303, renewable energy revenue sharing). The anchor confuses Statutes-at-Large pagination with PDF pagination. Pre-existing on main in waived_county_fips.yaml, but newly replicated into waived_states.yaml. Fix to #page=10 wherever kept.
  7. 13 of 16 partial states' county lists not individually cross-checked. Only KY/MI/HI letters were audited line-by-line (all matched, including the exact 3 KY counties excluded); AZ/CO/MA/MD/MN/ND/NJ/OR/PA/SD/VA/WA/WI totals match the PR's own claimed counts but were not verified against their approval letters. Spot-check at least the largest (PA 60, WA 38, OR 30) before merge.
  8. discretionary_exemption_rate metadata (only if the parameter file is touched for other reasons after C1's deletion): the parameter is consumed by no variable (grep-confirmed); an economy: false or explicit "data-construction only" metadata note would prevent it being misread as an active lever in the web app.

Suggestions

  1. Host hygiene — www.fna.usda.gov is legitimate, not a typo. FNS was renamed: "As of June 1, 2026 the Food and Nutrition Service (FNS) is now the Food and Nutrition Administration (FNA)." All 13 diff occurrences resolve (302 → *.azurefd.us → 200, application/pdf, correct content). No change required.
  2. fns-prod.azureedge.us (5 occurrences: Q1 status ×2, MN, ND, PA) still resolves (Q1 status: 200, byte-identical to the fns.usda.gov copy) but is non-canonical; the same paths on www.fns.usda.gov all return 200. A mechanical host swap is safe and preferable.
  3. Rewrite changelog.d/hr1-partial-waiver-counties.added.md to describe only the salvaged scope (county map + corrected timeline); the fragments themselves are well-formed (correct location, .added.md type).
  4. Reference titles embedding approval dates ("KY approval 2024-11-27 (effective 2024-12-01)") are slightly non-standard but useful and compliant (no page numbers in titles) — keep.
  5. Consumer-side positive case: consider one test asserting a waived-state/county person is actually routed through the waiver in meets_snap_abawd_work_requirements (main's TX substitutions only suppress the waiver path).

Source Audit Summary

# Claim / value Source Result
1 9 statewide jurisdictions (CA, DE, DC, GU, IL, NV, NM, NY, VI) as of 2024-10-01 FNS FY25 Q1 status PDF MATCH
2 Partial-waiver state set (16 county-grain + AK; ME/CT/RI/NH/MT sub-county omitted) FNS FY25 Q1 status PDF (22 partial states) MATCH
3 Internal FIPS counts: 465 total, no duplicates; per-state counts (KY 117 … HI 2); 2025-07-04 block = exactly 29 AK PR diff self-consistency MATCH
4 KY 117 counties (excludes Fayette, Oldham, Scott) KY FY2025 letter MATCH
5 MI 82 counties (Oakland omitted per sub-county policy) MI FY2024 letter MATCH (FY2024 only — see mismatch 3)
6 HI = Kauai (15007) + Maui (15009) HI FY2024 letter MATCH
7 Waiver-criteria comment (>10% unemployment for lower 48) Sec. 10102(b) MATCH (fair summary)
8 AK persistence to 2026-11-01 Sec. 10102(c) (good-faith exemption to Dec 31 2028) MATCH (unchanged from main)
9 fna.usda.gov hosts resolve to correct PDFs Live fetch MATCH (agency renamed June 2026)
10 8%→1% exemption cut (2025-07-04: 0.01) Full P.L. 119-21 text; 7 U.S.C. 2015(o)(6); OLRC notes; adversarial re-verification MISMATCH (MAJOR) — not enacted; House-bill provision; cap remains 8%
11 All waivers terminate at enactment (2025-07-04) Sec. 10102(b) + FNS Oct 3 2025 memo MISMATCH — administrative termination ~2025-11-02; Aug–Oct 2025 waived in reality
12 MI 82 counties through Jul 2025 MI FY2025 renewal (80 counties from 2025-03-01) MISMATCH (Kent, Livingston dropped)
13 HI waived through Jul 2025 HI expiry 2025-06-30; FY2025 letter 404 MISMATCH (~1 month over)
14 All 436 counties effective 2024-11-01 KY 2024-12-01, OR 2025-01-01, NJ/WA 2025-02-01 (per the PR's own reference titles) MISMATCH (1–3 month compression)
15 PLAW #page=81 anchor Sec. 10102 at PDF page 10 MISMATCH (wrong page)
FNS memo live page (stub since 2026-02-25); 13 states' county lists; AK health.alaska.gov reference UNVERIFIABLE / out of sampling scope

Validation Summary

Check Result Notes
CI (33 checks) PASS On the stale base (54 behind main); proves nothing about post-#8872 merge
Merge vs main FAIL Conflicts in every file except changelog fragments and discretionary_exemption_rate.yaml
Statute verification (Sec. 10102 / 2015(o)(6)) FAIL C1: 1% cut not enacted (double-confirmed)
Termination timeline vs FNS memo FAIL C2: wrong direction, ~4 months
Parameter YAML structure, reference format, changelog fragments PASS Well-formed; reference list format compliant
Formula entity/period handling PASS Person/MONTH ← Household YEAR via period.this_year; state_code_str over state_fips correctly reasoned
Full-replacement list semantics (AK re-list) PASS Correct pattern, but unguarded by tests
Test coverage FAIL Rewrite regresses main's 26-case suite; mid-month semantics and AK persistence asserted nowhere
Internal FIPS consistency PASS 465/436/29 counts all reconcile, no duplicates

Review Severity: REQUEST_CHANGES


Recommendation & Next Steps

Rework rather than merge. As written, the PR would regress main (dropping #8872's CA county block, litigation timeline, and richer tests), encodes an un-enacted statutory provision, and models the waiver wind-down in the wrong direction. But its core contribution — the FY2025 partial-state county map — is real, mostly verified, and fills a limitation main explicitly documents.

  1. Rebase onto main (post-Model California county and litigation-reinstated statewide SNAP ABAWD waivers #8872) and drop everything superseded or contradicted: the waived_states.yaml file, the formula change, both test-file changes, the statewide changelog fragment, and the 2025-07-04 termination keys.
  2. Drop the 2025-07-04: 0.01 discretionary-exemption entry entirely (C1). No fiscal-year re-key can save it — the provision does not exist in enacted law.
  3. Keep only the corrected FY2025 county map: per-state effective-date keys (KY 2024-12-01, OR 2025-01-01, NJ/WA 2025-02-01, others 2024-11-01), MI 82→80 at 2025-03-01, HI out at 2025-07-01, and terminations per the FNS memo timeline — each waiver's expiration or ~2025-11, with reinstated partial-waiver states (KY/MI/MN/NJ/OR/WA/ND) carried to their Appendix A dates via month-start keys. Preserve main's 2025-11-01 and 2026-11-01 blocks verbatim; fix the #page=81#page=10 anchor; add month-boundary and AK-persistence tests.
  4. Optionally verify DE's FNS letter — the one statewide jurisdiction main may genuinely be missing.
  5. Alternative: close Statewide ABAWD waiver map (FNS FY2025 Q1) + Sec. 10102 discretionary-cut parameter #9030 and cherry-pick the county map into a fresh PR from current main — likely less work than untangling the whole-file conflicts, and equivalent in outcome.

🤖 Generated by /review-program (Claude Code multi-agent review)

Salvages the novel content of the original branch onto main's
waived_counties.yaml schema (county enum names, month-start keys):

- 434 county-equivalents across AZ/CO/HI/KY/MA/MD/MI/MN/ND/NJ/OR/PA/SD/VA/WA/WI
  with per-state FNS effective dates (KY 2024-12-01, WA/NJ 2025-02-01, ...)
  and litigation-aware Appendix A terminations
- MI corrected to 80 counties (Kent and Livingston removed per the FNS letter)
- PA balance-of-county caveat documented (Cumberland/Butler modeled whole)
- PLAW Sec. 10102 anchor corrected to #page=11; FNS FY2025 Q1 report cited
- main's existing AK/CA blocks preserved verbatim; superseded content from the
  original branch (waived_states edits, 2025-07-04 keys, un-enacted 0.01
  discretionary entry) dropped per review consensus
- 6 new test cases (FY2025 window, post-termination, staggered start,
  AK persistence, control); 38/38 passing

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

DTrim99 commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Branch reworked per review consensus (rebase & salvage)

Both reviews (@hua7450's requested changes and the /review-program report) converged on the same verdict: keep the novel FY2025 Q1 partial-state waiver map, drop everything superseded by merged #8872. Since those reviews, main also renamed waived_county_fips.yamlwaived_counties.yaml and switched to county enum names, which made the FIPS-based diff structurally conflicting (102 behind, 3 conflicts). The branch has been rebuilt from current main with only the salvaged content — the PR now has a single clean commit.

What was salvaged

  • The 436-county FY2025 Q1 FNS partial-state waiver map, ported into waived_counties.yaml's county-enum/month-start schema. FIPS→enum conversion was fully mechanical (joined on the repo's county_fips_2020.csv.gz, every name verified against the County enum, zero unmatched FIPS).
  • Per-state FNS effective dates (KY 2024-12-01, OR 2025-01-01, WA/NJ 2025-02-01, MI 2025-03-01, …) and litigation-aware terminations consistent with the Appendix A timeline already on main (KY 2025-11-30; OR 2025-12-31; NJ/WA 2026-01-31; MI 2026-02-28; MN/ND 2026-06-30; HI exits 2025-07-01; non-reinstated states end 2025-11-01). main's existing AK/CA blocks are preserved verbatim.

Review corrections applied while porting

  • MI 82 → 80 counties: Kent and Livingston removed, per the FNS Michigan letter ("80 counties, three cities, and 10 reservations").
  • PA balance-of-county caveat documented: FNS waives the balance of Cumberland and Butler counties (excluding Hampden and Cranberry townships); the model waives them whole — noted as a slight overstatement.
  • PA/WA/OR/KY/NJ lists spot-checked against the FNS state letters.
  • Reference anchors verified: the PLAW Sec. 10102 citation now points at #page=11 (the previously cited #page=81 is a National Park Service rescission section); the FNS FY2025 Q1 status report and the USDA Feb 26 2026 Appendix A memo are cited.

Dropped (superseded by merged #8872 / current main)

  • waived_states.yaml edits, the formula change, all mid-month 2025-07-04 keys, and the un-enacted 2025-07-04: 0.01 discretionary-exemption entry (critical finding — Sec. 10102(b) authorizes but does not mandate the cut).
  • The two stale changelog fragments, replaced by one accurate fragment.

Verification

  • is_in_snap_abawd_waived_area.yaml: 38/38 passing — all 32 pre-existing cases still pass against the reworked map (main's blocks undisturbed), plus 6 new cases (FY2025 window, post-termination, staggered start before/after, AK persistence, never-waived control).
  • is_snap_abawd_hr1_in_effect.yaml: 13/13 passing, untouched.
  • Full policyengine_us system import validated; month-start keys only; no uv.lock/pyproject churn (dropped with the rebuild).

🤖 Generated with Claude Code

hua7450 commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Updated this PR with the reviewed local fix and merged the latest upstream/main.

What changed:

  • Replaced the repeated 3,381-line national waived_counties.yaml snapshots with 18 state-specific county-list parameters (about 750 YAML lines total). The lookup remains vectorized and now combines the applicable state lists.
  • Corrected the approval timelines:
    • HI, MA, MD, MN, ND, and VA begin on 2024-07-01.
    • PA runs from 2024-09-01 through 2025-08-31.
    • AZ, CO, SD, and WI run from 2024-10-01 through 2025-09-30.
    • HI, MA, MD, and VA end on 2025-06-30.
  • Added the 2025-07-01 replacement approvals:
    • MN changes from the earlier 15 counties to 17 counties (Lake removed; Lake of the Woods, Norman, and Todd added).
    • ND changes from Bottineau, Pierce, and Rolette counties to Rolette County only.
    • Both replacement approvals end on 2026-06-30.
  • Preserved Alaska as the geographic layer discussed in the Correct AK SNAP ABAWD HR1 date for good-faith exemption #8972 review: 29 boroughs/census areas through 2026-10-31, Anchorage excluded, and an empty list from 2026-11-01. This PR does not move Alaska's general HR1 effective date.
  • Added compact boundary tests using yearly fixtures with explicit monthly output assertions for the corrected schedules and MN/ND replacements.
  • Documented the county-grain limitations, including omitted sub-county areas and the PA Butler/Cumberland approximation.

Validation after merging current upstream/main:

  • ruff format --check: passed
  • ruff check: passed
  • Focused ABAWD waived-area suite: 49 passed

Updated branch head: bb81609c61.

DTrim99 added a commit to daphnehanse11/policyengine-us that referenced this pull request Aug 7, 2026
…olicyEngine#8972 review)

Addresses @hua7450's review: the 2026-11-01 date is the correct END of
Alaska's good-faith exemption window, but flipping the statewide
hr1_in_effect toggle to it wrongly put all of Alaska (incl. Anchorage) on
the complete pre-HR1 rule set during the window and suppressed HR1's new
Alaska Native/Indian exception.

- Keep Alaska's HR1 effective date at 2025-11-01 (statewide, same as HI), so
  the new Alaska Native/Indian exception is in effect throughout.
- Add a separate AK good-faith-exemption-window parameter (false / 2025-11-01
  true / 2026-11-01 false) and an is_snap_abawd_in_good_faith_exemption_window
  resolver.
- During the window, layer ONLY the approved temporary retained categories on
  top of the post-HR1 exception set: ages 56-64 (verified against Alaska DOH
  - NOT the pre-HR1 55+ threshold), households with children aged 14-17
  (pre-HR1 dependent threshold restored to 18), veterans, homeless
  individuals, and former foster youth aged 18-24. is_snap_abawd_indian_exempt
  stays active independently as the new permanent HR1 exception.
- Rework the regression tests to Anchorage-specific cases (county_fips
  "02020"), since without county input Alaska falls back to the waived
  Aleutians East Borough and bypasses the date logic. Add window boundary
  cases (2026-10 vs 2026-11), age 55 vs 56, a healthy adult, each retained
  category, and an Alaska Native/Indian person (exempt both in and after the
  window). The geographic waiver (waived_counties, PR PolicyEngine#9030) is unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@hua7450
hua7450 merged commit 7193611 into PolicyEngine:main Aug 7, 2026
33 checks passed
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.

3 participants