How we score neighborhood safety
Three engines, one fit score per neighborhood. Every input cites a public dataset and every number carries its refresh date.
How do you calculate the safety score?
We don't publish a single opaque "safety score." Instead we publish three engines whose outputs you can read independently. The first — Family Safety Match — combines them into a personalized rank against your weights.
Family Safety Match
A weighted multi-criteria fit score. The user sets sliders for each factor they care about; we normalize the weights to 1.0 and compute a fit score per neighborhood as the sum of (factor score × weight).
Inputs
- Crime rate per 1,000 residents (FBI UCR + NIBRS, local PD open data — refreshed daily where published)
- School quality (each state's Department of Education report cards)
- School safety (federal CRDC — arrests + restraint + chronic absenteeism)
- Walk-to-school route score (see Engine 2)
- Parks + green space (OpenStreetMap + city parks data)
- Offender distance (national sex-offender registry, geocoded)
- Walkability (OSM sidewalk + crossing coverage; intersection density)
Scoring approach
Each factor is min-max normalized to 0–100 within the target metro area. Weights are normalized to sum to 1.0. The fit score is the weighted sum. Output is a ranked list of neighborhoods with the underlying factor scores visible.
Output
A ranked list with the factor breakdown — so a family can see why a neighborhood ranked where it did, not just the final number.
Walk-to-School Route Safety
Block-by-block routing from home to school, scored per segment on hazard data along the path.
Inputs
- Routing graph: OSRM / Valhalla on OpenStreetMap pedestrian network
- Per-block crime density (local PD open data — refreshed daily where published)
- Pedestrian crash incidents (NHTSA FARS + state DOT pedestrian-crash datasets)
- Signalized vs unsignalized crossings (OpenStreetMap)
- Sidewalk coverage on the chosen route (OpenStreetMap)
- Lighting (OSM tagging where available; flagged as gap where absent)
Scoring approach
We compute the shortest pedestrian route from origin to school. Each route segment receives a per-block hazard score; the route score is a length-weighted average. We also surface the lowest-scoring segment so families know where the risky block is — not just the average.
Output
A 0–100 route score, the worst block on the route, and a count of unsignalized crossings.
Star Data Points
Stand-alone, sourced facts surfaced as individual signals. Not combined into a score — just shown, with source + date, so a family can read them directly.
Inputs
- School-based arrests + restraint (federal CRDC — last federal release 2026-06-29)
- Chronic absenteeism (federal CRDC + state DOE)
- Repeat-address crime concentration (local PD open data — daily where published)
- Pedestrian crashes by time-of-day (NHTSA FARS + state DOT)
- Lead service-line flags (EPA + utility data, where published)
- Flood risk (FEMA flood maps)
- Air-quality flags (EPA AirNow)
Output
Discrete fact cards on the neighborhood page — each with the source link + last-refreshed date.
How is the walk-to-school score generated?
The walk-to-school engine routes the actual pedestrian path between two coordinates — your home and the school — on the OpenStreetMap pedestrian network using OSRM or Valhalla. Each block on the route is then scored on real hazard data: crime density from local PD open data (where published), pedestrian crashes from NHTSA FARS + state DOT crash datasets, whether crossings on the route are signalized, and whether the OSM data shows sidewalk coverage on that block.
The final score is a length-weighted average of per-block hazard scores. We also report the single worst block on the route — because a 95/100 average that hides a single 30/100 block is the block that matters.
What sources do you cite?
Every signal traces to a named public dataset. The full inventory — with refresh cadence and last refresh date — is on the Our Sources page. Short list: FBI UCR + NIBRS API, local PD open-data portals (typically ArcGIS / Socrata), U.S. Census ACS, each state's Department of Education report cards, federal Civil Rights Data Collection (CRDC), NHTSA FARS + state DOT pedestrian-crash datasets, OpenStreetMap, and the national sex-offender registry.
What are the limitations?
Open data has gaps. Crime data only captures reported, classified incidents — under-reporting is real and we never claim otherwise. School report cards lag the school year. OSM sidewalk + lighting coverage varies by block; where it's sparse we mark the segment as a data gap rather than infer.
What we explicitly refuse to do:
What we don't do
- No opinion-based ranking. We don't publish "safest neighborhood" lists ungrounded in data.
- No aggregating anonymous reviews. Rumor isn't a source.
- No scraping social media. Nextdoor sentiment isn't a public-safety signal.
- No predictive policing. We surface what already happened, not who might offend.
Frequently asked
- Is the fit score the same for every family?
- No. The Family Safety Match is user-weighted — you set the sliders. Two families with different priorities will get different rankings, and that's the point.
- Why don't you publish one big number?
- Because a single "safety score" hides the tradeoffs. A neighborhood can be low-crime and have a hostile school walk. We show the components so families can see the tradeoff.
- Do you adjust for crime under-reporting?
- No — we publish what the data says, with the caveat. We don't model unreported crime because modeling it would be guessing.