GeoRank Data Methodology

How calibrated sunshine, temperature, rainfall, outdoor hours, tax, cost of living, air quality, and safety data are sourced, calibrated, and delivered. Transparent enough to cite.

v1.3 Last updated 2026-07-13 CC-BY-4.0
GeoRank data visualization

Sunshine calibration — SARAH-3 satellite + ERA5

In depth: what SARAH-3 is and how the Heliosat method works · how ERA5 reanalysis works and where it falls short · why published sunshine-hour figures disagree with each other.

The ERA5 bias problem

ERA5 is ECMWF's flagship reanalysis dataset — the most comprehensive global atmospheric record available. However, ERA5's raw sunshine duration values overestimate actual sunshine hours by a systematic margin that varies by cloudiness regime:

  • Clear, dry climates (e.g. deserts, Mediterranean): +5–16% overestimation
  • Mid-latitude temperate climates: +20–40% overestimation
  • High-latitude, cloudy climates (e.g. northwest Europe): +40–73% overestimation

This means raw ERA5 makes Bergen, Glasgow, and Reykjavik appear substantially sunnier than they are in practice. Without correction, rankings of "cloudy" cities are meaningless.

Correction formula

GeoRank applies a linear correction derived from comparing ERA5 values against WMO ground-station observations at 56 reference locations worldwide:

actual ≈ 1.14 × ERA5 − 1550

R² = 0.82 · n = 56 stations · Residual RMSE ≈ 180 hr/yr

The formula reduces ERA5's systematic overestimation in cloudy regions while preserving relative differences between sunny and cloudy climates. Applied across the grid, this produces calibrated values that track observed sunshine hours within ±8% for most locations.

IDW spatial interpolation

After applying the correction formula globally, residual errors at non-station locations are reduced using Inverse Distance Weighting (IDW) — a spatial interpolation technique that weights nearby station corrections more heavily than distant ones. The IDW radius is tuned to 500 km, balancing spatial resolution against over-correction in data-sparse regions.

SARAH-3 satellite base (live map layer, since July 2026)

The sunshine layer rendered on the live map is built on SARAH-3 (Surface Solar Radiation Data Set — Heliosat, EUMETSAT CM SAF): satellite-observed sunshine duration at native 0.05° (~5 km) resolution, accumulated to a 1991–2020 monthly climatology. SARAH-3 covers the Meteosat full disk (roughly ±65° latitude/longitude centred on Europe–Africa); outside that disk — the poles, the Americas, and Asia-Pacific — the grid falls back to bilinearly-upsampled ERA5, and a per-pixel quality band records which source fed each cell.

The merged grid is then bias-corrected with the same 56-station IDW pass described above. The linear ERA5 correction formula remains the method behind the published per-city dataset (sunshine-hours.csv) and the ERA5-filled regions of the map; satellite-observed cells need no cloud-model correction, which is precisely why SARAH-3 replaced modelled ERA5 as the primary source within the disk.

WMO & KNMI calibration stations

The full GeoRank reference set is 182 WMO, KNMI, ECA&D, and national-met-service stations spanning all climate regimes. The linear correction formula above was fit on a globally-distributed subset of 56 high-quality stations (R² = 0.82, RMSE ≈ 180 hr/yr); the remaining 126 serve as cross-validation. All 182 are listed below — observed sunshine hours per year are the multi-decade mean for each station.

