Skip to content

Add comprehensive SNAP utility allowance data (FY2019-FY2026, sub-regions, household size)#7726

Merged
hua7450 merged 37 commits intomainfrom
add-snap-sua-data
Mar 24, 2026
Merged

Add comprehensive SNAP utility allowance data (FY2019-FY2026, sub-regions, household size)#7726
hua7450 merged 37 commits intomainfrom
add-snap-sua-data

Conversation

@MaxGhenis
Copy link
Contributor

@MaxGhenis MaxGhenis commented Mar 7, 2026

Summary

Ref #7741, ref #7721

New data

  • Add FY2018, FY2019, FY2020, FY2021, FY2023, and FY2026 SNAP utility allowance values for all 53 states/territories
  • FY2018–FY2021 covers all allowance types: HCSUA (standard), LUA (limited), and all 6 individual utility allowances (electricity, gas/fuel, phone, sewage, trash, water)
  • Total coverage is now FY2018–FY2026 (continuous from 2017-10-01)
  • Split Alaska into 6 SNAP utility sub-regions (Central, Northern, Northwest, Southcentral, Southeast, Southwest) per 7 AAC 45.531, with county-to-region mapping
  • Split New York into 3 sub-regions (Nassau/Suffolk, NYC, Other NY) with county mapping
  • Add household-size-based SUA and BUA for AZ, TN, VA (NC was already modeled)
  • Add HI and GU individual utility allowances (electricity, gas, water) that vary by household size
  • Rename participating_statesstates parameter files for clarity

Bug fixes

  • Fix 6 FY2019 SUA values per SNAP QC Technical Documentation Table F.7: MN HCSUA (556→493), CO LUA (304→354), AR phone (50→25), MN phone (41→47), NE phone (46→48), NH phone (28→29)
  • Fix FY2019 GA phone (47→41) and AK_SE phone (29→28) per SNAP QC Tech Doc
  • Fix Maryland SUA/LUA effective dates from October 1 to January 1 (Maryland uses calendar-year cycle, not federal fiscal year); corrected 2023 SUA value from $551 to $505; corrected 2019-01-01 values (HCSUA 420→404, LUA 257→247); added missing 2020 and 2025 entries
  • Fix Indiana SUA values and effective dates per IN DFR policy transmittals
  • Fix Alaska region values and date entries; fix 23 AK individual utility FY2018 values
  • Fix Wyoming YAML formatting
  • Fix HI trash FY2018 (0→88), WV electricity FY2021 (78→76)
  • Add NH FY2021 mid-year correction (HCSUA 701→702, LUA 256→257, effective June 2021)
  • Add 14 missing FY2018 individual utility entries (AZ phone, DE 5 utils, IN 5 utils, MD phone, NH electricity, WI sewage)
  • Fix missing FY2019 LUA and individual utility allowance entries for all states (were only added to HCSUA); update LUA test expectation for CA 2021 (432 → 1602, now correctly reflects FY2019 CA LUA of $130)
  • Add household-size floor guard (max_(1, min_(10, size))) in snap_standard_utility_allowance, snap_limited_utility_allowance, and snap_individual_utility_allowance to prevent ParameterNotFoundError when spm_unit_size is 0
  • Fix FY2026 LUA/IUA data swap for 10 states/regions (AR, IA, LA, MA, OK, TX, UT, NY_NAS, NY_NYC, NY_ONY) — bogus LUA values were placed in IUA fields and LUA values were zeroed out
  • Fix by_household_size/states.yaml effective date from 2024-01-01 to 2023-10-01 to match amount data (AZ/TN had household-size-varying SUA since at least FY2019 per USDA spreadsheets)
  • Fix SNAPUttilityAllowanceType typo → SNAPUtilityAllowanceType

Cleanup

  • Remove unit: USD from boolean parameter files (states.yaml, active.yaml, etc.)
  • Fix name:title: in parameter reference metadata
  • Apply underscore formatting to numeric values across all parameter files
  • Add FY2019 USDA SUA spreadsheet reference to all 8 parameter files
  • Add missing reference: section to limited/active.yaml
  • Refactor AK/NY county-to-region mappings to dict comprehensions

Related issues

Data sources

  • USDA SNAP utility allowance spreadsheets (including SNAP-SUA-Table-FY2019.xlsx via Wayback Machine)
  • SNAP QC Technical Documentation (FY2018, FY2019, FY2020, FY2021) — Table F.7: Standard utility allowances
  • snapscreener.com

