Model state-specific SNAP BBCE poverty-guideline update months - #9243
Conversation
…gross limit WAC 388-414-0001(2)(a)(ii) re-bases Washington's 200% Basic Food BBCE standard on the current-year federal poverty guidelines each April 1, published as whole-dollar monthly limits. The model derived the limit from snap_fpg, which follows the federal October fiscal-year schedule, understating the Washington cutoff by one guideline year (about 2%) every April through September. Add wa_snap_bbce_gross_income_limit, which selects the guideline vintage by the April pivot and rounds to the closest whole dollar, and compare Washington units' gross-test income against it in meets_tanf_non_cash_gross_income_test. All other states and the federal October-scheduled gross and net tests are unchanged. Fixes #9231 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
State BBCE standards re-base to a new year's federal poverty guidelines on each state's own schedule, but the screen derived its limit from snap_fpg, which follows the federal October fiscal-year cycle. States that re-base earlier in the calendar year were held a guideline year behind, understating their cutoffs by roughly 2% for part of each year. Verify the update month for all 46 BBCE jurisdictions against state administrative codes and SNAP policy manuals. Four re-base off-cycle: Maine in January (10-144 CMR Ch. 301 Sec. 999-3 Chart 4), Massachusetts in February (DTA Helpful Charts and Figures), Oregon in March (OAR 461-155-0180(6)), and Washington in April (WAC 388-414-0001(2)(a)(ii)). The remaining 42 follow the federal October schedule. Add fpg_year_start_month, which carries each state's month, and tanf_non_cash_fpg, which selects the guideline vintage from it. Compare gross-test income against tanf_non_cash_gross_income_limit in dollars, applying the rounding each state publishes: up (AZ, CT, LA, ME, MN, NH, NJ, OR, VT), to the nearest dollar (MA, WA), or down (VA). The federal SNAP gross and net tests keep the October schedule through snap_fpg. Also date two percentages the research corrected: the Virgin Islands rose from 130% to 175% effective 2024-10-01, and Arizona from 185% to 200% during 2026. Fixes #9231 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…into wa-bbce-april-fpg
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9243 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 6 3 -3
Lines 81 52 -29
=========================================
- Hits 81 52 -29
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Colorado follows the federal October cycle and publishes no rounding convention, so its standard keeps the repeating cents of 200% x 15,650 / 12. The float32 value the engine returns is 2608.3333, which does not equal the truncated 2608.33 literal the test asserted. Express the expectation as the arithmetic itself and compare within a cent. The whole-dollar states keep exact equality, since their published standards genuinely are integers. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The CNAP manual states: "Starting the benefit month of 03/2026, the gross income limit for the NA Expanded Categorical Eligibility changed from 185% of the FPL to 200% of the FPL." The parameter previously dated the increase 2026-04-13, inferred from a "What's Changed" entry, which left March and part of April at 185%. Apply the increase to the elderly or disabled standard as well, which had remained at 185%, and add boundary tests for both. The same note confirms Arizona re-bases each October, so its fpg_year_start_month stays at the default. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…into wa-bbce-april-fpg
Categorically eligible households are exempt from the income eligibility standards in 7 CFR 273.9, so the rounding 273.9(a)(3) prescribes for the federal gross and net tests does not reach the BBCE limit. The threshold is the income limit of the state's TANF-funded non-cash benefit, and no federal rule governs how its dollar figure is derived. The per-state rounding lists asserted conventions read off published charts rather than from law, and an audit found most of the checked states did not match theirs. Drop the three parameter files and return the exact computation, which claims nothing beyond the percentage and the guideline vintage. Move the mid-year boundary tests into the YAML runner by keying outputs by month within a whole-year period, which also lets Colorado's October flip be asserted directly. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The old text described rounding, which this branch no longer changes, and named only Washington. Cover the state-specific update months and Arizona's March 2026 increase, and rename the fragment to match the scope rather than the original branch. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The earlier rename staged the file move but not the rewrite, so the fragment still described rounding, which this branch does not change, and credited only Washington. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Program Review — multi-agent auditPR #9243 — State-specific SNAP BBCE poverty-guideline re-base months ScopeThis PR corrects when each state's TANF-funded non-cash (SNAP broad-based categorical eligibility, BBCE) 200% income standard re-bases onto the current calendar year's federal poverty guidelines, rather than forcing every state onto the federal October (fiscal-year) cycle. Under 7 CFR 273.2(j)(2) the BBCE limit is the state's TANF non-cash income limit, so keying it to each state's own re-base month is the correct model.
Source verification (primary-source results)
Note: OR (March) and ME (January) were "unreachable" for the reference-validator (FlateDecode-compressed PDFs), but the external source-verifier subsequently downloaded both and extracted them with Verified correct (checks that passed)
Critical (must fix)None. All validators (regulatory/effective-date, source corroboration, code patterns, entity/period, test coverage) returned zero criticals. All four off-cycle months are primary-source verified. Should address
Suggestions
Validation summary
Review severity: COMMENTZero criticals across all five validators and all four off-cycle re-base months are primary-source verified, so this does not warrant REQUEST_CHANGES; the remaining items (VI 2015 back-history sourcing, AZ href, MA/OR + VI test gaps) are author-judgment and low-impact rather than value errors, so COMMENT is the right call over a bare APPROVE. Credit where earned: the author's own PR body pre-documents the ME mid-January approximation, the rounding-removal legal rationale, and the territory $0-limit edge — several "findings" here are limitations the author already surfaced. Next steps
🤖 Generated by /review-program (Claude Code) |
- Add MA (February) and OR (March) two-sided re-base boundary tests - Add AL general-vs-elderly/disabled divergence tests to exercise the gross_hheod branch non-vacuously - Clarify VI 130% era sourcing and promote the VI announcement and an AZ 200% corroboration (SNAP Screener) into reference metadata - Document the chart round-direction caveat, the snap_fpg cross-reference, and why the VI step has no dollar assertion - Add the WAC subsection to the WA reference title and pass parameters in the meets_ formula signature Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…into wa-bbce-april-fpg
Re-review — fix commit
|
Summary
State SNAP broad-based categorical eligibility (BBCE) standards re-base to a new year's federal poverty guidelines on each state's own schedule. The gross-income screen derived its limit from
snap_fpg, which follows the federal October fiscal-year cycle, so states that re-base earlier in the calendar year were held a guideline year behind — understating their cutoffs by roughly 2% for part of each year.For a one-person Washington household in 2026, the limit stayed at $2,608 from April through September where DSHS publishes $2,660 for April 1, 2026 through March 31, 2027.
Fixes #9231
Research
I verified the update month for all 46 BBCE jurisdictions against state administrative codes and SNAP policy manuals. Four re-base off the federal cycle:
The remaining 42 follow the federal October schedule, most evidenced by two consecutive October effective dates in their published charts.
This changes results in four states only. A state still on the previous year's guidelines outside those four is correct, not lagging — that is how the federal fiscal-year cycle works.
Approach
income_limit/fpg_year_start_month.yamlcarries each state's month, defaulting to October. Encoding a newly verified state is a one-line parameter edit — no formula changes.tanf_non_cash_fpgselects the guideline vintage from that parameter.tanf_non_cash_gross_income_limitapplies the state's percentage tier to that guideline and returns the exact result. See "Rounding" below.meets_tanf_non_cash_gross_income_testcompares dollars against that limit rather than an FPG ratio.snap_fpg.Two percentages the research corrected are also dated: the Virgin Islands rose from 130% to 175% effective 2024-10-01, and Arizona from 185% to 200% effective 2026-03-01.
Arizona
An earlier revision dated Arizona's increase 2026-04-13, inferred from a "What's Changed" entry because
azdes.govsits behind a challenge page. The CNAP manual text resolves it:The same note confirms Arizona re-bases each October ("increased for FFY 2026 starting 10/01/2025"), so its
fpg_year_start_monthstays at the default. The increase also applies togross_hheod, which had remained at 185% and so never conferred the new limit on elderly or disabled households.Rounding
States publish their BBCE standards as whole dollars, and the conventions differ: some round up, some to the nearest dollar, some down, and several apply the percentage to the whole-dollar monthly guideline rather than the exact one (California, Colorado, DC, and Arizona publish $2,610 where the exact computation gives $2,608.33).
An earlier revision of this PR encoded those conventions as per-state parameter lists. That is removed, for two reasons:
meets_snap_gross_income_test. But categorically eligible households under 7 CFR 273.2(j)(2) are exempt from the §273.9 standards entirely, and the BBCE threshold is the income limit of the state's TANF-funded non-cash benefit. A published chart's rounding is a property of the chart.The limit is now the exact percentage of the guideline, never more than about $2 from any published figure. Washington's April standard is unaffected: the 2026 guideline divides evenly (15,960 / 12 = 1,330), so the computed figure is exactly the $2,660 DSHS publishes, and the exact computation reproduces all ten household sizes on the DSHS chart.
Whether to model per-state chart conventions is tracked in #9255.
Known limitations
gov/hhs/fpg.yamlcarries zero placeholders for the territories, so their computed standard is $0. Because a $0 limit passes a household with no income, and categorical eligibility waives the asset test, a zero-income territory household with substantial assets is now scored SNAP-eligible where the base commit scored it ineligible. The underlying gap is territory poverty guidelines, which also leavesnap_fpgat 0 and the federal gross and net tests degenerate; no territory households appear in the microdata, so this is reachable only through the household API.snap_gross_test_income_fpg_ratiois no longer consumed by any formula. It remains a public variable and is left in place; removing it is a deprecation decision for API consumers, not part of this fix.Tests
tanf_non_cash_gross_income_limit.yaml— guideline vintage by state, the 185% tier, and the Alaska guidelines.meets_tanf_non_cash_gross_income_test.yaml— boundary cases at the exact published standard. Maine's January re-basing puts it a guideline year ahead of Washington in the same January, which exercises the state-varying vintage.Test plan
gov/hhs/tanf/non_cash/— 56 passingpartners/analytics_coverage/.../snap/nc.yaml— 4 passing, no partner-facing change