How we work

Methodology

Every page in the atlas is derived from the same pipeline: fetch from well-known public sources, cross-validate where possible, render deterministically, and commit the result to a public repository. Nothing is hand-curated or paid.

01 Data sources

Five primary sources, each cited at the foot of every page: REST Countries (country metadata, currency, languages), GeoNames cities15000 (6,050 cities), Wikipedia visa-requirements articles (bilateral visa policy), Passport Index open dataset (cross-reference for visa status), and Open-Meteo Archive ERA5 (daily observations 2014–2023 aggregated to monthly climate normals for 200 tier-1 cities).

02 Tier selection

We cover 50 passport nations and 200 cities, ranked by population and travel volume. The selection is deterministic — rerunning the pipeline produces the same list.

03 Cross-validation

Visa records are merged from Wikipedia and Passport Index. When the two disagree, Wikipedia prevails (more current) and the record is flagged with conflict=true in the underlying data. Climate values come from a single source (Open-Meteo) and are not averaged across providers.

04 Rendering

Content is rendered from templates keyed by data. Identical inputs produce identical pages (hash-checked). No LLM-assisted prose is used in data fields — only in stable template prose (overview, tips) that reads the same across every render.

05 Refresh cadence

Source data is re-fetched quarterly via GitHub Actions. When a country's status changes (e.g., visa policy update), the corresponding pages regenerate and the sitemap's lastmod date updates.

06 Limitations

Climate normals are 10-year averages (2014–2023). Individual years vary. Visa policies can change at short notice — always reconfirm with the destination embassy. Some small cities lack weather stations with complete coverage; those pages are marked “climate data coming soon.”

By the numbers
250
Countries indexed
50
Tier-1 passport nations
6,050
Cities in database
200
Cities with climate
2,450
Visa records

Open-source data and pipeline: github.com/patrache/travelscape →