Searching "crime data by ZIP code" gets you a wall of results, and most of them are showing you the same handful of underlying sources dressed up in different colors. This post explains where the numbers come from, what a ZIP-level figure can honestly say, and how to read one in five minutes.
Where ZIP crime data comes from
There is no national database of crime by ZIP code. Police departments report crime to the FBI at the agency level, which tells you about a city or a county, not a neighborhood. Anything more local has to be built from incident-level reports: the individual records a department publishes about a robbery on a particular block on a particular night.
Those records come out through open-data portals, daily blotters, PDF logs, and press releases, and every department does it differently. SpotCrime has been collecting and geocoding them since 2007, across hundreds of jurisdictions, into a dataset of more than 60 million incidents. That is the raw material behind every CrimeScore.
Once you have incidents with locations, a ZIP-level number is a matter of drawing the boundary and counting what falls inside. The catch is in the details: which boundary, which window of time, which offence types, and how you compare one ZIP with another. Different choices give different numbers for the same place.
Three questions to ask any ZIP crime number
1. What is it counting? Reported incidents, weighted or not? Only violent crime, or everything down to vandalism? A number that counts every report will make a busy shopping district look worse than a quiet residential ZIP with the same number of assaults.
2. What is it compared with? A raw count means nothing without a baseline. Is the ZIP compared with the whole country, with its state, or with nothing at all? CrimeScore uses a national percentile: the share of scored ZIP codes with lower crime intensity, so a ZIP at the 90th percentile has more reported crime than 90% of them.
3. When is it from? Crime data lags. A department may publish this week's incidents in a month, or a year. A number with no date is a number you can't check. Every CrimeScore carries its snapshot month, and ZIP pages keep the history so you can see the trend.
Reading a ZIP in five minutes
Take ZIP 21201 in downtown Baltimore as a worked example.
- Start with the level. It reads Extreme, which is the top one percent of scored ZIP codes for reported crime. That single word tells you more than the decimal does.
- Read the percentile as a sentence. "More reported crime than 99.4% of scored US ZIP codes."
- Check the state rank against the denominator. Second in Maryland sounds alarming; second of 30 scored ZIPs in the state is a different, more honest statement, and the page shows both numbers.
- Look at the monthly history, not one month. A move of a few tenths of a point is noise. A move over several months is a trend.
- Compare with the neighbors. A ZIP far above the ZIPs that touch it is a local hotspot. A ZIP in line with them is a regional pattern, and you should be looking at the county instead.
What a ZIP number cannot tell you
A ZIP code is a big place. Downtown Baltimore's 21201 packs offices, a stadium, a university campus, and residential blocks into one code, and the score is an average over all of it. It says nothing about a specific address, a specific block, or a specific person.
It also only counts what police report and publish. A ZIP in a jurisdiction that releases less data, or releases it late, can look calmer than it is. When CrimeScore has too little data to score an area it says "not found", and that means exactly what it says. It does not mean safe.
Finally, it is a description of the recent past, not a forecast. Nothing in the score predicts what will happen next month.
Where to go from here
Browse crime scores by state and city, read the methodology for the full model description, or, if you want the score inside your own product or AI assistant, see the developer docs.