Station Lat Lon Elev (m) Obs hr/yr
Reykjavik64.1-21.9181268
Oslo59.910.8231668
Stockholm59.318.1281821
Helsinki60.225.0261859
Copenhagen55.712.6151779
Bergen60.45.3421413
Stavanger58.885.6481996
Edinburgh55.9-3.2521430
Dublin53.3-6.3211420
Valentia51.9-10.391560
Aberdeen57.1-2.1651451
London51.5-0.1111481
Amsterdam52.44.921662
Brussels50.94.4561546
Paris48.92.3351630
Berlin52.513.4341625
Hamburg53.610.0141630
Warsaw52.221.01071600
Prague50.114.42021668
Vienna48.216.41711884
Munich48.111.65191738
Zurich47.48.54081693
Geneva46.26.13751887
Zermatt46.027.7516202101
Interlaken46.697.875721975
Budapest47.519.01031948
Bratislava48.117.11331938
Zagreb45.816.01581903
Ljubljana46.114.52931730
Belgrade44.820.5992112
Bucharest44.426.1822098
Sofia42.723.35952162
Podgorica42.419.3492498
Sarajevo43.818.46301893
Moscow55.837.61561731
St. Petersburg59.930.341515
Kyiv50.430.51791843
Bordeaux44.8-0.6162050
Lyon45.74.81622029
Nice43.77.352724
Marseille43.35.432724
Rome41.912.5372510
Milan45.59.21222300
Palermo38.113.4142529
Athens37.923.7942864
Thessaloniki40.623.052420
Heraklion35.325.1393084
Lisbon38.7-9.1772806
Madrid40.4-3.75822769
Barcelona41.42.2122524
Valencia39.5-0.4162855
Seville37.4-6.092990
Malaga36.7-4.452950
Palma39.62.6112769
Las Palmas28.1-15.4252940
Tenerife28.5-16.3303067
Nicosia35.233.41623279
Algiers36.73.0252713
Tunis36.810.243058
Tripoli32.913.2813171
Casablanca33.6-7.6563000
Rabat34.0-6.8753000
Marrakesh31.6-8.04663208
Cairo30.131.2233571
Aswan24.132.91134000
Wadi Halfa21.831.32264063
Al-Kufra24.223.34353825
Khartoum15.632.53823777
Tel Aviv32.134.853302
Jerusalem31.835.27543309
Tehran35.751.411912832
Kabul34.569.217913276
Riyadh24.746.76123600
Kuwait City29.448.053645
Doha25.351.5103522
Dubai25.255.353509
Muscat23.658.653448
Tashkent41.369.34783000
Almaty43.376.98472782
Ulaanbaatar47.9106.913502700
Novosibirsk55.082.91502038
Karachi24.967.1222953
Mumbai19.172.9112831
Delhi28.677.22332743
Kathmandu27.785.313552007
Dhaka23.790.442149
Lhasa29.791.136563021
Chengdu30.7104.15061239
Beijing39.9116.4552661
Shanghai31.2121.541964
Hong Kong22.3114.2331840
Taipei25.0121.591765
Seoul37.6127.0382066
Tokyo35.7139.7401876
Bangkok13.8100.552796
Colombo6.979.972378
Kuala Lumpur3.1101.7662404
Singapore1.3103.8151878
Dakar14.7-17.4243043
Bamako12.6-8.03813063
Niamey13.52.12183226
Lagos6.53.4411900
Abidjan5.4-4.0221896
Accra5.6-0.2612002
Nairobi-1.336.817952860
Addis Ababa9.038.723553027
Dar es Salaam-6.839.3552853
Lusaka-15.428.311542756
Harare-17.831.014832809
Johannesburg-26.228.017533021
Windhoek-22.617.116613700
Maputo-25.932.6472768
Antananarivo-18.947.512762557
Cape Town-33.918.4423094
Darwin-12.5130.8303281
Alice Springs-23.7133.95463500
Brisbane-27.5153.0272873
Adelaide-34.9138.6482784
Canberra-35.3149.15782729
Sydney-33.9151.2392628
Melbourne-37.8145.0312208
Perth-31.9115.9203200
Auckland-36.9174.8262003
Christchurch-43.5172.6322101
Suva-18.1178.4182517
Honolulu21.3-157.853000
Anchorage61.2-150.0402061
Fairbanks64.8-147.71361906
PrinceRupert54.3-130.3521229
Vancouver49.2-123.1701919
Seattle47.6-122.31222170
Portland45.5-122.7152341
Calgary51.1-114.110452396
Edmonton53.5-113.56682299
Winnipeg49.9-97.12322337
Toronto43.7-79.41732066
Montreal45.5-73.6572051
San Francisco37.8-122.4163066
Los Angeles34.1-118.2713254
Las Vegas36.2-115.26203825
Phoenix33.4-112.13314015
Yuma32.7-114.6434174
Death Valley36.5-116.904093
Albuquerque35.1-106.715103415
Salt Lake City40.8-111.912883222
Denver39.7-104.916093110
Dallas32.8-96.81452850
Houston29.8-95.4152552
Atlanta33.6-84.43152601
Miami25.8-80.223154
Chicago41.8-87.71822507
New York40.7-74.0102535
Mexico City19.4-99.122402552
Havana23.1-82.4593300
Guatemala City14.6-90.515022352
Panama City9.0-79.551912
Bogota4.7-74.125471328
Quito-0.2-78.528501979
Caracas10.5-66.99002700
Lima-12.1-77.01541230
Antofagasta-23.7-70.4943478
La Paz-16.5-68.136402952
Cusco-13.5-71.933992700
Manaus-3.1-60.0592015
Fortaleza-3.7-38.5212900
Recife-8.0-34.942713
Brasilia-15.8-47.911722511
Sao Paulo-23.5-46.67602221
Rio de Janeiro-22.9-43.2102130
Buenos Aires-34.6-58.4252528
Montevideo-34.9-56.2432430
Santiago-33.5-70.75202873
Mendoza-32.9-68.87503086
Ullensvang60.3186.65412933
Bjørkehaug61.6597.2763051064
Fiskabygd62.1035.582411020
Hierro27.819-17.889322491
La Gomera28.032-17.2112193169
Tenerife Sur28.047-16.561642872
La Palma28.633-17.755332153
Fuerteventura28.444-13.863252898
Lanzarote28.952-13.600143014

