Skip to main content

HUD USPS ZIP Crosswalk

Authoritative ZIP-to-county mapping from HUD and the USPS.

The HUD–USPS ZIP Code Crosswalk Files map each USPS ZIP code to the county (and other Census geographies) it falls in, along with the share of residential, business, and other addresses in each. Open Navigator uses the ZIP→county crosswalk to resolve addresses to the counties and jurisdictions they belong to.

:::info At a glance

ProviderU.S. Department of Housing and Urban Development (HUD), Office of Policy Development and Research
CoverageAll U.S. ZIP codes; quarterly snapshots
Update cadenceQuarterly
LicensePublic domain (U.S. government work) · see Legal
CostFree — requires a free HUD User login to download
Access methodBulk .xlsx download (cached locally)
Our pipelinebronze.bronze_jurisdictions_zip_county · packages/ingestion/src/ingestion/hud/zip_county.py
:::

Overview

HUD publishes quarterly crosswalk files derived from USPS address data that relate ZIP codes to a range of Census geographies (county, tract, CBSA, congressional district, and more). We use the ZIP→county file: it gives, for every ZIP code, the county or counties it overlaps and the proportion of addresses in each.

Because a single ZIP code can span multiple counties, each row carries residential, business, other, and total address ratios so downstream models can pick the dominant county or weight by address share.

Data available

Fields

FieldDescriptionTypeCoverage
zip5-digit USPS ZIP codechar(5)100%
county5-digit county FIPS codechar(5)100%
usps_zip_pref_cityUSPS preferred city name for the ZIPvarchar(100)~100%
usps_zip_pref_stateUSPS preferred 2-letter state codechar(2)~100%
res_ratioShare of residential addresses in this countynumeric100%
bus_ratioShare of business addresses in this countynumeric100%
oth_ratioShare of other addresses in this countynumeric100%
tot_ratioShare of all addresses in this countynumeric100%

Grain & keys

  • Grain: one row per ZIP code × county overlap
  • Primary key: (zip, county)
  • Joins to: addresses on zip (see mdm_bridge_address_county), and onward to counties/jurisdictions on the county FIPS code

How we ingest it

# Load the latest cached crosswalk into bronze (full reload):
python -m ingestion.hud.zip_county --truncate

# Or load a specific snapshot / a sample:
python -m ingestion.hud.zip_county --file data/cache/hud/ZIP_COUNTY_122025.xlsx --limit 500
  • Source: https://www.huduser.gov/portal/datasets/usps_crosswalk.html (download requires a free HUD User account)
  • Lands in: bronze.bronze_jurisdictions_zip_countymdm_bridge_address_county
  • Refresh: download the newest quarterly ZIP_COUNTY_<MMYYYY>.xlsx into data/cache/hud/, then re-run the loader with --truncate

Coverage & known gaps

  • The download is gated behind a free HUD User login, so it cannot be fetched unattended — the loader reads a manually-cached .xlsx from data/cache/hud/.
  • ZIP codes that span county lines produce multiple rows; consumers must decide whether to take the dominant county (tot_ratio) or weight by share.
  • ZIP codes are a USPS delivery construct, not a true geography, so a small number of edge cases (PO-box-only or point ZIPs) map imperfectly to counties.

Licensing & attribution

The crosswalk files are produced by a U.S. federal agency and are in the public domain. HUD requests attribution to the HUD–USPS ZIP Code Crosswalk Files. See the provider's dataset page for the full terms.