How the safety score is built
6,168 cities · 6,084 scored · data updated 2026-09-04
Every city on this site gets a single 0-100 score, where higher is safer. It combines four measures from published international datasets. There are no adjustable sliders: one fixed weighting applies to every city, so “rank 14” means the same thing to every reader. Nothing is estimated or filled in — where a source has no figure, the value is missing and says so.
The four factors
- homicide
- Intentional homicides per 100,000 residents per year — the one crime statistic that is reliably comparable across countries, because homicides are counted rather than self-reported. City-measured where a published figure exists, otherwise the national rate. Log scale: 0.2 per 100k scores 100, 60 per 100k scores 0.
- peace
- Deaths from organized violence recorded by the Uppsala Conflict Data Program within 100 km of the city over the last three full years. Log scale: zero deaths scores 100, 10,000 scores 0. This is the factor crime statistics cannot see — a city can have low street crime and an active war nearby.
- equality
- Income inequality (World Bank Gini index). Across the ~800 cities with measured homicide, inequality predicts real city violence better than any other structural factor. Linear: Gini 20 scores 100, Gini 65 scores 0. Country-level.
- HDI
- The UN Human Development Index — health, education and income combined — as a proxy for state capacity. HDI × 100. Country-level, and kept at a low weight mainly as a fallback where Gini is missing.
Why the weights are fixed
The mix is not a matter of taste. It was calibrated against the roughly 800 cities where a measured city-level homicide rate is published, cross-validated by country so that no single country’s cities could both train and test the same weighting.
Two findings drove the result. Income inequality carries nearly the entire structural signal — Gini alone predicts measured city homicide better than any other structural factor tested. National wealth, by contrast, predicts city violence almost not at all: rich, unequal countries keep violent cities, and poorer, more equal ones can be very safe. That is why GNI per capita is shown on every city page as context but carries zero weight.
Conflict is deliberately not calibrated against homicide, because it measures a different outcome. Kyiv has a low homicide rate and an active war; only a separate factor can express that.
Score bands
- Very low
- 0–20out of 100, higher is safer
- Low
- 20–40out of 100, higher is safer
- Moderate
- 40–60out of 100, higher is safer
- High
- 60–80out of 100, higher is safer
- Very high
- 80+out of 100, higher is safer
Missing data
Where a factor has no published figure for a city, its weight is redistributed across the factors that do — the score is never propped up with an estimate. When less than half of the weighting has data behind it, the city is shown as “no data” instead of being given a misleading number. Of 6,168 cities, 84 fall into that category.
Travel context that is deliberately not scored
City pages also carry official travel advisories, areas the UK FCDO advises against, nearby conflict hotspots, road-traffic deaths, governance and corruption measures, natural-hazard exposure, air quality, drinking water, healthcare capacity and legal risks for LGBTQ+ travellers. All of it is country-level and none of it affects the score. Folding those into the ranking would dilute a model calibrated on one outcome with axes it was never validated against, and would double-count risks the score already prices.
Sources
- homicideRate (country) — UNODC intentional homicide statistics (CTS), July 2026 release (free with citation)
- cityHomicideRate (city) — Igarapé Institute Homicide Monitor (each value cites its national source, e.g. SINESP, FBI, Eurostat) (free with citation)
- gini, gniPerCapitaPppUsd, military, demographics (country) — World Bank Open Data API (CC-BY 4.0)
- hdi (country) — UNDP Human Development Report via Our World in Data (free with citation)
- conflictFatalities (city, 100 km radius, 2022-2024) — UCDP Georeferenced Event Dataset v25.1, Uppsala University (free with citation)
- city roster, population, areaKm2, densityPerKm2 (city) — UN World Urbanization Prospects 2025, DEGURBA urban centres with 100k+ population (CC BY 3.0 IGO)
- advisory.usLevel (country) — US Department of State travel advisories (public domain (US government work))
- advisory.fcdoStatus, advisory.avoidAreas (country) — UK Foreign, Commonwealth & Development Office travel advice via the gov.uk content API (Open Government Licence v3.0)
- advisory.emergencyNumbers (country) — UK FCDO travel advice, "Getting help" section (local emergency services numbers) (Open Government Licence v3.0)
- safety topics (country, advisory-topics.json) — UK FCDO travel advice, "Safety and security" section headings and opening paragraphs (Open Government Licence v3.0)
- conflictHotspots (city) — UCDP Georeferenced Event Dataset v25.1 place strings (where_prec <= 2nd-order admin), deadliest named locations within 100 km, 2022-2024 (free with citation)
- roadDeathsPer100k (country) — WHO road-traffic mortality via World Bank Open Data (SH.STA.TRAF.P5) (CC-BY 4.0)
- politicalStability, ruleOfLaw (country) — Worldwide Governance Indicators, 0-100 governance scores (World Bank WGI database) (CC-BY 4.0)
- cpi (country) — Transparency International Corruption Perceptions Index (CC BY-ND 4.0 (attribution required))
- wpsIndex (country) — Georgetown Institute Women, Peace and Security Index (free with citation)
- informRisk, hazards.* (country) — EU JRC INFORM Risk Index (DRMKC API), composite plus earthquake, flood, cyclone, tsunami and drought sub-scores (free with citation)
- pm25, safeWaterPct, hospitalBedsPer1000, physiciansPer1000, malariaIncidence (country) — WHO, UNICEF/WHO JMP and WHO GHO via World Bank Open Data (CC-BY 4.0)
- lgbtqLaw (country) — Legal status of same-sex sexual acts (Mignot) and death-penalty series (Velasco LGBTI Policy Dataset) via Our World in Data (CC BY 4.0)
Limits worth knowing
- City-level homicide (Igarapé Homicide Monitor) covers 798 of 6168 cities and is preferred for scoring where present; the rest fall back to the national UNODC rate, and reference years differ between the two.
- Perception/survey-based safety scores are deliberately excluded: no legal source covers this roster (Numbeo forbids scraping), and 10 hand-entered values out of 6,000+ cities carry no signal.
- Country-level figures (Gini, HDI, income, demographics) are shared by every city in that country by construction.
- Population uses UN DEGURBA urban-centre boundaries, which are tighter than metro areas - figures read lower than commonly cited metro populations.
- Conflict exposure counts UCDP organized-violence deaths within 100 km, so a city near a war zone scores the war, not its street crime.
- Reference years differ by country and field; each stored value carries its own year.
- Missing data is stored as null and excluded from scoring by weight renormalization - never imputed.
- Area warnings are country-level official advisories (US State Dept, UK FCDO) plus UCDP-recorded conflict locations; no published neighborhood-level crime dataset exists, so none is shown.
- Traveler-context indicators (road deaths, governance, corruption, hazard risk, WPS, LGBTQ+ legality, air quality, water, healthcare capacity) are country-level, carry zero weight in the score, and describe law or national conditions - not enforcement practice or any specific city.
- Malaria incidence is published only for endemic countries; a missing value means the source does not list the country, so the figure is shown only where it exists rather than rendered as zero risk.