182 reference stations · sourced from WMO normals, ECA&D, KNMI, and national met-service archives. Scroll the table to browse the full set.

How the three tiers work

Tier Resolution Cell size Base data Formula Loads at map zoom
Global 2.0° ~220 km NASA POWER (ALLSKY_SFC_SW_DWN) Ångström–Prescott 0–4
Regional 1.0° ~110 km NASA POWER interpolated Ångström–Prescott + ERA5 blend 5–7
Local 0.05° ~5 km SARAH-3 satellite (CM SAF) + ERA5 merge IDW calibration against 56 WMO stations 8+

Ångström–Prescott formula

Sunshine hours are derived from solar irradiance data using the Ångström–Prescott formula, which estimates bright sunshine duration from diffuse and direct radiation ratios:

S/S₀ = a + b(n/N)

Where S = actual sunshine hours, S₀ = maximum possible sunshine hours (astronomical daylength), n/N = cloudiness fraction, a and b are empirical constants calibrated per climate zone.

Tax rate sources

Tax rates are sourced from official government publications and cross-referenced against OECD tax database and PwC Worldwide Tax Summaries. Rates reflect top marginal rates for each tax category as of the date shown below.

Tax type Primary source Last updated Known gaps
Income tax (top marginal)OECD Tax Database; national revenue authority sitesJan 2026Subnational rates not included
Capital gains taxPwC Worldwide Tax Summaries; KPMG CGT guidesJan 2026Asset-type variation simplified to single rate
Crypto capital gainsNational tax authority guidance; Coincub databaseQ1 2026Regulatory changes may not be reflected immediately
Tax burden (% of GDP)OECD Revenue Statistics; IMF Fiscal Monitor2024 data2-year lag typical for GDP-based metrics

What the tax numbers mean

Tax rates on GeoRank represent marginal income tax at €50,000 equivalent annual income for a single individual, and headline statutory capital gains rates. These are not effective rates — what most people actually pay is lower once thresholds, allowances, and credits apply.

Sources and update cadence

