Townleap

How We Score Cities

Every number on Townleap traces back to a published source. We don't make data up, and we don't round vibes into percentages. Here's exactly what we use and how we compute the scores you see on comparison and city pages.

Why Settler Data, Not Tourist Data

Most "cost of living" tools compare Airbnb prices, coworking day passes, and cappuccino costs — optimized for someone staying three months. Townleap is for people who are actually moving: signing a lease, getting residency, enrolling kids in school, and dealing with inflation eating their savings. That's why we weight democracy, visa timelines, healthcare access, and grid reliability alongside rent and groceries.

Data Sources

Rent & living costsNumbeo

Crowdsourced cost-of-living data, updated continuously. We pull city-level prices for rent, groceries, restaurants, transport, and utilities.

Homicide rateUNODC

UN Office on Drugs and Crime — intentional homicides per 100,000 population. The one violent-crime stat that's consistently reported worldwide.

Crime perceptionNumbeo Crime Index

Survey-based index (0–100). Captures property crime, street safety, and how safe residents feel — things homicide stats miss.

City-level median download speed in Mbps. Measured from real user speed tests, not ISP marketing.

The Economist Intelligence Unit scores every country 0–10 across electoral process, civil liberties, political participation, government function, and political culture.

Freedom scoreFreedom House

Freedom in the World score (0–100). Covers political rights and civil liberties — a second lens on governance beyond the EIU index.

English proficiencyEF English Proficiency Index

Country-level proficiency from 2.2M test takers. Raw scores ~350–700, normalized to 0–100 for comparison.

GDP per capitaWorld Bank

Current USD. A rough proxy for infrastructure quality and local purchasing power — not a personal income estimate.

InflationWorld Bank / IMF

Annual consumer price inflation. High inflation eats savings; it matters more to settlers than to tourists.

Historical average temperatures by month. We extract summer high and winter low for the comparison tables.

Geopolitical safetyIEP Global Peace Index

Composite of ongoing conflict, societal safety, and militarisation. Capped by FCDO/State Dept travel advisories when active.

Energy resilience score based on grid interruption data and infrastructure investment. Matters when your livelihood depends on electricity.

Residency pathOfficial government immigration portals

Time to permanent residency, visa difficulty, and citizenship timeline sourced from each country's immigration authority. Cross-checked with immigration law firms.

Livability Score (0–100)

Nine dimensions, each linearly scaled and capped. Raw total is out of 120, then normalized to 0–100. When data is missing for a city, we substitute the 25th-percentile score across all cities — a conservative "probably below average" assumption so gaps don't inflate scores.

DimensionMaxFormulaSource
Affordability25((3000 − rent) / 2600) × 25Numbeo
Violent crime15((15 − homicide_rate) / 15) × 15UNODC
Perceived safety10((100 − crime_index) / 100) × 10Numbeo
Internet15(speed_mbps / 200) × 15Ookla
Democracy15(democracy_index / 10) × 15EIU
English10((epi_score − 350) / 300) × 10EF EPI
Climate1010 − |summer_high − 25| × 0.5Climate-Data.org
Stability10((10 − inflation%) / 10) × 10World Bank
Geopolitical safety10((3.5 − gpi) / 2.5) × 10IEP GPI
Total120normalized → 0–100

How Winners Are Picked

A city "wins" a metric when the difference is at least 5% relative to the larger value. Below that threshold, it's noise — we don't declare a winner for a $20 rent difference on a $1,500 apartment.

Weather metrics never declare a winner: 32°C summers are heaven for some and hell for others. Democracy is scored but presented without editorial — the number speaks for itself.

Pair Selection for Sitemap

You can compare any two cities in our catalog, but we only push same-region pairs and high-traffic cross-region pairs to search engines. This keeps our crawl budget focused on comparisons people actually search for — "Lisbon vs Barcelona" instead of "Honolulu vs Batumi."

Every pair has one canonical URL direction. The alphabetically-first city leads (e.g., /cities/compare/amsterdam-vs-berlin). The reversed URL 301-redirects to the canonical. Curated pairs (hand-picked for SEO) may override the alphabetical order.

Update Cadence

Data is refreshed via automated scrapers on a rolling basis. Numbeo prices update weekly. Democracy and peace indices update annually when new reports are published. Residency paths are reviewed quarterly against official government portals. Every update is committed to the repository with source attribution.