Guide · Sales territory design

Find the counties where rent is outrunning working incomes, using HUD data

If you sell to households, you need to know which of your markets have rent rising faster than what a working household earns, and whether people are arriving in those markets or leaving. This page ranks every county in your states by how far HUD's rent has outrun HUD's income limit between FY2021 and FY2026, then sorts each county into one of four kinds of market. It takes one county file and four formulas.

Updated Oct 2026·Excel · Google Sheets·7 min read

The idea the page rests on: compare HUD to HUD. Both numbers come from the U.S. Department of Housing and Urban Development (HUD), for the same area and the same fiscal year, so the ratio only moves when HUD's rent and HUD's income limit move apart. That is what makes the change between FY2021 and FY2026 worth reading. Source: HUD, Fair Market Rents and Income Limits, FY2021 and FY2026.

Our county affordability guide uses Census survey figures: the median rent people pay and the median household income. This page uses HUD's program figures instead: the rent HUD sets as fair for a 2-bedroom unit, and the income HUD uses as its "very low income" ceiling for a family of four. It also compares two fiscal years, so it measures change, not level.

One thing trips people up, so it comes first. Do not double-click the file to open it. The county_fips column is zero-padded text, and Excel turns 01017 into 1017. Step 1 shows how to import it safely.

What you need

The County List with Demographics, in Excel or Google Sheets, and ten columns with these exact names:

ColumnWhat it holds
nameCounty or county-equivalent name
state_codeTwo-letter state code
county_fips5-character county code, as text
householdsOccupied homes, five-year average
fair_market_rent_2br_2021 / fair_market_rent_2br_2026HUD Fair Market Rent for a 2-bedroom unit, FY2021 / FY2026
income_limit_50pct_4person_2021 / income_limit_50pct_4person_2026HUD income ceiling at 50% of area median income for a family of four ("very low income"), FY2021 / FY2026
net_migrationPeople moving in minus people moving out, during 2024
population_change_5yr_pctPercent change in population over five years

These are 10 of the file's 122 columns. 62 of the 122 are HUD's affordability grid: income limits at 30, 50 and 80 percent for households of 1 to 8 people, Fair Market Rents for studio to 4-bedroom, area median income and the FMR percentile, for both fiscal years.

The free and $29 county files carry no HUD columns, so this can't be done on them.

Step by step

  1. Import the file; don't double-click it. Excel: Data → From Text/CSV, and in the preview set county_fips to Text, then Load. Google Sheets: File → Import, and turn off "Convert text to numbers, dates, and formulas." For the full version, see Open a US City List CSV in Excel or Google Sheets without losing the leading zeros.
  2. Keep only your states, on a new sheet. Filter state_code, then copy the visible rows of these columns onto a new sheet, in this order: A name, B state_code, C county_fips, D households, E fair_market_rent_2br_2021, F income_limit_50pct_4person_2021, G fair_market_rent_2br_2026, H income_limit_50pct_4person_2026. Then add I net_migration and J population_change_5yr_pct.
  3. Check the columns before you trust them. Select columns E to H one at a time and read Count and Numerical Count in the status bar (Excel: right-click the status bar to show them). If Numerical Count is lower, some cells arrived as text. Re-import as in step 1.
  4. Know what is covered. Every county in the 50 states has both years of HUD figures, except two Alaska areas, Chugach and Copper River, which have no FY2021 figure. Puerto Rico's 78 municipios carry no HUD figures. Delete any row with a blank in E to H.
  5. Rent burden, FY2021. In column K (header burden_2021), row 2, and fill down:
    =12*E2/F2
  6. Rent burden, FY2026. In column L (header burden_2026), row 2, and fill down:
    =12*G2/H2
  7. Change in points. In column M (header change_pts), row 2, and fill down:
    =100*(L2-K2)

    Sort the sheet by M, largest to smallest, and format K and L as percentages. In plain terms, each burden figure is the share of its income that a family of four at HUD's very-low-income ceiling would spend on a fair-market 2-bedroom rent. A positive change_pts means that share grew.

  8. Sort each county into one of four markets. In column N (header market), row 2, and fill down:
    =IF(M2>0, IF(I2>0,"Squeezed and growing","Squeezed and shrinking"), IF(I2>0,"Easing and growing","Easing and shrinking"))

    What each means for a seller:

    • Squeezed and growing: demand is arriving into a tighter budget, so lead on price and payment terms.
    • Squeezed and shrinking: households are leaving, so don't add reps there on volume alone.
    • Easing and growing: rent is losing ground to income and people are arriving.
    • Easing and shrinking: budgets are loosening but the customer base is getting smaller.

    A county with net migration of exactly 0 in 2024 counts as "shrinking" under this formula. The file has 10 such counties, 1 of them in Georgia, so check population_change_5yr_pct for those before you act on the label.

    This is a reading of the data, not a rule. Use it to decide where to look first.

  9. Optional: join to your territories. If you built territories with How-to 1, bring the territory column across by county_fips with XLOOKUP, then average change_pts per territory, weighted by households:
    =SUMPRODUCT((territory_range=1)*households_range*change_range)/SUMIFS(households_range,territory_range,1)

    Replace the three ranges with your own and change 1 to each territory number.

