METHODOLOGY

Ordinary — a travel advisory for the risks that actually get people. How every number on the map is built, and where it stops being trustworthy.

Two kinds of "dangerous" get blended together and shouldn't be. A government advisory colour is built around terrorism and political violence. Most travellers who are actually hurt or killed got there by road, water, illness, or alcohol. This site keeps those two axes separate, always — never combined into one colour, score, or URL.

Political — orange

What five governments rate: armed conflict, terrorism, unrest, kidnapping, detention. We don't re-score it; we aggregate AU / UK / US / CA / NZ onto a common 1–4 and show where they disagree.

Ordinary — red

What nobody organised: roads, illness, water, crime that isn't political. The advisories mention it in the body text; the rating ignores it. We score it from counts and rates.

Political axis

Each government's current level is fetched nightly, normalised to 1–4, and kept forever — the change log is a feature, not a byproduct. Mapping is 1:1 for AU / NZ / CA / US (four levels each). The UK has no level 2: FCDO publishes only "no advice against travel" (→1), "against all but essential" (→3), "against all travel" (→4). We show that gap rather than inventing a 2. The map's UK* lens is parts-adjusted: where FCDO advises against travel to parts of a country, the map shows the parts level and the whole-country level sits in the country brief. Derived flags: divergent when the five span ≥2 levels, stale when a level ≥3 has not changed in 18 months.

Ordinary axis: the composite danger score

This is the part that needed real care, because the wrong method lies. Ranking by bands (1–4 each, averaged) throws away magnitudes and treats a homicide and a day of diarrhoea as the same ordinal. They are not.

Risk is probability × severity. The only honest common currency is expected harm per trip, measured in DALYs — disability-adjusted life-years, the standard global-health unit for how much life a thing costs you. So:

danger = Σcause  (annual rate per 100k) × (trip fraction of a year) × (tourist exposure) × (DALYs per event)
  = expected DALYs lost per 100,000 standard trips,  shown as × home (home = AU).

Three properties make this reflect true degree of risk:

Every parameter is published and editable at data/out/model.json — the weights are not arbitrary, they are derived from severity and exposure. Live values:

CauseRate basisTourist exp.DALYs/eventNote
loading model…

Worked example, Indonesia: roads contribute most, then food & water, a little malaria, almost no homicide — the panel on the map shows this breakdown for every country, so you can see why a score is what it is. Honest headlines: Japan lands below home; the US sits around 2–2.5× home and it is roads, not crime; Thailand's danger is scooters; Kenya and Nigeria are malaria, assuming no prophylaxis.

What this can't tell you (read this part)

There is no per-tourist rate anywhere. Nobody measures crime, illness, or death against visitors specifically and comparably across countries. Roads, homicide, and malaria rates are per resident; a tourist's exposure differs. We adjust for it crudely (exposure multipliers) and say so.
Selection. Bali's rate is the rate for who goes to Bali — the average visitor, not you. A cautious traveller is safer than the number; a reckless one is not.
Model simplifications (all editable in model.json): road deaths only, so roads are understated (non-fatal injury omitted). Malaria assumes no prophylaxis — prophylaxis cuts it roughly ten-fold. Food-water attack rates are standard travel-medicine figures by sanitation band, not per-country. DALY-per-event values are round estimates.
Deliberately not modelled. Sexual violence / rape: cross-country rates are a reporting-and-definition lie (the best-reporting countries look the worst) — shown only as "unknown, under-reported", never a number. Kidnapping: the political axis, by definition. Robbery / theft / kidnapping against persons: not freely available (UNODC's portal is closed to bulk access). Insurance evacuations: no independent per-country rate exists — insurer data is proprietary and anecdotal.
Consular numbers are reporting-biased. Deaths / hospitalisations / arrests / crime from consular data are tourist-specific but count only people who contacted their government — an ordering signal, not a rate. Functioning police → more theft reports, so low-trust states look safer than they are.
Subnational zones are published as prose, not boundaries. Named regions get real polygons; distance-from-a-feature zones (e.g. "within 11.3 km of Gaza") are computed as buffers from real geometry; road-referenced corridors are drawn approximately and flagged. We never shade a province the source didn't name.

Sources & licences

LayerSourceLicence
Political — UKGOV.UK content API (FCDO)OGL v3
Political — UStravel.state.gov advisories RSSUS public domain
Political — AUSmartraveller destinations exportCC BY 4.0
Political — CAtravel.gc.ca JSON feedOGL–Canada
Political — NZSafeTravel (embedded JSON)CC BY 4.0
RoadsWHO GHO RS_198 road-death rateWHO (CC BY 4.0 on data.who.int)
HomicideUNODC via World Bank VC.IHR.PSRC.P5CC BY 4.0 (World Bank)
MalariaWHO via World Bank SH.MLR.INCD.P3CC BY 4.0 (World Bank)
Food & waterWHO/UNICEF JMP basic sanitation (World Bank SH.STA.BASS.ZS)CC BY 4.0 (World Bank)
Consular numeratorsDFAT State of Play, US deaths abroad, FCDO consular, MFATCC BY / OGL / public domain
Denominators (visits)ABS, Stats NZ, ONSCC BY 4.0 / OGL v3
BoundariesNatural Earth; geoBoundaries (ISR/EGY ODbL, PSE CC BY 4.0)public domain / ODbL / CC BY

Give it away: code is MIT, data outputs CC BY 4.0 with attribution to the governments above. Fork it for your home country.

Ordinary · served from a home server · political advisories refreshed nightly, rate data yearly by hand · world map · danger model