Map with ZIP Codes
Create a heatmap, dot map or territory map. Explore six US datasets, or paste ZIP codes with values or labels. Free, private, and ready to use.
Choose a ZIP code heatmap, dot map or territory map
Heatmap combines values inside each county. Use it for national patterns, with sum, average, minimum, maximum or distinct ZIP count for your own data.
Dots keeps the ZIP detail. Color represents the value at each ZIP reference location; Size by population makes more populous ZIPs larger. The legend uses ZIP values instead of county totals.
Territory uses labels rather than numeric ranges. Paste zip,label rows to group sales teams or service areas, then change group colors in the legend. Regions supplies a ready-made example. Labels and values stay loaded when you change render mode.
Six datasets you can open without any data of your own
Most ZIP code maps are useless until you supply a list. This one opens on a national view, because the page carries a reference table of 40,940 US ZIP codes with six demographic metrics each, and shading them by county is one click.
Population is the most complete, covering 32,876 ZIPs, and it is the one the page loads with. Population density shows the urban and rural divide far more sharply than raw population. Median income and home value show wealth corridors and persistent poverty side by side. Rent is often the clearest single measure of affordability pressure. Commute time outlines commuter belts and the places public transport does not reach.
Each metric uses the aggregation that makes sense for it. Population sums, because a county's population is the total of its ZIPs. The other five average, because adding together a set of incomes produces a number with no meaning.
How to map your own list of ZIP codes
Choose Paste your own ZIP codes and put your list in the box, one ZIP per line. Each ZIP is looked up in the same reference table and the county is shaded by whatever you ask it to measure.
If your list comes from a spreadsheet, paste the column directly. A header row naming the columns is recognised, so zip,value followed by rows of data works without editing. A four-digit ZIP is padded back to five, because Excel removes the leading zero from New England codes, and a ZIP+4 is reduced to its five-digit prefix.
Shading by a value instead of by count
Put the number after the ZIP, separated by a comma: 90210,450. Then choose how the numbers combine per county. Sum is right when each row is an amount of something — revenue, leads, shipments. Average suits rates and scores, where adding them up would be meaningless. Maximum and minimum highlight the extremes. Count ignores the numbers entirely and shades by how many ZIPs landed in each county.
Choosing the wrong one changes the story the map tells. Summing a rate produces a map of county size rather than a map of the rate, so it is worth naming what the number is before picking.
Why counties rather than ZIP code areas
ZIP codes are delivery routes, not areas. The USPS draws them to make mail delivery efficient, so they follow streets, they do not cover the whole country, and they change as mail volumes change. There is no stable ZIP polygon to shade.
A ZCTA — a ZIP Code Tabulation Area — is the Census Bureau's area approximation of a ZIP code, and it is what most mapping tools use. Heatmap rolls ZIPs up to counties; Dots and Territory use their reference coordinates. Counties are stable over decades, they are the unit most public data is published in, and they join cleanly to census and economic datasets. The trade-off is resolution: a large county contains many ZIPs, so the shading shows where a pattern concentrates rather than exactly where each ZIP sits.
Each ZIP carries its county FIPS code directly, so the join is exact rather than a name match: 40,504 of the 40,940 ZIPs resolve to one of the 3,231 counties drawn on the map.
What people use a ZIP code map for
Sales coverage. Plotting accounts or leads by ZIP shows quickly where a territory is dense and where a rep is driving a long way between stops. It is also the fastest way to notice a ZIP that has been assigned to the wrong region.
Direct mail and door drops. A list of delivery ZIPs with counts per ZIP shows how far a campaign reaches and whether the distribution matches the intended area.
Service areas. For trades, telecom, and home healthcare, ZIP-level volume against a county map shows where response times will be worst before a customer complains.
Real estate and site selection. Combining your own ZIP-level figures with county demographics makes a first screen for where demand is likely to be.
Grant writing and community work. Showing where a programme's participants actually live makes a stronger case than a list of ZIP codes in a table.
Common ZIP code data mistakes
Leading zeros lost in Excel. Open a CSV of New England ZIPs in Excel and 02108 becomes 2108. Format the column as text before importing, or let this tool pad it back — but check the count of recognised ZIPs, because padding a genuinely wrong number produces a plausible wrong result.
Treating ZIP and city as the same thing. A ZIP can cover parts of several municipalities and a city can span many ZIPs. If your analysis is by city, map by city, not by ZIP.
PO box and military ZIPs. These have no civilian population area, so they cannot be placed on a map of residents. They show up here as unmatched rather than being quietly dropped.
Mixing ZCTA and USPS ZIP data. A dataset keyed by ZCTA is not interchangeable with one keyed by delivery ZIP. They share codes often enough to look compatible and differ often enough to give wrong answers.
Assuming a ZIP is current. ZIP codes are added and retired continuously. A list from a few years ago can contain codes that no longer exist.
Where ZIP code data comes from
The USPS publishes the authoritative list of ZIP codes with their city and state. The Census Bureau publishes ZCTA boundaries and the American Community Survey data tabulated by ZCTA, all in the public domain. Commercial vendors sell ZIP centroids bundled with demographics and business counts, which is convenient but worth checking against the free sources.
This tool uses a ZIP-to-county reference table bundled with the page, joined against county boundaries derived from US Census Bureau geography. Both are public domain.
Limitations to keep in mind
In Heatmap, counties are the shading unit, so a large county with many ZIPs reads as one colour. Dots and Territory show ZIP reference points without claiming to draw postal boundaries. The underlying ZIP reference is a snapshot: the USPS adds and retires ZIP codes continuously, so a recently created code may not be recognised.
Related tools
- Blank US mapA printable outline of all 50 states.
- Blank map of a stateEvery US state as its own outline.
- Create a mapMap your own point, line, or polygon data.
- Studio viewerOpen the county boundaries and style them yourself.
- Population within a radiusCount people around a point.
- Distance between ZIP codesStraight-line distance between two ZIPs.
Frequently asked questions
- What does each render mode show?
- Heatmap combines ZIP values by county. Dots places one colored circle at each ZIP reference location, with an optional population size setting. Territory colors the same ZIP locations by your labels. Switching modes keeps your input.
- How do I make a ZIP code territory map?
- Choose Territory, then Paste ZIP codes. Enter ZIP,label rows such as 10001,East team and 90210,West team. Each label receives a color and ZIP count in the legend; select its swatch to change the color. Try Regions for a built-in geographic grouping. These are point locations, not territory boundaries.
- How do I map a list of ZIP codes?
- Choose Paste ZIP codes and enter your list, one per line. The map shades every county those ZIPs fall in. Add a number after a comma on each line to shade by that value instead of by how many ZIPs you have, and pick how the values combine from the dropdown.
- Why do the colours appear at county level rather than per ZIP?
- Heatmap uses county boundaries to make national comparisons readable. Switch to Dots to see individual ZIP locations, or Territory to color those locations by label. None of the modes draws ZCTA polygons or official postal boundaries.
- Can I shade by a value rather than by ZIP count?
- Yes. Put the value after the ZIP separated by a comma, like 90210,450, and choose sum, average, maximum, or minimum from the dropdown. Choose Count if you just want to see where your list is concentrated.
- What happens to ZIP codes that do not match a county?
- They are listed under Review unmatched or skipped rows rather than being dropped silently. The usual causes are ZIPs used only for PO boxes or military mail, which have no civilian population area, and ZIPs that were retired after the county reference was published.
- Does it handle Excel dropping the leading zero?
- Yes. A four-digit entry is read as a ZIP that lost its leading zero, which is what happens to New England ZIPs in a spreadsheet, and it is padded back to five digits. It is only ever a guess, so check the count of recognised ZIPs against your list.
- Can I paste ZIP+4 codes?
- Yes, and the extra four digits are ignored. ZIP+4 identifies a block or a building, which is too fine a level for a county map, so the five-digit prefix is used.
- Is my data uploaded anywhere?
- No. The list is read and aggregated in your browser and never leaves it. The reference table of ZIP codes and the county boundaries are static files served with the page, so nothing you type is transmitted.
- How many ZIP codes are covered?
- The reference contains 40,940 ZIP codes. The population heatmap matches 32,876 ZIPs to counties, while Dots places 33,169 ZIPs with positive population values; coverage varies for the other metrics. The map shows the ZIP and county counts for the selected dataset.
- How current is the ZIP data?
- The reference maps ZIP codes to counties as they stood when the data was published. The USPS adds, retires, and reassigns ZIP codes continuously, so a ZIP created recently may not be recognised. The count of unmatched ZIPs is shown so a stale entry is visible rather than hidden.
- Where does the demographic data come from?
- The figures are ZIP-level aggregates from the US Census American Community Survey, the same public source most ZIP demographics are built on. Coverage varies by metric. Unshaded counties have no usable ZIP values for the selected measure. Population values are summed; the other metrics use unweighted ZIP averages and should not be read as official county estimates.
- What is the difference between a ZIP code and a ZCTA?
- A ZIP code is a delivery route defined by the USPS and it changes as mail volume does. A ZCTA is a Census Bureau area that approximates a ZIP code and does not change between censuses. They usually share a code but they are not the same thing, and a ZCTA can cover ground that no ZIP route serves.
- What is a ZIP code vs a county vs a city?
- ZIP codes are postal routes, counties are legal administrative divisions, and cities are incorporated municipalities. The three overlap without nesting: one ZIP can cross two counties, one county holds many cities, and a city can sit in several ZIPs. Which one to map depends on whether your data is postal, administrative, or municipal.
- Can I use this for sales territory planning?
- It is a reasonable first look at where your list is concentrated. For assigning territories you would also want the workload per ZIP rather than only its location, since a dense urban ZIP and a sprawling rural one are very different amounts of work.
- Is the map free to use commercially?
- Yes. There is no account, no payment, and no attribution requirement. The county boundaries come from the US Census Bureau via the us-atlas project, which is public domain.