From 95fbad6948bd4d95a9f1c05380f24be0f8b144f8 Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 9 Jul 2026 14:19:47 -0400 Subject: [PATCH 1/3] Add Texas HUD utility allowances --- .../county_utility_allowances.csv | 40 ++++++++++- .../gov/hud/hud_utility_allowance.yaml | 66 +++++++++++++++++++ .../gov/hud/hud_utility_allowance.py | 24 ++++++- 3 files changed, 126 insertions(+), 4 deletions(-) diff --git a/policyengine_us/parameters/gov/hud/utility_allowance/county_utility_allowances.csv b/policyengine_us/parameters/gov/hud/utility_allowance/county_utility_allowances.csv index dad49ed996d..2faa62e27d4 100644 --- a/policyengine_us/parameters/gov/hud/utility_allowance/county_utility_allowances.csv +++ b/policyengine_us/parameters/gov/hud/utility_allowance/county_utility_allowances.csv @@ -213,4 +213,42 @@ county_fips,year,bedrooms,monthly_value 48493,2026,2,232 48493,2026,3,260 48493,2026,4,288 -48493,2026,5,316 +48493,2026,5,316 +48113,2026,0,218 +48113,2026,1,238 +48113,2026,2,322 +48113,2026,3,457 +48113,2026,4,609 +48113,2026,5,759 +48113,2026,6,898 +48113,2026,7,1064 +48141,2026,0,165 +48141,2026,1,177 +48141,2026,2,214 +48141,2026,3,252 +48141,2026,4,293 +48141,2026,5,332 +48439,2026,0,140 +48439,2026,1,165 +48439,2026,2,210 +48439,2026,3,257 +48439,2026,4,305 +48439,2026,5,353 +48453,2025,0,256 +48453,2025,1,269 +48453,2025,2,316 +48453,2025,3,366 +48453,2025,4,413 +48453,2025,5,469 +48201,2025,0,200 +48201,2025,1,217 +48201,2025,2,299 +48201,2025,3,378 +48201,2025,4,452 +48201,2025,5,524 +48029,2026,0,139 +48029,2026,1,160 +48029,2026,2,186 +48029,2026,3,218 +48029,2026,4,257 +48029,2026,5,293 diff --git a/policyengine_us/tests/policy/baseline/gov/hud/hud_utility_allowance.yaml b/policyengine_us/tests/policy/baseline/gov/hud/hud_utility_allowance.yaml index ac7da9bf2f8..ec493fec905 100644 --- a/policyengine_us/tests/policy/baseline/gov/hud/hud_utility_allowance.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hud/hud_utility_allowance.yaml @@ -218,3 +218,69 @@ output: # 24 CFR 982.604(b): 0.75 * $210 (Wichita 0 BR) = $157.50/month. hud_utility_allowance: 157.5 * 12 + +- name: Dallas County, TX uses the 2026 DHA all-electric apartment schedule + period: 2026 + absolute_error_margin: 0.01 + input: + county_fips: "48113" + is_sro: false + bedrooms: 2 + tenant_pays_utilities: true + output: + hud_utility_allowance: 322 * 12 + +- name: El Paso County, TX uses the 2026 EPCHA all-electric apartment schedule + period: 2026 + absolute_error_margin: 0.01 + input: + county_fips: "48141" + is_sro: false + bedrooms: 2 + tenant_pays_utilities: true + output: + hud_utility_allowance: 214 * 12 + +- name: Tarrant County, TX uses the 2026 TCHAO all-electric multi-family schedule + period: 2026 + absolute_error_margin: 0.01 + input: + county_fips: "48439" + is_sro: false + bedrooms: 2 + tenant_pays_utilities: true + output: + hud_utility_allowance: 210 * 12 + +- name: Travis County, TX uses the 2025 HACA all-electric multi-family elevator schedule + period: 2025 + absolute_error_margin: 0.01 + input: + county_fips: "48453" + is_sro: false + bedrooms: 2 + tenant_pays_utilities: true + output: + hud_utility_allowance: 316 * 12 + +- name: Harris County, TX uses the 2025 HCHA all-electric low-rise apartment schedule + period: 2025 + absolute_error_margin: 0.01 + input: + county_fips: "48201" + is_sro: false + bedrooms: 2 + tenant_pays_utilities: true + output: + hud_utility_allowance: 299 * 12 + +- name: Bexar County, TX uses the 2026 HABC all-electric multi-family schedule + period: 2026 + absolute_error_margin: 0.01 + input: + county_fips: "48029" + is_sro: false + bedrooms: 2 + tenant_pays_utilities: true + output: + hud_utility_allowance: 186 * 12 diff --git a/policyengine_us/variables/gov/hud/hud_utility_allowance.py b/policyengine_us/variables/gov/hud/hud_utility_allowance.py index b5a3fe964f9..65e4fb9d73b 100644 --- a/policyengine_us/variables/gov/hud/hud_utility_allowance.py +++ b/policyengine_us/variables/gov/hud/hud_utility_allowance.py @@ -14,9 +14,10 @@ class hud_utility_allowance(Variable): documentation = ( "Monthly utility allowance for HUD programs, annualized. Set per public " "housing agency by bedroom size; encoded for the counties PolicyEngine " - "models (LA County, the Texas TDHCA service area, and four Kansas PHAs). " - "Each schedule is summed over all tenant-paid utilities assuming a " - "Multi-Family, all-electric unit. SRO units use the published SRO row " + "models (LA County, the Texas TDHCA service area, six Texas metro PHAs, " + "and four Kansas PHAs). Each schedule is summed over all tenant-paid " + "utilities assuming a Multi-Family, all-electric unit. SRO units use the " + "published SRO row " "where one exists, otherwise 75% of the zero-bedroom value per 24 CFR " "982.604(b). Returns 0 for counties without an encoded schedule." ) @@ -31,6 +32,23 @@ class hud_utility_allowance(Variable): "https://www.lacda.org/docs/librariesprovider25/shared-content---documents/utility-allowance/lacda-utility-allowance-schedule-7-1-2025.pdf", # Texas (TDHCA service area), effective 2026-01-01. "https://www.tdhca.texas.gov/section-8-resources", + # Dallas Housing Authority, apartment/condo/townhouse schedule, + # effective 2026-01-01. + "https://dhantx.com/wp-content/uploads/2025/12/HCV-2026-Utility-Allowances-Apt-Townhouse.pdf", + # El Paso County Housing Authority, apartment schedule, effective 2026. + "https://epcha.org/hcv-utility-allowances", + # Tarrant County Housing Assistance Office, multi-family homes, + # effective 2026-01-01. + "https://www.tarrantcountytx.gov/content/dam/main/housing-assistance/Documents/TCHAO_Multi-Family%20Homes_Effec.%2001-01-2026.pdf", + # Housing Authority of the City of Austin, multi-family elevator + # schedule, effective 2025-06-01. + "https://www.hacanet.org/wp-content/uploads/2025/03/Utility-Allowance-Schedule-06-01-2025.pdf", + # Harris County Housing Authority, low-rise apartment schedule, + # effective 2025-04-01. + "https://hchatexas.org/wp-content/uploads/HCHA-2025-Utility-Allowance-Chart-Apartments-52667.pdf", + # Housing Authority of Bexar County, multi-family schedule, effective + # 2026-01-01. + "https://habctx.org/wp-content/uploads/2025/06/Multi-Family-UA-2026.pdf", # Wichita Housing Authority (Sedgwick County), effective 2025-07-01. "https://www.wichita.gov/DocumentCenter/View/31965/2025-Utility-Allowances", # Topeka Housing Authority (Shawnee County), effective 2025. From ff00c6b9a0d94c7d52bd6cfd18d9d3e7523d9434 Mon Sep 17 00:00:00 2001 From: Ziming Date: Thu, 9 Jul 2026 15:20:18 -0400 Subject: [PATCH 2/3] Add HUD utility allowance schedules for Texas and Kansas metro counties Encode Housing Choice Voucher utility allowance schedules for six Texas metro counties (Dallas 48113, Harris 48201, Tarrant 48439, Bexar 48029, Travis 48453, El Paso 48141) and four additional Kansas counties (Butler 20015, Douglas 20045, Harvey 20079, Riley 20161), plus a 2026 Wichita Housing Authority vintage covering Sedgwick, Butler, and Harvey. All values follow the existing Multi-Family, all-electric convention and were verified to the dollar against each originating PHA schedule. Adds per-county test cases and source references; no formula change. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../hud-metro-utility-allowances.added.md | 1 + .../county_utility_allowances.csv | 49 ++++++++++++++--- .../gov/hud/hud_utility_allowance.yaml | 55 +++++++++++++++++++ .../gov/hud/hud_utility_allowance.py | 11 +++- 4 files changed, 107 insertions(+), 9 deletions(-) create mode 100644 changelog.d/hud-metro-utility-allowances.added.md diff --git a/changelog.d/hud-metro-utility-allowances.added.md b/changelog.d/hud-metro-utility-allowances.added.md new file mode 100644 index 00000000000..1f2ede7a840 --- /dev/null +++ b/changelog.d/hud-metro-utility-allowances.added.md @@ -0,0 +1 @@ +Add HUD utility allowance schedules for six Texas metro counties (Dallas, Harris, Tarrant, Bexar, Travis, El Paso) and four Kansas counties (Butler, Douglas, Harvey, Riley), plus a 2026 Wichita vintage. diff --git a/policyengine_us/parameters/gov/hud/utility_allowance/county_utility_allowances.csv b/policyengine_us/parameters/gov/hud/utility_allowance/county_utility_allowances.csv index 2faa62e27d4..fff5fad7781 100644 --- a/policyengine_us/parameters/gov/hud/utility_allowance/county_utility_allowances.csv +++ b/policyengine_us/parameters/gov/hud/utility_allowance/county_utility_allowances.csv @@ -23,15 +23,42 @@ county_fips,year,bedrooms,monthly_value 20091,2026,1,223 20091,2026,2,285 20091,2026,3,367 -20091,2026,4,452 -20091,2026,5,536 -20173,2025,0,210 +20091,2026,4,452 +20091,2026,5,536 +20015,2026,0,218 +20015,2026,1,231 +20015,2026,2,274 +20015,2026,3,317 +20015,2026,4,363 +20015,2026,5,406 +20015,2026,6,433 +20045,2025,0,219 +20045,2025,1,257 +20045,2025,2,320 +20045,2025,3,384 +20045,2025,4,449 +20045,2025,5,513 +20079,2026,0,218 +20079,2026,1,231 +20079,2026,2,274 +20079,2026,3,317 +20079,2026,4,363 +20079,2026,5,406 +20079,2026,6,433 +20173,2025,0,210 20173,2025,1,224 20173,2025,2,266 20173,2025,3,307 20173,2025,4,349 -20173,2025,5,390 -20173,2025,6,415 +20173,2025,5,390 +20173,2025,6,415 +20173,2026,0,218 +20173,2026,1,231 +20173,2026,2,274 +20173,2026,3,317 +20173,2026,4,363 +20173,2026,5,406 +20173,2026,6,433 20177,2025,0,189 20177,2025,1,199 20177,2025,2,256 @@ -43,9 +70,15 @@ county_fips,year,bedrooms,monthly_value 20209,2026,0,252 20209,2026,1,265 20209,2026,2,319 -20209,2026,3,369 -20209,2026,4,419 -20209,2026,5,471 +20209,2026,3,369 +20209,2026,4,419 +20209,2026,5,471 +20161,2024,0,245 +20161,2024,1,262 +20161,2024,2,316 +20161,2024,3,369 +20161,2024,4,422 +20161,2024,5,473 48013,2026,0,206 48013,2026,1,222 48013,2026,2,265 diff --git a/policyengine_us/tests/policy/baseline/gov/hud/hud_utility_allowance.yaml b/policyengine_us/tests/policy/baseline/gov/hud/hud_utility_allowance.yaml index ec493fec905..6582485431d 100644 --- a/policyengine_us/tests/policy/baseline/gov/hud/hud_utility_allowance.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hud/hud_utility_allowance.yaml @@ -284,3 +284,58 @@ tenant_pays_utilities: true output: hud_utility_allowance: 186 * 12 + +- name: Riley County, KS uses Manhattan HA's 2024 all-electric large-apartment schedule + period: 2025 + absolute_error_margin: 0.01 + input: + county_fips: "20161" + is_sro: false + bedrooms: 2 + tenant_pays_utilities: true + output: + hud_utility_allowance: 316 * 12 + +- name: Sedgwick County, KS uses Wichita HA's 2026 all-electric multi-family schedule + period: 2026 + absolute_error_margin: 0.01 + input: + county_fips: "20173" + is_sro: false + bedrooms: 2 + tenant_pays_utilities: true + output: + hud_utility_allowance: 274 * 12 + +- name: Butler County, KS uses Wichita HA's 2026 all-electric multi-family schedule + period: 2026 + absolute_error_margin: 0.01 + input: + county_fips: "20015" + is_sro: false + bedrooms: 2 + tenant_pays_utilities: true + output: + hud_utility_allowance: 274 * 12 + +- name: Harvey County, KS uses Wichita HA's 2026 all-electric multi-family schedule + period: 2026 + absolute_error_margin: 0.01 + input: + county_fips: "20079" + is_sro: false + bedrooms: 2 + tenant_pays_utilities: true + output: + hud_utility_allowance: 274 * 12 + +- name: Douglas County, KS uses LDCHA's 2025 all-electric high-rise apartment schedule + period: 2025 + absolute_error_margin: 0.01 + input: + county_fips: "20045" + is_sro: false + bedrooms: 2 + tenant_pays_utilities: true + output: + hud_utility_allowance: 320 * 12 diff --git a/policyengine_us/variables/gov/hud/hud_utility_allowance.py b/policyengine_us/variables/gov/hud/hud_utility_allowance.py index 65e4fb9d73b..d3a8e6d30a3 100644 --- a/policyengine_us/variables/gov/hud/hud_utility_allowance.py +++ b/policyengine_us/variables/gov/hud/hud_utility_allowance.py @@ -15,7 +15,7 @@ class hud_utility_allowance(Variable): "Monthly utility allowance for HUD programs, annualized. Set per public " "housing agency by bedroom size; encoded for the counties PolicyEngine " "models (LA County, the Texas TDHCA service area, six Texas metro PHAs, " - "and four Kansas PHAs). Each schedule is summed over all tenant-paid " + "and six Kansas PHA jurisdictions). Each schedule is summed over all tenant-paid " "utilities assuming a Multi-Family, all-electric unit. SRO units use the " "published SRO row " "where one exists, otherwise 75% of the zero-bedroom value per 24 CFR " @@ -51,12 +51,21 @@ class hud_utility_allowance(Variable): "https://habctx.org/wp-content/uploads/2025/06/Multi-Family-UA-2026.pdf", # Wichita Housing Authority (Sedgwick County), effective 2025-07-01. "https://www.wichita.gov/DocumentCenter/View/31965/2025-Utility-Allowances", + # Wichita Housing Authority (Sedgwick and Butler Counties; Harvey + # County except the City of Newton), effective 2026. + "https://www.wichita.gov/DocumentCenter/View/37084/2026-Utility-Allowances-PDF", # Topeka Housing Authority (Shawnee County), effective 2025. "https://www.tha.gov/wp-content/uploads/2025/04/All-Utility-Allowances.pdf", # Kansas City Kansas Housing Authority (Wyandotte County), 2026. "https://www.kckha.org/Documents/Housing/HCV/2026%20Utility%20Schedules-Kansas%20City%20KS-HUD%2052667-2026%20(0-5%20BR).pdf", # Johnson County Housing Authority (Johnson County), effective 2026-03-01. "https://www.jocogov.org/sites/default/files/files/2026-03/2026%20Utility%20Allowances-R.pdf", + # Manhattan Housing Authority (Riley County), large apartment schedule, + # effective 2024-11-20, with its water/sewer attachment. + "https://www.mhaks.com/212/Utility-Allowances", + # Lawrence-Douglas County Housing Authority, high-rise/apartment + # schedule adopted for the 2025 voucher program. + "https://storage.googleapis.com/wzukusers/user-31752601/documents/15086e89c84648f5bb744ea2e2fddd8c/September%2023%202024%20Board%20Meeting.pdf", ) defined_for = "tenant_pays_utilities" From 4526bedcc0cfae99298a2573c88b5bf5902440f3 Mon Sep 17 00:00:00 2001 From: Ziming Date: Mon, 13 Jul 2026 20:24:50 -0400 Subject: [PATCH 3/3] Add McLennan County utility allowance and update partner tripwire tests Encode Waco Housing Authority's McLennan County multi-family schedule (Schedule MC3, effective 2025-10-01) as county 48309, following the all-electric summing convention. Update the Dallas partner tripwire case to reflect the new DHA schedule (15,600 -> 19,464) and re-pin the no-allowance boundary to Lubbock County, which no encoded PHA schedule covers. Co-Authored-By: Claude Fable 5 --- .../hud-metro-utility-allowances.added.md | 2 +- .../gov/hud/utility_allowance/__init__.py | 4 +- .../county_utility_allowances.csv | 166 +++++++++--------- .../gov/hud/hud_utility_allowance.yaml | 11 ++ .../housing/housing_assistance/federal.yaml | 73 +++++++- .../gov/hud/hud_utility_allowance.py | 5 +- 6 files changed, 169 insertions(+), 92 deletions(-) diff --git a/changelog.d/hud-metro-utility-allowances.added.md b/changelog.d/hud-metro-utility-allowances.added.md index 1f2ede7a840..6cb007e38d8 100644 --- a/changelog.d/hud-metro-utility-allowances.added.md +++ b/changelog.d/hud-metro-utility-allowances.added.md @@ -1 +1 @@ -Add HUD utility allowance schedules for six Texas metro counties (Dallas, Harris, Tarrant, Bexar, Travis, El Paso) and four Kansas counties (Butler, Douglas, Harvey, Riley), plus a 2026 Wichita vintage. +Add HUD utility allowance schedules for seven Texas metro counties (Dallas, Harris, Tarrant, Bexar, Travis, El Paso, McLennan) and four Kansas counties (Butler, Douglas, Harvey, Riley), plus a 2026 Wichita vintage. diff --git a/policyengine_us/parameters/gov/hud/utility_allowance/__init__.py b/policyengine_us/parameters/gov/hud/utility_allowance/__init__.py index a166a26ccd0..14cb91931b1 100644 --- a/policyengine_us/parameters/gov/hud/utility_allowance/__init__.py +++ b/policyengine_us/parameters/gov/hud/utility_allowance/__init__.py @@ -3,8 +3,8 @@ Utility allowances are set per public housing agency (PHA) under 24 CFR 982.517, by dwelling-unit size (bedroom count) and utility/fuel type. There is no national dataset of these schedules, so this file encodes the schedules for the specific -counties PolicyEngine currently models (LA County, the TDHCA service area in -Texas, and four Kansas PHAs). +counties PolicyEngine currently models (LA County; the TDHCA service area and +seven metro PHAs in Texas; and six Kansas PHA jurisdictions). Each schedule is collapsed into a single monthly dollar amount per bedroom size using one consistent convention, matching how LA County was originally modeled: diff --git a/policyengine_us/parameters/gov/hud/utility_allowance/county_utility_allowances.csv b/policyengine_us/parameters/gov/hud/utility_allowance/county_utility_allowances.csv index fff5fad7781..73e3c3e807b 100644 --- a/policyengine_us/parameters/gov/hud/utility_allowance/county_utility_allowances.csv +++ b/policyengine_us/parameters/gov/hud/utility_allowance/county_utility_allowances.csv @@ -23,42 +23,42 @@ county_fips,year,bedrooms,monthly_value 20091,2026,1,223 20091,2026,2,285 20091,2026,3,367 -20091,2026,4,452 -20091,2026,5,536 -20015,2026,0,218 -20015,2026,1,231 -20015,2026,2,274 -20015,2026,3,317 -20015,2026,4,363 -20015,2026,5,406 -20015,2026,6,433 -20045,2025,0,219 -20045,2025,1,257 -20045,2025,2,320 -20045,2025,3,384 -20045,2025,4,449 -20045,2025,5,513 -20079,2026,0,218 -20079,2026,1,231 -20079,2026,2,274 -20079,2026,3,317 -20079,2026,4,363 -20079,2026,5,406 -20079,2026,6,433 -20173,2025,0,210 +20091,2026,4,452 +20091,2026,5,536 +20015,2026,0,218 +20015,2026,1,231 +20015,2026,2,274 +20015,2026,3,317 +20015,2026,4,363 +20015,2026,5,406 +20015,2026,6,433 +20045,2025,0,219 +20045,2025,1,257 +20045,2025,2,320 +20045,2025,3,384 +20045,2025,4,449 +20045,2025,5,513 +20079,2026,0,218 +20079,2026,1,231 +20079,2026,2,274 +20079,2026,3,317 +20079,2026,4,363 +20079,2026,5,406 +20079,2026,6,433 +20173,2025,0,210 20173,2025,1,224 20173,2025,2,266 20173,2025,3,307 20173,2025,4,349 -20173,2025,5,390 -20173,2025,6,415 -20173,2026,0,218 -20173,2026,1,231 -20173,2026,2,274 -20173,2026,3,317 -20173,2026,4,363 -20173,2026,5,406 -20173,2026,6,433 +20173,2025,5,390 +20173,2025,6,415 +20173,2026,0,218 +20173,2026,1,231 +20173,2026,2,274 +20173,2026,3,317 +20173,2026,4,363 +20173,2026,5,406 +20173,2026,6,433 20177,2025,0,189 20177,2025,1,199 20177,2025,2,256 @@ -70,15 +70,15 @@ county_fips,year,bedrooms,monthly_value 20209,2026,0,252 20209,2026,1,265 20209,2026,2,319 -20209,2026,3,369 -20209,2026,4,419 -20209,2026,5,471 -20161,2024,0,245 -20161,2024,1,262 -20161,2024,2,316 -20161,2024,3,369 -20161,2024,4,422 -20161,2024,5,473 +20209,2026,3,369 +20209,2026,4,419 +20209,2026,5,471 +20161,2024,0,245 +20161,2024,1,262 +20161,2024,2,316 +20161,2024,3,369 +20161,2024,4,422 +20161,2024,5,473 48013,2026,0,206 48013,2026,1,222 48013,2026,2,265 @@ -223,6 +223,12 @@ county_fips,year,bedrooms,monthly_value 48299,2026,3,325 48299,2026,4,362 48299,2026,5,400 +48309,2025,0,160 +48309,2025,1,194 +48309,2025,2,240 +48309,2025,3,285 +48309,2025,4,341 +48309,2025,5,394 48325,2026,0,197 48325,2026,1,210 48325,2026,2,243 @@ -246,42 +252,42 @@ county_fips,year,bedrooms,monthly_value 48493,2026,2,232 48493,2026,3,260 48493,2026,4,288 -48493,2026,5,316 -48113,2026,0,218 -48113,2026,1,238 -48113,2026,2,322 -48113,2026,3,457 -48113,2026,4,609 -48113,2026,5,759 -48113,2026,6,898 -48113,2026,7,1064 -48141,2026,0,165 -48141,2026,1,177 -48141,2026,2,214 -48141,2026,3,252 -48141,2026,4,293 -48141,2026,5,332 -48439,2026,0,140 -48439,2026,1,165 -48439,2026,2,210 -48439,2026,3,257 -48439,2026,4,305 -48439,2026,5,353 -48453,2025,0,256 -48453,2025,1,269 -48453,2025,2,316 -48453,2025,3,366 -48453,2025,4,413 -48453,2025,5,469 -48201,2025,0,200 -48201,2025,1,217 -48201,2025,2,299 -48201,2025,3,378 -48201,2025,4,452 -48201,2025,5,524 -48029,2026,0,139 -48029,2026,1,160 -48029,2026,2,186 -48029,2026,3,218 -48029,2026,4,257 -48029,2026,5,293 +48493,2026,5,316 +48113,2026,0,218 +48113,2026,1,238 +48113,2026,2,322 +48113,2026,3,457 +48113,2026,4,609 +48113,2026,5,759 +48113,2026,6,898 +48113,2026,7,1064 +48141,2026,0,165 +48141,2026,1,177 +48141,2026,2,214 +48141,2026,3,252 +48141,2026,4,293 +48141,2026,5,332 +48439,2026,0,140 +48439,2026,1,165 +48439,2026,2,210 +48439,2026,3,257 +48439,2026,4,305 +48439,2026,5,353 +48453,2025,0,256 +48453,2025,1,269 +48453,2025,2,316 +48453,2025,3,366 +48453,2025,4,413 +48453,2025,5,469 +48201,2025,0,200 +48201,2025,1,217 +48201,2025,2,299 +48201,2025,3,378 +48201,2025,4,452 +48201,2025,5,524 +48029,2026,0,139 +48029,2026,1,160 +48029,2026,2,186 +48029,2026,3,218 +48029,2026,4,257 +48029,2026,5,293 diff --git a/policyengine_us/tests/policy/baseline/gov/hud/hud_utility_allowance.yaml b/policyengine_us/tests/policy/baseline/gov/hud/hud_utility_allowance.yaml index 6582485431d..269c567d0cf 100644 --- a/policyengine_us/tests/policy/baseline/gov/hud/hud_utility_allowance.yaml +++ b/policyengine_us/tests/policy/baseline/gov/hud/hud_utility_allowance.yaml @@ -339,3 +339,14 @@ tenant_pays_utilities: true output: hud_utility_allowance: 320 * 12 + +- name: McLennan County, TX uses Waco HA's 2025 all-electric multi-family schedule + period: 2025 + absolute_error_margin: 0.01 + input: + county_fips: "48309" + is_sro: false + bedrooms: 2 + tenant_pays_utilities: true + output: + hud_utility_allowance: 240 * 12 diff --git a/policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/housing/housing_assistance/federal.yaml b/policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/housing/housing_assistance/federal.yaml index 8adec9a0c7f..1df915a15cc 100644 --- a/policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/housing/housing_assistance/federal.yaml +++ b/policyengine_us/tests/policy/baseline/partners/analytics_coverage/edge_cases/federal/housing/housing_assistance/federal.yaml @@ -559,7 +559,7 @@ # Payment standard 1bd 29,640 -> max subsidy 25,065. # Gross rent 15,600 - TTP 4,575 = 11,025 (rent side binds). housing_assistance: 11_025.0 -- name: housing_assistance_tx_tenant_pays_utilities_no_allowance (federal) +- name: housing_assistance_tx_tenant_pays_utilities_dallas_allowance (federal) period: 2026 absolute_error_margin: 0.1 input: @@ -602,11 +602,68 @@ output: spm_units: spm_unit: - # Guards the utility-allowance surface: the current model only encodes - # an LA County utility allowance schedule, so a Dallas tenant paying - # utilities gets hud_utility_allowance = 0 and gross rent = 21,600. + # Guards the utility-allowance surface: Dallas County (48113) has a + # county-keyed 2026 utility allowance schedule (issue #8784), so a + # 2-bedroom tenant paying utilities gets hud_utility_allowance = + # 322/month = 3,864 and gross rent = 21,600 + 3,864 = 25,464. # TTP = max(2,000; 6,000; 25) = 6,000. Payment standard 2bd 34,800 -> - # max subsidy 28,800. Gross rent - TTP = 15,600 (rent side binds). - # County-keyed TX utility allowance schedules (issue #8784) would - # raise this value; that change must surface as a reviewed diff here. - housing_assistance: 15_600.0 + # max subsidy 28,800. Gross rent - TTP = 19,464 (rent side binds). + # Schedule changes for Dallas County must surface as a reviewed diff + # here. + housing_assistance: 19_464.0 + +- name: housing_assistance_tx_tenant_pays_utilities_no_allowance (federal) + period: 2026 + absolute_error_margin: 0.1 + input: + people: + head: + age: 30 + is_tax_unit_head: true + is_tax_unit_spouse: false + is_tax_unit_dependent: false + is_disabled: false + employment_income_before_lsr: 20_000 + pre_subsidy_rent: 12_000 + households: + household: + members: + - head + state_code: TX + zip_code: '79401' + county_str: LUBBOCK_COUNTY_TX + county_fips: '48303' + bedrooms: 2 + tenant_pays_utilities: true + spm_units: + spm_unit: + members: + - head + tax_units: + tax_unit: + members: + - head + tax_unit_is_joint: false + families: + family: + members: + - head + marital_units: + mu_head: + members: + - head + output: + spm_units: + spm_unit: + # Guards the no-schedule boundary of the utility-allowance surface: + # Lubbock County (48303) is outside every encoded schedule (the TDHCA + # service area, the six Texas metro PHAs), has no ZIP-level payment + # standard, and is not a mandatory-SAFMR metro, so a tenant paying + # utilities gets hud_utility_allowance = 0 and gross rent = 12,000. + # TTP = max(2,000; 6,000; 25) = 6,000. Payment standard = 2bd county + # FMR 1,175/month x 12 = 14,100 -> max subsidy 8,100. + # Gross rent - TTP = 6,000 (rent side binds, with 2,100 of payment- + # standard headroom). A future Lubbock utility allowance schedule + # would raise this value; that change must surface as a reviewed diff + # here. + housing_assistance: 6_000.0 diff --git a/policyengine_us/variables/gov/hud/hud_utility_allowance.py b/policyengine_us/variables/gov/hud/hud_utility_allowance.py index d3a8e6d30a3..47008a2d112 100644 --- a/policyengine_us/variables/gov/hud/hud_utility_allowance.py +++ b/policyengine_us/variables/gov/hud/hud_utility_allowance.py @@ -14,7 +14,7 @@ class hud_utility_allowance(Variable): documentation = ( "Monthly utility allowance for HUD programs, annualized. Set per public " "housing agency by bedroom size; encoded for the counties PolicyEngine " - "models (LA County, the Texas TDHCA service area, six Texas metro PHAs, " + "models (LA County, the Texas TDHCA service area, seven Texas metro PHAs, " "and six Kansas PHA jurisdictions). Each schedule is summed over all tenant-paid " "utilities assuming a Multi-Family, all-electric unit. SRO units use the " "published SRO row " @@ -49,6 +49,9 @@ class hud_utility_allowance(Variable): # Housing Authority of Bexar County, multi-family schedule, effective # 2026-01-01. "https://habctx.org/wp-content/uploads/2025/06/Multi-Family-UA-2026.pdf", + # Waco Housing Authority, McLennan County multi-family schedule + # (Schedule MC3), effective 2025-10-01. + "https://www.wacopha.org/page/open/2202/0/mclennan%20MF.pdf", # Wichita Housing Authority (Sedgwick County), effective 2025-07-01. "https://www.wichita.gov/DocumentCenter/View/31965/2025-Utility-Allowances", # Wichita Housing Authority (Sedgwick and Butler Counties; Harvey