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, Tucson PD open data — refreshed daily 2026-06-29)
- School quality (Arizona Department of Education school report cards)
- School safety (federal CRDC — arrests + restraint + chronic absenteeism)
- Walk-to-school route score (see Engine 2)
- Parks + green space (OpenStreetMap, City of Tucson Parks)
- 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 across the Tucson metro. 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 (Tucson PD open data — refreshed daily 2026-06-29)
- Pedestrian crash incidents (Arizona DOT pedestrian-crash dataset)
- 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 + AZ DOE)
- Repeat-address crime concentration (Tucson PD open data — daily)
- Pedestrian crashes by time-of-day (Arizona 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 Tucson PD open data, pedestrian crashes from the Arizona DOT crash dataset, 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, Tucson PD open data (ArcGIS / Socrata), U.S. Census ACS, Arizona Department of Education school report cards, federal Civil Rights Data Collection (CRDC), Arizona DOT pedestrian-crash dataset, 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.