SourceUsed forReview cadence
OECD Tax DatabaseIncome tax, social contributions, tax burdenAnnual (Q1)
PwC Worldwide Tax SummariesIncome tax, capital gains, special regimesQuarterly review
KPMG Individual Income Tax RatesCross-reference and gap-fillAnnual
Government publicationsNon-OECD countries; crypto treatmentAs published; flagged within 30 days of major change

What's excluded

  • Social contributions: employer and employee social security are not included in the displayed rate. In France, Germany, or the Netherlands these add 15–25 percentage points to the effective burden.
  • Municipal and regional surcharges: subnational taxes (German Kirchensteuer, Italian IRAP, US state income tax) are excluded.
  • Wealth and exit taxes: not modelled.

Known limitations

  • Territorial vs worldwide taxation: the distinction (Georgia, Panama, Costa Rica tax only locally-sourced income) is noted per-country but not always surfaced in the headline rate comparison.
  • Special regimes: Portugal NHR/NHR 2.0, Cyprus non-dom, Georgia Virtual Zone, Malta global residence — shown separately where available.
  • Crypto treatment: changes frequently and may lag current law by 1–2 quarters. Treat crypto figures as indicative only.

What the monthly cost figure includes

The monthly cost estimate represents a single-person baseline: 1-bedroom apartment in a city-centre or near-centre neighbourhood, standard utilities, weekly groceries, local public transport, and dining out approximately three times per week. It is not a minimum-cost figure and not a luxury figure.

Sources

SourceWeightNotes
Numbeo crowd-sourced dataPrimaryPulled quarterly; cities with <50 respondents flagged as low-confidence
ECA International hardship dataSecondaryUsed where Numbeo sample size is thin (<30 respondents)
GeoRank spot-checksSupplementManual verification for cities with known Numbeo bias

What's excluded

  • International health insurance: typically $100–300/mo depending on age and coverage
  • Flights home: highly variable, not modelled
  • Car ownership or rental
  • Language school or visa fees

Known limitations

  • Expat-price skew: Numbeo contributors are disproportionately Western expats. Reported rents and restaurant prices reflect the expat-visible market, not the local market. In cities like Tbilisi, Chiang Mai, or Medellín, a local-market lifestyle costs 20–40% less than our figures suggest.
  • Neighbourhood variation: one figure per city masks large within-city variance. A listing in Lisbon's Príncipe Real costs twice a listing in Mouraria.
  • Currency volatility: USD-denominated figures are updated quarterly but may lag a sharp devaluation.

What this data is and isn't

GeoRank provides calibrated estimates of annual sunshine hours derived from reanalysis datasets and ground-station correction. Accuracy characteristics:

  • Most locations: within ±8% of long-run observed sunshine hours
  • High-altitude locations: ±12–15% (elevation correction not yet applied)
  • Coastal microclimates: ±10–20% (grid cells average over sea/land boundaries)
  • Urban heat islands: not modelled; values represent the grid cell, not city centre

Cost of living estimates are illustrative only. They represent a reasonable ballpark for a single person renting a one-bedroom apartment in a mid-tier neighbourhood, eating out 3–4 times per week, and maintaining a moderate lifestyle. Actual costs depend heavily on lifestyle, neighbourhood, and individual spending.

Tax rates are top marginal rates. Effective rates (what most people actually pay) are typically lower. Tax treaties, special regimes, and tax-free thresholds are not included in the headline figures unless explicitly noted.

Temperature methodology

Monthly mean near-surface air temperature is derived from CHELSA v2.1 climatological normals (variable tas), a high-resolution downscaling at ~1 km native resolution, processed to a 0.05° grid for the global map. Values are 30-year climatological normals (1981–2010).

  • Typical accuracy: ±1–2 °C against ground stations in well-instrumented regions
  • Urban heat islands: not modelled — values represent the 0.05° grid cell, which can underestimate dense-city centres by 1–3 °C in summer
  • Coastal grid cells: blend sea and land; expect smoother seasonal swings than nearby inland weather stations
  • High elevation: gridded values can differ from valley-floor or peak microclimates; expect ±2–3 °C error in steep mountain terrain