Test plan

  • All existing SNAP tests pass
  • 11 new region/sub-region tests (AK sub-regions, NY sub-regions, HI/GU household-size IUA)
  • AK Anchorage end-to-end integration test (county → region → SUA amount)
  • Wrong-allowance-type-returns-zero tests for SUA and LUA
  • Household size zero edge case test (verifies floor guard)
  • FY2019 values verified against SNAP QC Tech Doc Table F.7 (6 corrections applied)
  • FY2018/FY2020/FY2021 values verified against SNAP QC Tech Doc Table F.7
  • CI passes

🤖 Generated with Claude Code

Adds Standard Utility Allowance (HCSUA) values from USDA FNS xlsx files:
- FY2019 (2018-10-01): 53 state/territory entries
- FY2023 (2022-10-01): 52 entries (CO already existed)

Fills the FY2023 gap and extends coverage back to FY2019.

Closes #7721

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@codecov
Copy link

codecov bot commented Mar 7, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.74%. Comparing base (9ddf56e) to head (bc30ab8).
⚠️ Report is 69 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff             @@
##              main    #7726      +/-   ##
===========================================
- Coverage   100.00%   96.74%   -3.26%     
===========================================
  Files            2        7       +5     
  Lines           25      215     +190     
  Branches         0        6       +6     
===========================================
+ Hits            25      208     +183     
- Misses           0        7       +7     
Flag Coverage Δ
unittests 96.74% <100.00%> (-3.26%) ⬇️

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

☔ View full report in Codecov by Sentry.
📢 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.

MaxGhenis and others added 2 commits March 7, 2026 08:45
Test 2 (2021, CA): Jan-Sep now uses FY2019 value (415) instead of 0
Test 3 (2020, CA): Now uses FY2019 value (415*12=4980) instead of 0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds HCSUA values effective 2025-10-01 for all 50 states + DC.
Data sourced from snapscreener.com/data which compiles state-published
SUA values. HI/GU/VI remain 0 (use individual utility allowances).

Closes #7030

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@MaxGhenis MaxGhenis changed the title Add FY2019 and FY2023 SNAP SUA values for all states Add FY2019, FY2023, and FY2026 SNAP SUA values for all states Mar 7, 2026
MaxGhenis and others added 6 commits March 7, 2026 09:05
Add 2025-10-01 (FY2026) entries from snapscreener.com for:
- BUA (limited/main.yaml) - all 53 states/territories
- Electricity, gas, water, sewage, trash, phone - all 53 states/territories
- NC household-size SUA (by_household_size/amount.yaml) - sizes 1-10

Update NC SUA test expectations for FY2026 values taking effect Oct 2025.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Simpler, clearer parameter name for the list of states that vary
SUA/LUA by household size.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add FY2024-FY2026 household-size-based values for:
- AZ: 2 tiers (HH1-3, HH4+) for both SUA and BUA
- TN: 10 tiers (HH1 through HH10+) for SUA and BUA
- VA: 2 tiers (HH1-3, HH4+) for SUA only (VA has no BUA)

Also adds FY2026 values for NC BUA by household size.

Source: USDA FNS SUA Table FY2024/FY2025, snapscreener.com FY2026

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…owances

- Split AK into 6 SNAP utility sub-regions (Central, Northern, Northwest,
  Southcentral, Southeast, Southwest) per 7 AAC 45.531
- Split NY into 3 sub-regions (Nassau/Suffolk, NYC, Other NY)
- Add county-to-region mapping in snap_utility_region formula
- Add HI and GU individual utility allowances (electricity, gas, water)
  that vary by household size
- Update snap_individual_utility_allowance to handle by-household-size
  lookups for HI/GU

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@MaxGhenis MaxGhenis changed the title Add FY2019, FY2023, and FY2026 SNAP SUA values for all states Add comprehensive SNAP utility allowance data (FY2019-FY2026, sub-regions, household size) Mar 7, 2026
@MaxGhenis MaxGhenis requested a review from hua7450 March 7, 2026 15:25
MaxGhenis and others added 3 commits March 7, 2026 10:26
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The breakdown metadata referenced state_code which caused AK/NY
sub-region keys to be silently dropped during parameter loading.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@MaxGhenis
Copy link
Contributor Author

Microsim impact analysis

Ran household-level examples comparing 2024 vs 2026 values — all features working correctly:

SUA examples:

