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.

Find a Safe Place uses three scoring engines — Family Safety Match (weighted multi-criteria fit score), Walk-to-School Route Safety (block-by-block routed path scoring), and Star Data Points (sourced, dated facts surfaced as standalone signals). Every input is tied to a public dataset (FBI UCR + NIBRS, local PD open data, Census ACS, NHTSA FARS + state DOT, federal CRDC, OpenStreetMap, the national sex-offender registry) and stamped with its last refresh date.
Noble (Eric) · operator + builder · last reviewed 2026-06-29

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.

Engine 1

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.

Caveat: A fit score is a fit score, not a verdict. Two families with different priorities will and should see different rankings.
Engine 2

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.

Caveat: Lighting and sidewalk data is OSM-tagged. Where coverage is sparse we mark the segment "data gap" rather than guess.
Engine 3

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.

Caveat: Where a federal or state source hasn't published recently, we show the stat with its actual age. We never extrapolate.

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.
Last updated: 2026-06-29 · Author: Noble (Eric) · Phone (805) 900-0032