SourceCHELSA v2.1 · tas

Climatology1981–2010 · monthly means

Rainfall methodology

Total precipitation comes from CHELSA v2.1 monthly precipitation climatologies (1981–2010), bias-corrected against roughly 25,000 GHCN-M v4 station normals. Annual rainy days are estimated from the daily-mean precipitation rate via a Gamma-distributed wet-day model:

prainy[m] = 1 − exp(−mm/day ÷ 2.5)
  • Typical accuracy: ±12% on annual totals in well-gauged regions
  • Orographic effects: rain shadows and windward enhancement remain hard to capture even at high resolution; expect ±25% in mountainous coastal terrain
  • Tropical convective regimes: the wet-day model assumes Gamma-distributed daily totals; in monsoon zones, real day counts can run higher than estimated
  • Snow vs. rain: total precipitation includes both; the rainy-day count is not snow-separated

SourceCHELSA v2.1 + GHCN-M calibration

Resolution~1 km native · 0.05° grid

Outdoor Hours Index methodology

The Outdoor Hours Index (OHI v1) counts the hours per year — and per month — when it's comfortable to sit outside: not too hot, too cold, too wet, or too windy. It's a "UTCI-lite" model: apparent temperature is computed for every half-hour of daylight, checked against a comfort band, then discounted for rain and wind.

Reconstructing the day

CHELSA 1981–2010 provides daily maximum and minimum temperature as a climatology at ~1 km resolution, but not the hour-by-hour curve. OHI reconstructs a diurnal cycle from those two values using a sinusoidal day curve peaking at 14:30 solar time, then evaluates apparent temperature at every half-hour of daylight — sunrise to sunset, computed from latitude and time of year.

Apparent temperature — Steadman on the warm side, wind chill on the cold side

Each half-hourly reading is converted to an apparent temperature: on the warm side, the Steadman apparent temperature formula, which adds humidity (from ERA5 dewpoint) and subtracts wind; on the cold side, the NWS wind chill formula. The comfort band is 10–29°C apparent, treated probabilistically rather than as a hard cutoff — day-to-day variability of σ = 3.5°C means a reading right at the edge of the band counts as partially comfortable rather than flipping from fully counted to not counted at all.

Removing wet and windy hours

Hours lost to rain are estimated by converting monthly rainfall totals to wet-hours at a rate of 1.5 mm/h, capped at 60% of hours in any given month. Hours lost to sustained wind use the Rayleigh probability distribution of hourly wind speed exceeding 30 km/h, derived from ERA5 monthly mean wind. Both discounts are applied on top of the daylight, comfort-band hours computed above.

Resolution — mixed, and disclosed

Temperature comes from CHELSA at ~1 km native resolution. Humidity and wind come from ERA5 reanalysis at ~25 km — so those two inputs act as regional modifiers on top of a hyper-local temperature base, rather than hyper-local inputs in their own right. The Outdoor Hours Index is therefore not uniformly hyper-local: nearby locations with different microclimates can end up sharing the same humidity and wind discount even where their temperature differs. We show this breakdown rather than hide it.

Pedigree

OHI builds on a line of published thermal-comfort work: the Tourism Climate Index (Mieczkowski, 1985), the Universal Thermal Climate Index (UTCI) — the WMO-endorsed thermal comfort standard this index takes its "UTCI-lite" name from — and Kelly Norton's Pleasant Days map (2014), which popularized the "count the pleasant hours" framing. These are cited as inspiration and pedigree; GeoRank does not run the reference TCI or UTCI models directly. OHI is a simplified, half-hourly implementation built for the GeoRank map.

What this is — and isn't

Outdoor Hours is a personal comfort tool, not an authoritative livability verdict. Every input is shown, and the annual number decomposes into hours lost to heat, cold, rain, and wind, so the figure is never a black box.

Example values

Computed from the 1981–2010 climatology:

CityOutdoor hours/yr
Sydney~3,550
Lisbon~3,500
Vancouver~2,400
Manchester~2,200
Dubai~1,835
Reykjavik~915
Singapore~450

Dubai fails the comfort band on heat; Singapore fails on heat combined with humidity; Reykjavik fails on cold.

SourceCHELSA (temperature) + ERA5 (humidity, wind)

Climatology1981–2010

Air quality methodology

Annual-mean surface PM2.5 concentration (µg/m³) for the country and city rankings on /air-quality is sourced from the WHO Global Ambient Air Quality Database 2024, published by the World Health Organization. Tier colors map to WHO air-quality guideline thresholds:

  • < 5 µg/m³ — meets WHO 2021 annual guideline (best)
  • 5–10 µg/m³ — WHO interim target 4
  • 10–25 µg/m³ — interim targets 3 → 2
  • 25–35 µg/m³ — interim target 1
  • > 35 µg/m³ — exceeds all WHO interim targets

The WHO database compiles ground-station monitoring data submitted by national and municipal authorities — it is not a continuous grid model. Station density varies by country, and a single national or city figure can mask large intra-city variance between monitored and unmonitored neighbourhoods. Expect higher real-world values near busy roads, industrial sites, or seasonal biomass-burning events than the reported average suggests.

SourceWHO Global Ambient Air Quality Database 2024

Threshold referenceWHO 2021 AQ guidelines

Geopolitical safety methodology

GeoRank publishes two distinct safety artifacts, built from different data and answering different questions.

Country safety rankings (/safest-countries and related pages)

The published safety rankings use the Global Peace Index 2024, published by the Institute for Economics & Peace. The index covers 163 countries and scores each across 23 indicators grouped into three domains:

  • Societal safety & security — homicide, incarceration, perceived criminality, political stability, violent demonstrations
  • Ongoing domestic & international conflict — deaths from internal/external conflict, relations with neighbours
  • Militarisation — military expenditure, armed services personnel, weapons imports/exports, nuclear capability

The composite GPI score is normalised to a 1.0 (most peaceful) to 5.0 (least peaceful) scale, published annually. It is an assessment of current-year state, not a predictive model — countries can shift quickly in response to political events, and short-term incidents may not yet be reflected.

SourceGlobal Peace Index 2024 · IEP

Coverage163 countries · 23 indicators

Map Risk layer (app.georank.place)

The Risk layer on the live map is a separate, GeoRank-built composite model — it is not the Global Peace Index. It combines conflict event and fatality data from the UCDP Georeferenced Event Dataset (GED, 2021–2023 cutoff), the World Bank Political Stability index, and manual overrides for current events not yet reflected in either upstream source. Deaths are weighted by country area (deaths per 100,000 km²) and log-scaled to a 0–10 score, then dampened for countries with very few total events so that a handful of deaths in a small country cannot outscore an active large-scale conflict.

Like the GPI, this is an index of recent and current state, not a forecast — it will lag conflicts that break out after the data cutoff until a manual override is added.

SourceUCDP GED + World Bank Political Stability + manual overrides

Data windowConflict events 2021–2023

Visas & residency methodology

The Visas & Residency layer covers 10 passports (United States, United Kingdom, Germany, France, Netherlands, Ireland, Canada, Australia, New Zealand, India) against 47 destination countries. For each passport/destination pair, GeoRank computes three fields:

FieldWhat it means
Max legal stayThe longest stay realistically achievable, bucketed (e.g. 90 days, 1 yr+, unlimited). Takes the best of tourist entry and any attainable long-stay program; points-tested, invitation-only, or lottery-based routes are excluded from this figure so a country isn't shown as open via a route an ordinary applicant can't simply apply for.
Best routeHow that stay is achieved: freedom of movement (EU/EEA/Switzerland, the UK–Ireland Common Travel Area, or the Australia–New Zealand Trans-Tasman arrangement), a specific residency or visa program (digital-nomad visa, retirement/passive-income visa, golden visa, self-employment route, etc.), or plain tourist entry.
Tourist-entry termsVisa-free, visa-on-arrival, e-visa, eTA, or visa-required, plus the day allowance for that entry type.