State 2024 SUA 2026 SUA Change
CA $7,299 $7,956 +$657 (+9.0%)
NC HH3 (by HH size) $8,607 $9,216 +$609 (+7.1%)
AK (Southcentral sub-region) $7,053 $7,092 +$39 (+0.6%)
NY (Other NY sub-region) $9,933 $10,524 +$591 (+6.0%)

IUA examples:

State 2024 IUA 2026 IUA Change
HI HH2 (by HH size) $11,331 $11,608 +$277
AK (Southcentral) $7,053 $7,132 +$79

Aggregate microsim (Enhanced CPS): Utility expense variables (electricity_expense, gas_expense, etc.) are all zero in the current microdata, so the aggregate SNAP impact is near-zero. The parameters are correct and verified at the household level — the microdata gap is tracked separately.

Copy link
Collaborator

@hua7450 hua7450 left a comment

Choose a reason for hiding this comment

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

See detailed review comment above. 6 critical issues require fixes before merge: WY YAML structural error, 2 Indiana value mismatches (confirmed at 600 DPI), 5 Alaska county mapping errors (confirmed against FSP-77), and zero test coverage for the county mapping formula.

hua7450 and others added 3 commits March 9, 2026 17:29
…, formatting

- Fix WY FY2026 SUA ($510) orphaned after metadata block
- Remove wrong IN SUA ($502) and LUA ($274) values per FSSA Manual Section 3020
- Fix IN effective dates from October to May per FSSA transmittals
- Add comment documenting IN's May 1 cycle and FY2026 federal alignment
- Fix AK county mappings per FSP-77: Bristol Bay, Dillingham, Lake & Peninsula
  to Southwest; Copper River to Northern
- Add 11 tests for snap_utility_region covering all AK/NY sub-regions
- Format values >= 1000 with underscore separators

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ameter references

- Remove incorrect `unit = USD` from snap_standard_utility_allowance_by_household_size
  and snap_limited_utility_allowance_by_household_size (both are boolean variables)
- Fix `name:` to `title:` in reference metadata across standard/main.yaml,
  limited/main.yaml, and all 6 single utility YAML files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
