Skip to content

Add FY2026 HUD Fair Market Rents and rebuild HUD annual income on 24 CFR 5.609#8804

Open
hua7450 wants to merge 6 commits into
PolicyEngine:mainfrom
hua7450:hud-fmr-fy2026
Open

Add FY2026 HUD Fair Market Rents and rebuild HUD annual income on 24 CFR 5.609#8804
hua7450 wants to merge 6 commits into
PolicyEngine:mainfrom
hua7450:hud-fmr-fy2026

Conversation

@hua7450

@hua7450 hua7450 commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator

Summary

Two HUD updates:

  1. Year-accurate county Fair Market Rents — adds FY2026 so simulations at period 2026 resolve to FY2026 values (the county-FMR step of Year-accurate HUD data: period should select matching fiscal year (FMR, SAFMR, payment standards) #8801).
  2. Rebuilds hud_annual_income on 24 CFR 5.609 — parameterized, Person-level income components plus the regulation's earned-income and foster exclusions.

1. FY2026 county Fair Market Rents

  • Regenerated fair_market_rents.csv from HUD's published FY2026 revised county workbook via tools/convert_hud_fmr_xlsx.py (+23,820 FY2026 rows; FY2025 rows byte-for-byte unchanged).
  • nearest_fmr_year resolves period-exactly: 2025 → FY2025, 2026 → FY2026, with nearest-bundled-year fallback outside the range.
  • When a county/bedroom row is missing from the queried fiscal year, hud_fair_market_rent falls back to the most recent earlier bundled year rather than returning zero.

Connecticut

HUD's FY2026 file adopts Connecticut's nine Census planning regions (FIPS 0911009190) in place of the eight legacy counties (0900109015), which PolicyEngine's County enum still uses. Rather than return 0 for a legacy CT county at period 2026, the fallback makes Connecticut use its FY2025 rents. This is a stopgap; migrating the county model to the planning regions is tracked in #8803.

2. HUD annual income — 24 CFR 5.609 rebuild

  • Income sources are parameterized in gov/hud/annual_income/sources/{earned,unearned}.yaml and summed by new Person-level variables hud_earned_income and hud_unearned_income (via adds). TANF — the one unit-level family benefit — is counted whole at the SPMUnit level.
  • Earned-income exclusions:
    • (b)(3) — children under 18: full earned income excluded.
    • (b)(14) — full-time-student dependents (18+): earned income above the §5.611 dependent deduction ($480) excluded. Dependency uses a new is_hud_dependent variable (§5.603: a family member other than head/spouse who is under 18, has a disability, or is a full-time student), so a student dependent is recognized regardless of tax-unit structure.
  • Foster members (§5.603): foster children and adults are not family members, so none of their own income counts (family-level TANF still counts).
  • No longer counted: capital gains ((b)(24)), retirement-account distributions ((b)(26) — only periodic distributions count, and the data has no periodic flag), worker's compensation ((b)(5)), debt relief ((a)/(b)(20)), and the Alaska Permanent Fund dividend.

New variables: hud_earned_income, hud_unearned_income, is_hud_dependent.

Testing

  • hud_annual_income (14) + hud_fair_market_rent (17) unit tests pass.
  • Full gov/hud tree + partner contract tests + AZ/FL/NY/VT state programs that depend on hud_annual_income: pass (399–433 across runs).
  • FMR CSV diff verified purely additive (0 FY2025 rows changed/removed); TANF counted exactly once (verified).

Regulatory authority

  • 24 CFR 5.609 (annual income); 24 CFR 5.603 (dependent / family definitions); 24 CFR 888 (FMRs); 24 CFR 982.503 (HCV payment standards = 90–110% of FMR).
  • HUD FY2026 FMRs effective 2025-10-01.

Related

🤖 Generated with Claude Code

- Add FY2026 county-level Fair Market Rents so simulations at period 2026
  resolve to FY2026 values (period-exact); FY2025 rows are unchanged.
- Count unemployment compensation, child support received, and veterans'
  benefits in hud_annual_income per 24 CFR 5.609.
- Document the Connecticut planning-region FY2026 FMR gap (tracked in PolicyEngine#8803).

Addresses PolicyEngine#8801 (county FMR step).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Jun 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (20652c5) to head (79db2c3).
⚠️ Report is 54 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main     #8804   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            5         5           
  Lines           63        87   +24     
  Branches         0         2    +2     
=========================================
+ Hits            63        87   +24     
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.

hua7450 and others added 2 commits June 30, 2026 17:23
- Move counted income sources into gov/hud/annual_income/sources (earned,
  unearned) parameters instead of the market_income aggregate.
- Add 24 CFR 5.609(b)(3) child and (b)(14) full-time-student-dependent
  earned-income exclusions, using the section 5.611 dependent deduction as
  the student earnings threshold.
- Exclude debt relief (no HUD basis; (b)(20) excludes loan proceeds) and the
  Alaska Permanent Fund dividend; retirement account distributions stay out.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@hua7450 hua7450 changed the title Add FY2026 HUD Fair Market Rents and complete HUD annual income sources Add FY2026 HUD Fair Market Rents and rebuild HUD annual income on 24 CFR 5.609 Jun 30, 2026
hua7450 and others added 2 commits June 30, 2026 21:45
…year

Connecticut's legacy county FIPS (09001-09015) returned zero at period
2026 because HUD's FY2026 file uses the new planning-region FIPS
(09110-09190) that PolicyEngine's County enum does not yet carry.
hud_fair_market_rent now fills any (county, bedroom) row absent from the
preferred fiscal year with the most recent earlier bundled year, so
Connecticut uses FY2025 rents at period 2026 instead of zero.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Add person-level hud_earned_income and hud_unearned_income (adds) sourced
  from the gov/hud/annual_income/sources parameter lists.
- Add is_hud_dependent (24 CFR 5.603) and key the full-time-student
  earned-income exclusion on it, so a student dependent is recognized
  regardless of tax-unit structure.
- Exclude foster children's and adults' own income (24 CFR 5.603); TANF is a
  unit-level family benefit and is counted whole.
- Fold the Connecticut FMR-fallback changelog into the FY2026 entry.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

1 participant