Sources

Long-stay residency and visa programs are hand-researched per destination country from official government, embassy, and national immigration-authority pages (a country's foreign-ministry visa portal or immigration-service site, in most cases) — each program record carries its own source URL and a source-quality tag of official or secondary (used where no single authoritative page fully documents a route, e.g. golden-visa aggregator sites for investment thresholds). Tourist-entry terms — visa-free, visa-on-arrival, e-visa, eTA, or visa-required, and the associated day allowance — are filtered from the passport-index-dataset project down to the 10 supported passports.

Verification & update cadence

All long-stay program terms were last verified 2026-07-13. Programs are re-verified quarterly — income and savings thresholds for the highest-traffic destinations (Spain, Portugal, Thailand) move most often and are checked first. The tourist-entry matrix is re-pulled roughly annually, since visa-free/e-visa/eTA status changes far less often than program thresholds.

Where this data lives

All figures are computed client-side from a single published dataset, visa-data.json — the compare table's Visas section on the map, the /where-can-i-move checker, and its 10 per-passport pages all read from the same file, so the map, the checker, and the pSEO pages never disagree.

This is informational, not legal advice. Visa and residency rules change, income/savings thresholds shift with local minimum-wage and inflation adjustments, and individual eligibility depends on circumstances not captured here (criminal record, prior overstays, dependents, dual nationality). Always confirm current requirements with the destination country's embassy or immigration authority before making a move.

Coverage10 passports × 47 countries

Verified2026-07-13 · quarterly re-verification

Free Speech Gap methodology

The Free Speech Gap layer measures 66 countries on two independently published axes, and never blends them into a single "freedom score":

AxisWhat it measuresHow
Protection (de jure, 0–100)What the statute book permits8 weighted components coded from primary law: constitutional guarantee (×1.5), insult/official-dignity offences (×2.0), criminal defamation (×1.5), blasphemy (×1.5), incitement/hate-speech breadth (×1.5), political/security speech offences (×1.5), procedure & defences (×1.0), platform/takedown mandates (×1.0). Every scored component cites the legal text; an unverifiable component is recorded as null, never estimated.
Enforcement (de facto, 0–100)What authorities actually doThe larger of two evidence channels: (1) per-capita convictions and police-contact events from national justice/police statistics, log-scaled against a fixed reference and capped at 85 — so a well-documented country can never score worse than an opaque severe regime purely for publishing its numbers; (2) a severity floor from the citation-required scenario bands — a country with cited multi-year sentences for speech scores high however small its counted caseload.

The Gap, and the opacity rule

Gap = Protection + Enforcement − 100. A positive Gap means the law promises more than enforcement practice shows — this is arithmetic on the two published axes, not a separate editorial judgement. The composite tier shown on the map is 0.45 × (100 − Protection) + 0.55 × Enforcement, bucketed into five tiers (Open <20 · Broadly free · Constrained · Restricted · Repressive 80+).

Opacity is never rewarded. Every country carries a data-confidence grade: A official machine-readable statistics · B official but siloed · C FOI/NGO-compiled counts only · D no enforcement statistics available to this dataset (either the state publishes none, or the series has not yet been ingested — the per-country known-gaps note says which). For grade-D countries, enforcement is imputed as max(observed, 100 − Protection) — absent evidence of restraint, enforcement is assumed at the level the statute book permits — and those countries render hatched on the map and hollow on the chart.

Sources

SourceUsed forCadenceKnown gaps
National statutes & official translations (official legal portals, WIPO Lex)All Protection components + scenario bandsSemi-annual review + legislative triggersSub-national variation (e.g. US state criminal-libel statutes) noted but not scored in v1
National justice & police statistics (Destatis, BKA PKS, UK MoJ/HoL Library, Ministère de la Justice, et al.)Enforcement volume signalsAnnualUnits differ by country (convictions vs cases vs arrests) — each figure is labelled; Germany's §188 counts and UK arrest totals are not centrally published (FOI-reconstructed where used, flagged as such)
EU DSA Transparency Database (CC BY 4.0)Content-restriction signal (EU/EEA)MonthlyEU-only instrument; feed pending
Access Now #KeepItOn (CC BY 4.0)Internet shutdown incidentsAnnualWeeks-to-months reporting lag; feed pending
Academic Freedom Index — V-Dem/FAU (CC BY 4.0)Academic-freedom signalAnnualExpert-survey basis, not incident counts; feed pending

Deliberately not ingested: RSF, Freedom House, World Justice Project, Article 19, CPJ, OONI, and the V-Dem core dataset — their licences do not permit commercial reuse (or are ambiguous), and expert-perception scores would dilute the statute-and-statistics basis that makes this layer checkable. They may be cited as context; they never feed a score. Advocacy case-logs (any side) never feed a score either — they are self-selected intakes.

Editorial rules

Citation-or-null: a scored cell without a legal citation is demoted to null at build time and can never ship. No qualitative judgement: the data records what a law permits and what enforcement records show — never whether a restriction is justified. Symmetric scrutiny: the same 8 components, same rubric, every country. Scenario exposure bands ("criminal, enforced") require a cited case or statistic from the last 10 years. A country with fewer than 5 of 8 components verified is excluded entirely rather than scored on thin data. Where two credible figures conflict, both are shown rather than silently picking one.

Where this data lives

All figures are computed from a single published dataset, speech-data.json (CC BY 4.0) — the map layer, the compare table's Free Speech section, and the Free Speech Gap page all read the same file. Dispute an entry: data@georank.place with the statute or statistic — corrections are published in a changelog on this page.

This is informational, not legal advice. Speech law is fast-moving (Online Safety Act, DSA, new criminal codes) and prosecution practice varies within countries. The dataset codes national law at the date shown; it cannot capture individual circumstances, prosecutorial discretion, or sub-national variation.

Coverage66 countries × 8 components × 10 scenarios

Verified2026-07-22 · semi-annual re-verification

Cite this data

To reference GeoRank data in academic, professional, or editorial contexts:

GeoRank (2026). Calibrated Global Sunshine Hours Dataset. ERA5-based, IDW-corrected against 56 WMO/KNMI reference stations. https://georank.place/methodology. Accessed [date].

This citation covers the downloadable per-city CSV (sunshine-hours.csv), which remains the ERA5-based, IDW-corrected export described above. The sunshine layer rendered on the live map is instead SARAH-3-based within the Meteosat disk since July 2026 — see SARAH-3 satellite base above for the map-layer methodology.

Primary upstream data sources:

  • Hersbach et al. (2020). ERA5 global reanalysis. Quarterly Journal of the Royal Meteorological Society.
  • NASA POWER Project. Prediction of Worldwide Energy Resources. NASA Langley Research Center.
  • ECMWF (European Centre for Medium-Range Weather Forecasts). ERA5 hourly data on single levels.
  • Pfeifroth, U. et al. EUMETSAT Climate Monitoring SAF. SARAH-3 Surface Solar Radiation Data Set. (map-layer source since July 2026.)

License & attribution

GeoRank methodology and the calibrated sunshine, temperature, and rainfall datasets are licensed under Creative Commons Attribution 4.0 International (CC-BY-4.0). You may use, share, and adapt with attribution — see Cite this data for the recommended citation format. The calibrated sunshine dataset and the ranking engine are also published as free packages on npm, PyPI, and GitHub — see Open Source.

Tax, cost-of-living, air-quality, safety, and visa/residency data are derived from third-party sources (OECD, PwC, KPMG, Numbeo, World Health Organization, Institute for Economics & Peace, UCDP, World Bank, official government and embassy sources, passport-index-dataset) and are subject to their respective licenses. Consult each source for redistribution rights.