FILE No. 9DFA5E Fri, 15 May 2026 OPERATOR: CIVILIAN CLEARANCE: TRAVEL PREP
Know the risk before you go — or where you are now.
CONFIDENTIAL

Data Review Process

Travel Risk Calculator publishes city-level safety data sourced from a mix of public feeds, a 45,000-row geographic baseline (SimpleMaps World Cities), and editorial judgment. This page describes how data enters the system, who reviews it, and what has to happen before a city page goes live.

Three lanes of data

Data on this site flows through three independent pipelines, each with its own review process.

1. The geographic baseline

The names, coordinates, ISO codes, regions, and populations of cities and countries come from the SimpleMaps World Cities Database (CC BY 4.0 licensed). We imported the May 2026 release: 48,060 cities across 241 countries.

This data is treated as geographic ground truth — we trust SimpleMaps to know that Bucharest is in Romania and that its coordinates are 44.43°N, 26.10°E. The full attribution is on our Data Sources page.

What we do not trust SimpleMaps for: travel risk, safety, crime, health, or anything beyond geography. Those signals come from elsewhere.

2. The threat-score baseline

Every published city page has a baseline score across twelve weighted categories: crime, health, advisory, political, disaster, transport, environmental, accommodation, arrival time, digital security, money safety, and personal modifier. These baselines are set by editors based on:

  • publicly available crime indices (e.g., Numbeo, government crime statistics);
  • health-system rankings and WHO data;
  • the current US State Department advisory tier;
  • political-stability indices (e.g., Fragile States Index);
  • well-known transport and tourist-scam patterns documented in news media or government advisories.

Baselines are reviewed at least every 90 days for every verified city. Updates are visible in the page's "Last reviewed" timestamp.

3. The live-data layer

Live data refreshes on a schedule independent of editorial review:

  • Weather and air quality: every 30 minutes per city, via Open-Meteo;
  • Travel advisories: every 6 hours, via the US State Department RSS feed;
  • Disaster alerts: every 30 minutes, via GDACS;
  • Health notices: every 12 hours, via the CDC Travelers' Health RSS feed;
  • News headlines: every hour, biased to the last 7 days, via Google News;
  • AI-synthesized briefings: every 6 hours per assessment.

Live data is shown verbatim from its source. We do not edit, rewrite, or filter it beyond removing duplicates and cropping snippet length.

The three review tiers

Every city in our database carries one of four review statuses:

StatusMeaningIndexable?In sitemap?
needs_reviewImported or auto-discovered, no human review yetNo (noindex)No
reviewedA human has confirmed the city is real and name/coordinates are correctYesYes
verifiedAn editor has checked threat scores against current sources within 90 daysYesYes
deprecatedWithdrawn — duplicate, merged, or known incorrectNoNo

The default for any newly created or auto-discovered city is needs_review. Capitals and cities with a population above 500,000 are auto-promoted to reviewed at import time, but their threat scores are not auto-set — an editor still has to add those before useful content appears on the page.

Auto-discovery review

When a user searches for a city not in our database, the system queries Open-Meteo's free geocoding API to validate the city exists. The validator requires:

  • the geocoding feature code starts with PPL (populated place), not ADM*, PCL*, AREA*, or RGN* (which are administrative divisions, not cities);
  • the name doesn't collide with an existing country name in our database;
  • population — when returned — is at least 1,000.

Cities that pass validation are inserted with review_status='needs_review' and tagged with a "discovered via Open-Meteo geocoding" note. They are excluded from the sitemap until an editor reviews them.

AI content review

AI-synthesized briefings are not human-reviewed before publication — that would defeat the point of live data. Instead, we use automated validation gates:

  • JSON-shape validation — malformed output fails closed (status: failed);
  • Snippet-ID grounding — claims referencing snippets that don't exist are dropped;
  • Domestic-trip filter — passport/visa/embassy recommendations are dropped on same-country trips;
  • Tier-label discipline — composite tier is computed mechanically, the AI cannot override it;
  • Duplicate-section detection — if a briefing repeats the same paragraph more than twice, it's flagged for review.

Users can flag specific AI claims via the feedback widget at the bottom of any assessment page. Flagged claims enter a review queue visible to editors at /admin/review-queue.

What "Data confidence" means

Every assessment shows a data-confidence indicator: low, medium, or high. This reflects how much of the score is built from city-specific data vs country-level fallback:

  • high — we have a city-level baseline, the city is verified, and live data feeds returned results;
  • medium — city-level baseline exists but live data is partial, or the city is reviewed but not verified;
  • low — score is country-level fallback; the city is in our database but has no specific baseline yet.

How to escalate

If a page shows information you can prove is wrong, file a Correction. We log corrections publicly.