HUD FMR data dictionary: every column in the FY2026 ZIP file
What this FMR data dictionary covers
This is the column reference for the FY2026 ZIP-level HUD rent file, one entry per column: the exact header name as it appears in the file, the data type, a real example value from the first row, and the notes that save you a debugging session. The file itself is fmr-by-zip-2026.csv, 51,895 rows, one per ZIP code, built from HUD's FY2026 Small Area FMR publication. If you want the general format first, what a data dictionary is explains the five fields a good dictionary carries and shows excerpts from this same pack.
Every example value on this page comes straight from the free 22-row sample, which covers ZIPs in the Abilene, TX MSA. Nothing here is invented for illustration. For the file's place in the wider release, HUD rent data, explained walks all three CSVs, and HUD FMR by ZIP code runs a real single-ZIP lookup.
The header line and the first row
Ten columns. Here is the raw header and the first data row of the file, byte for byte:
zip,hud_area_code,metro,area_name,state,fmr_0br,fmr_1br,fmr_2br,fmr_3br,fmr_4br
76437,METRO10180M10180,metro,"Abilene, TX MSA",TX,850,880,1090,1420,1710
That first row is ZIP 76437 in the Abilene, TX MSA: monthly FMRs from 850 dollars for a studio to 1,710 for a 4-bedroom. One detail jumps out already: area_name is the only quoted value, because it contains a comma. Everything else is bare.
Column-by-column: the ten HUD dataset columns
Example values are from row 1 of the file (ZIP 76437).
| Column | Type | Example | Notes |
|---|---|---|---|
| zip | text, 5 characters | 76437 | The lookup key, one row per ZIP code. Read it as text, not a number: some real ZIPs start with 0, and any numeric cast eats the zero. |
| hud_area_code | text | METRO10180M10180 | HUD area identifier. Starts with METRO for a metro FMR area or NCNTY for a nonmetro county area. All 22 sample rows share METRO10180M10180 because they all sit in one area, Abilene. |
| metro | text | metro | The metro flag: metro or nonmetro, derived from the hud_area_code prefix. Every row in the free sample reads metro because Abilene is one. |
| area_name | text, quoted | "Abilene, TX MSA" | HUD Fair Market Rent Area Name. Quoted in the CSV because of the comma inside. Names run longer in big metros, for example "New York, NY HUD Metro FMR Area". |
| state | text, 2 letters | TX | State or territory code, derived from the area name. Filter on this for state-level pulls, as in the Texas and Florida walkthroughs. |
| fmr_0br | integer, monthly USD | 850 | FY2026 FMR for a 0-bedroom unit, the studio or efficiency row. |
| fmr_1br | integer, monthly USD | 880 | FY2026 FMR for a 1-bedroom unit. |
| fmr_2br | integer, monthly USD | 1090 | FY2026 FMR for a 2-bedroom unit. The number most lookups start with, and the one the county and state tables summarize. |
| fmr_3br | integer, monthly USD | 1420 | FY2026 FMR for a 3-bedroom unit. |
| fmr_4br | integer, monthly USD | 1710 | FY2026 FMR for a 4-bedroom unit. |
The five fmr columns share three rules. Values are bare integers: no dollar sign, no thousands separator, rounded to the nearest dollar exactly as HUD published them. They are monthly amounts, shelter rent plus utilities at the 40th percentile. And every row carries all five bedroom sizes, so there are no empty cells to special-case in this file.
Base values, SAFMR rows, and the metro flag
Two columns do the geography work, and the pair explains most of what confuses people about this file.
The base-value pattern. ZIPs without a designated Small Area FMR repeat their metro's values, so inside one hud_area_code most rows match and a few differ. There is no flag column marking the SAFMR rows; the difference lives in the fmr values themselves. Group on hud_area_code and the minority rows that break the pattern are your ZIP-level SAFMRs. In the sample, ZIP 79508 shows 1,240 for a 2-bedroom while 76437 in the same hud_area_code shows 1,090. Same metro code, 150 dollars apart. What SAFMRs are and where HUD designates them: SAFMR vs FMR, explained and HUD small area FMR.
The metro flag. metro and hud_area_code carry the same signal at different resolutions. The flag says metro or nonmetro; the code says which area, and the prefix (METRO or NCNTY) says how that area is defined. A nonmetro row has an NCNTY-prefixed code, reads nonmetro in the metro column, and usually repeats its county value across many ZIPs. Both columns are derived from HUD's own area definitions, so they always agree with each other.
One methodology note so nothing surprises you downstream: in some areas, notably parts of Texas, HUD's fallback rules substitute state or national minimums. The published numbers already reflect that, so no adjustment belongs on your side.
Parsing notes before you load the file
Four things bite people who skip the dictionary:
zip as text. The column holds 5-character strings. Format it as text in your spreadsheet before pasting, or read it with dtype={'zip': str} in pandas. A ZIP that loses its leading zero stops matching HUD's own tables.
Quoted area_name. The comma inside "Abilene, TX MSA" is why the field sits in quotes. Any real CSV parser handles it. Splitting on commas by hand splits Abilene in half.
Integers stay bare. 1090, never $1,090. Cast the fmr columns straight to int and skip the cleanup.
One row per ZIP. No duplicates to dedupe, no year column, no bedroom column to melt: bedroom size lives in the column names, amounts in the cells. If you need a long format, melt the five fmr columns into bedroom-size rows yourself. Converting the whole thing: CSV to JSON in Python runs the conversion on this exact sample. Curious why the file is a CSV at all? FMR dataset download shows how the official HUD workbooks behave in code and what the cleaned single-CSV version looks like under pd.read_csv.
FMR data dictionary questions
- What columns are in the HUD FMR 2026 dataset?
- The ZIP-level file fmr-by-zip-2026.csv has ten columns: zip, hud_area_code, metro, area_name, state, fmr_0br, fmr_1br, fmr_2br, fmr_3br, fmr_4br. One row per ZIP code, 51,895 rows total. The five fmr columns hold monthly dollar amounts for 0-bedroom through 4-bedroom units, rounded exactly as HUD published them.
- Should the zip column be read as text?
- Yes. ZIP codes are labels, not numbers, and a real share of them start with 0 (the 0xxxx range covers New England, New Jersey, and Puerto Rico). Any tool that loads the column as an integer drops that leading zero and turns a valid ZIP into a five-digit number that no longer matches the row you want. In a spreadsheet, format the column as text before pasting. In pandas, read with dtype={'zip': str}. In the CSV itself the values are plain 5-character strings, so the file is fine; it is the reader that needs the hint.
- How do I tell which rows are Small Area FMRs?
- There is no SAFMR flag column in the file. ZIPs without a designated SAFMR repeat their metro's base values, so the ZIP-level rows stand out by comparison: group rows on hud_area_code and the rows whose fmr values differ from the group's most common values carry ZIP-level SAFMRs. In the Abilene, TX MSA sample, ZIP 79508 has a 2BR FMR of 1,240 while 76437 in the same hud_area_code sits at 1,090. That 150-dollar gap is the ZIP-level variation, and it only shows up in the fmr columns.
Get the file this dictionary documents
The free 22-row sample carries the exact schema above. The full pack adds all 51,895 ZIP rows plus the county rollup (3,229 rows), the 52-row state summary, and the dictionary itself alongside source checksums.
Checkout and download run through Getly. Source: US Department of Housing and Urban Development, FY2026 Fair Market Rent release, huduser.gov. US government data, public domain.