hua7450 and others added 6 commits March 9, 2026 22:55
Maryland SUA fixes (per MD DHS Action Transmittals):
- Fix effective dates from October to January (MD uses Jan 1 cycle)
- Fix wrong value: 2023-01-01 was 551, should be 505 (AT #23-03)
- Add missing entries: 2020-01-01: 392, 2025-01-01: 557
- Add FY2026 alignment comment across all 10 affected YAML files
- Fix limited/active.yaml date to match MD's LUA data start

Bug fix — household size floor:
- Add max_(1, ...) to capped_size in snap_standard_utility_allowance,
  snap_limited_utility_allowance, and snap_individual_utility_allowance
  to prevent ParameterNotFoundError when spm_unit_size is 0

New tests:
- Integration: AK Anchorage county → AK_C region → $609 SUA
- Wrong type returns zero: SUA returns 0 for IUA type, LUA returns 0 for SUA type
- Size=0 edge case: confirms floor guard works

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The PR claimed FY2019 data was added for all states, but only HCSUA
(standard/main.yaml) had entries for most states. LUA (limited/main.yaml)
and all 6 individual utility files had zero FY2019 entries. HCSUA was
also missing 10 regions (6 AK sub-regions, 3 NY sub-regions, MD).

Added 430 FY2019 entries across 8 files from the official USDA FY2019
SUA spreadsheet (SNAP-SUA-Table-FY2019.xlsx). Indiana uses 2018-05-01
and Maryland uses 2019-01-01 per their non-standard effective dates.

Updated LUA test expectation for CA 2021: 432 → 1602 (130*9 + 144*3)
since CA LUA is now correctly 130 from FY2019, not 0.

Ref #7741

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…yaml

Add USDA FY2019 SUA spreadsheet reference to all 8 parameter files
(standard/main, limited/main, and 6 single utility files). Add missing
reference section to limited/active.yaml with USDA FNS and spreadsheet
sources.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The FY2026 data ingestion swapped BUA/LUA values into IUA fields for
AR, IA, LA, MA, OK, TX, UT, NY_NAS, NY_NYC, NY_ONY. These states do
not have individual utility allowances — their LUA values were
incorrectly placed in the 5 single utility files (electricity,
gas_and_fuel, sewage, trash, water).

Fix: zero out bogus IUA entries and restore correct LUA values in
limited/main.yaml for all 10 affected states/regions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…023-10-01

AZ, TN (and NC, VA) have had household-size-varying SUA/LUA since at
least FY2019 per USDA SUA spreadsheets. The states.yaml boolean gate
used 2024-01-01 while amount.yaml data starts 2023-10-01, creating a
3-month gap (Oct-Dec 2023) where these states would incorrectly fall
back to flat main.yaml values.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
hua7450 and others added 3 commits March 10, 2026 00:56
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Move WY FY2026 SUA value from after metadata block to under WY key
- Remove incorrect IN SUA FY2025 value ($502, should be $473 per FSSA)
- Remove incorrect IN LUA FY2025 value ($274, should be $276 per FSSA)
- Move Bristol Bay, Dillingham, Lake and Peninsula from AK Southcentral
  to AK Southwest per FSP-77
- Add Haines Borough and Petersburg Borough to AK Southeast per FSP-77
- Add 13 county mapping tests for snap_utility_region (all AK regions,
  all NY regions, default fallback)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
hua7450 and others added 2 commits March 23, 2026 17:57
Corrected values verified against Table F.7:
- MN HCSUA: 556 → 493
- CO LUA: 304 → 354
- AR phone: 50 → 25
- MN phone: 41 → 47
- NE phone: 46 → 48
- NH phone: 28 → 29

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
hua7450 and others added 11 commits March 24, 2026 12:54
Remove duplicate 2017-10-01 entries for DE (electricity) and AZ (phone)
that were introduced by the FY2018 backdating.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add FY2018-FY2021 per-size HCSUA values for AZ, NC, TN, VA
- Add FY2018-FY2021 per-size LUA values for NC, TN
- Backdate by_household_size/states.yaml to 2017-10-01
- Update descriptions per parameter-pattern-skill
- Add QC Tech Doc references with #page= to by_household_size files
- Add 12 new test cases for HH-size-varying SUA/LUA at FY2018-FY2021
- Update 3 existing test expectations to reflect correct FY2020/FY2021 values

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…iles

Add FY2018, FY2019, FY2020, FY2021 SNAP QC Tech Doc Table F.7
references with #page= to all 8 utility parameter files.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add FY2018-FY2021 per-size electricity, water, gas/fuel values for HI and GU
- Backdate single/by_household_size/states.yaml to 2017-10-01
- Add missing period field to limited/active.yaml
- Update descriptions per parameter-pattern-skill
- Add QC Tech Doc references with #page=
- Values from SNAP QC Technical Documentation Table F.7 (FY2018-FY2021)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fill the gap between FY2021 and FY2024 in by_household_size files:
- SUA: AZ, NC, TN, VA (HCSUA by size)
- LUA: NC, TN, AZ (AZ starts FY2023)
- IUA: HI, GU (electricity, water, gas/fuel by size)

All values verified against SNAP QC Technical Documentation Table F.7
(FY2022 and FY2023 editions).

Also fixes LUA by_household_size/states.yaml: AZ start date corrected
from 2023-10-01 to 2022-10-01 per FY2023 Tech Doc.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
AK HCSUA: fix 5 of 6 regions (all were flat 349, only SE was correct)
NY HCSUA: fix 2 of 3 regions (all were flat 703, only ONY was correct)
NY LUA: fix 2 of 3 regions (all were flat 285, only ONY was correct)
Add FY2023 (2022-10-01) entries for all AK/NY sub-regions.

Values from SNAP QC Technical Documentation Table F.7 (FY2022, FY2023).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
All 5 individual utility files (electricity, gas/fuel, water, sewage, trash)
had flat copied values at 2021-10-01 for AK sub-regions. Fixed with correct
per-region values from SNAP QC Tech Doc Table F.7. Added FY2023 entries.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
HCSUA fixes: CA (487→560), NV (284→370), MI (630→620 + add 624 mid-year),
ID (361→364), OR (450→452), WA (458→462)
LUA fixes: NJ (359→339), CA add 2022-10-01: 150
Phone fixes: AK_N (15→18), AK_NW (15→31), AK_SC (15→20), AK_SE (15→17)
Updated 4 test expectations to reflect corrected values.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@hua7450 hua7450 self-requested a review March 24, 2026 22:51
@hua7450 hua7450 merged commit cea0f85 into main Mar 24, 2026
8 of 9 checks passed
@hua7450 hua7450 deleted the add-snap-sua-data branch March 24, 2026 22:51
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.

2 participants