All formulas work unchanged in Excel and Google Sheets.

⚠ net_migration covers one year, 2024: people moving in minus people moving out. Say "net migration in 2024", not "over five years". population_change_5yr_pct is the five-year trend. Use it in step 8 only if you want the longer view, and say which one you used.
⚠ A negative value is a signal, not an error. net_migration is negative in 780 of 3,143 counties, and population_change_5yr_pct is negative in 1,298. Don't delete those rows as bad data.

Check your work against our numbers

Georgia, 159 counties:

CheckExpected
Counties after step 4159 (Georgia has no blanks)
Top row after sorting by change_ptsBibb, 13021: 2-bedroom rent $787 → $1,307; income ceiling $28,350 → $38,500
Bibb burden_202133.3%
Bibb burden_202640.7%
Bibb change_pts7.43
Counties tied with Bibb at 7.43Crawford, Jones and Twiggs (see below)
Fulton, 1312133.0% → 37.1%, change_pts 4.09
Counties where the burden rose142 of 159
Of those, "Squeezed and growing"116; "Squeezed and shrinking" 26

If your numbers match, the sheet is working.

Two things that break this

HUD sets these figures for a metro area, not a county. Inside one HUD metro area, every county gets the same rent and the same income ceiling, so they tie exactly. Bibb, Crawford, Jones and Twiggs all show 7.43 because HUD prices them as one Macon area. Georgia's 159 counties produce only 71 different values. Read a tie as one market, and break it with households or net_migration. Four tied counties are not four separate findings.

In the six New England states, HUD publishes these figures by town, and the file reports a population-weighted blend of the towns for each county. The file's methodology.md says so.

Small counties top a national ranking. Nationally, the top of the list is very small rural counties. Gates County, NC is at +18.69 points and holds about 4,000 households. Their figures swing with a few rents. If you rank across states, filter to counties with at least 50,000 households first. Sort or filter column D, keep the rows at 50,000 or more, then sort by change_pts again. That leaves 504 counties. The top is Gallatin County, MT (+10.01), then Berks County, PA (+9.23).

What this can and can't tell you

This procedure is correct only if you compare the same fiscal years on both sides and keep the same household size and bedroom count in both years. It measures the gap between HUD's own rent and HUD's own income ceiling. It is not what your customers actually pay, and this page must not be read as saying so.

Also worth knowing:

  • A family of four and a 2-bedroom unit are a common default, not a rule. The file carries household sizes 1 to 8 and unit sizes from studio to 4-bedroom. A product for single renters would use income_limit_50pct_1person_* with fair_market_rent_0br_*. Say which you used.
  • Nationally, the change is close to flat. The median county moved +0.1 points, with the burden rising in 1,647 counties and falling in 1,494. A rise in your states is a local finding, not a national trend.
  • The download includes column-definition.md and methodology.md. Read those for what each column means.

Get the file

County List with Demographics — $199 one-time. 3,221 counties and county-equivalents (the 50 states and Puerto Rico), 122 columns, 62 of them HUD's affordability grid, the columns this guide uses. See the list, or start with the free 100-row sample.