PolicyEngine / PolicyEngine/policyengine-us
Texas Section 8 enhancement
- Dominant language
- Python
- Stars
- 162
- Forks
- 212
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 97
Description
Original scope: add ZIP code-level payment standard data for Texas. That part has shipped; this issue now tracks the remaining Texas Section 8 gaps, primarily utility allowances.
## Done — ZIP-level payment standards (verified 2026-07-09)
| Layer | Coverage |
|---|---|
| TDHCA adopted standards | 284 ZIPs / 34 counties (2025 schedule; verified value-for-value against the [2025 TDHCA PDF](https://www.tdhca.texas.gov/sites/default/files/section-8/docs/25-HCV-PaymentStandards.pdf) — 1,988 cells, 0 mismatches) |
| Houston HHA tiered standards | 146 ZIPs (effective 2025-01-01) |
| Mandatory-SAFMR metros (24 CFR 888.113) | Dallas 243, San Antonio 138, Fort Worth 126, Beaumont-Port Arthur 43 ZIPs; FY2025 + FY2026, verified against HUD's revised FY2026 SAFMR workbook (0 value mismatches). 17 DFW boundary ZIPs are dual-listed by HUD in both metro files with identical values and are stored once under Fort Worth. |
| County FMR fallback | All 254 Texas counties, FY2025 + FY2026 |
Total: 885 distinct Texas ZIPs carry a ZIP-level standard; everywhere else resolves to the county FMR, which the statute bounds to within ±10% of any PHA's adopted standard (42 U.S.C. § 1437f(o)(1)(B); 24 CFR § 982.503(b)).
## Remaining gap 1 — utility allowances cover only 28 of 254 counties
`county_utility_allowances.csv` encodes the TDHCA 2026 schedule for 28 rural/suburban counties (2-bedroom $183–$341/month). Two problems:
- **Six TDHCA payment-standard counties have no utility allowance row**: Bosque, Cooke, Crockett, McLennan (Waco), McMullen, Wise. Households there get a ZIP-level payment standard but a $0 utility allowance. Check whether TDHCA's utility allowance publication covers these counties; if so this is a small data add.
- **No metro PHA schedule is encoded** — Dallas, Harris, Tarrant, Bexar, Travis, El Paso all return $0 even with `tenant_pays_utilities: true`. Since gross rent = rent + utility allowance (24 CFR 982.505), this understates assistance for tenants who pay utilities. For Dallas County a 2-bedroom all-electric allowance is roughly $275–300/month based on the adjacent Denton ($298) and Ellis ($276) schedules, i.e. ~$3.3–3.6k/year of understated gross rent per affected household. Candidate sources: DHA (Housing Solutions for North Texas) publishes its schedule as a PDF; likewise Opportunity Home (San Antonio) and HACA (Austin). Houston HHA's utility schedule PDFs 404 after the alliancehtx.org migration.
Note the schema takes one schedule per county; metro counties host multiple PHAs (Dallas County: DHA, Garland, Grand Prairie, Mesquite, Irving), so we would encode the dominant PHA's schedule — the same approximation already used for the Kansas counties.
## Remaining gap 2 — non-mandated metro payment standards
Austin (124 ZIPs in HUD's SAFMR file), El Paso (60), Corpus Christi (48), Killeen-Temple (42), Lubbock (42), Amarillo (36), McAllen (33), plus Laredo and Brownsville have no ZIP-level rows. Their PHAs are not SAFMR-mandated, so encoding raw SAFMRs would fabricate standards they never adopted; the county FMR fallback is within the statutory band. Closing this properly means encoding each PHA's published schedule (or verifying voluntary SAFMR adoption under 24 CFR 888.113(c)(3), as Houston HHA effectively did with its SAFMR-informed tiers).
## Input contract caveat
The county FMR fallback and utility allowance both key on `county_fips`; `zip_code` alone (or a county name) resolves to $0 outside the ZIP-covered areas. `county_fips` is a bare input with no derivation from county name (#8964 tracks the related `tenant_pays_utilities` reconciliation).
Contributor guide
Research direction
Start with county_utility_allowances.csv and the existing county_fips-based payment-standard and utility-allowance lookup. Verify TDHCA coverage for Bosque, Cooke, Crockett, McLennan, McMullen, and Wise, then research published PHA schedules for the named metro counties. Done means adding only verified adopted schedules, preserving the county fallback behavior, and covering the new data with tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100