Methodology

Every number on this site comes from reanalysis data, not from editorial judgement. This page documents where the data comes from, how it is aggregated, and exactly how the two derived scores are calculated.

Source data

Measurements come from ERA5 and ERA5-Land, the Copernicus reanalysis of the global climate. Reanalysis combines historical observations with a numerical weather model to produce a physically consistent record on a regular grid — which means every destination has a complete record, including places with no weather station of their own.

We extracted the archive once, in August 2026, through Open-Meteo's commercial API. The data itself is CC BY 4.0 and may be used commercially with attribution; the free hosted service is not licensed for commercial use, so we paid for the extraction rather than using it.

How our figures compare with official normals

Reanalysis is not a weather station. A grid cell averages over terrain and land use, so the numbers here will not match a national met service exactly. We measured the gap rather than assuming it, comparing our normals against the WMO World Weather Information Service — normals supplied by national meteorological services — across 74 cities and 864 month-pairs:

Measure Ours vs official (median)
Rainfall (mm)0.95×
Wet days0.96×
Average high−1.0 °C
Average low+0.8 °C

Rainfall and wet days are within 5 % of official normals, with no systematic bias. Temperatures show a real one: our daily range is about 1.8 °C narrower than a station would record, because a grid cell smooths away local extremes. We publish the values unadjusted. Correcting them by a factor of our own choosing would make them impossible to check against the source we cite.

We no longer publish sunshine hours. The source figure is derived from modelled radiation rather than measured directly, and in August 2026 we compared it with published 1991–2020 normals from ten national meteorological services. All ten were too high, by a median of 58 % — Reykjavík 2 495 against 1 326 hours, London 2 736 against 1 502, Sydney 3 670 against 2 631. The bias is global, not confined to cloudy coasts as we first assumed, and our own cloud cover figures contradict it: the sunshine column implied that 80 % of all daylight is direct sun. Rather than publish a number we cannot stand behind, we removed it from every page and deleted the 91 rankings that were built on it. Cloud cover, from the same reanalysis, carries the same information without the measured bias, and is shown in its place.

Place names, coordinates and populations come from GeoNames (CC BY 4.0).

Aggregation

Beach score

A 0–100 score for how suitable a month is for a beach holiday. It is calculated only where sea temperature is available — about 1 600 coastal destinations. Inland places have no beach score rather than a fabricated one.

ComponentWeightIdeal range
Average daytime high35 %24–31 °C
Sea temperature30 %22–29 °C
Wet days20 %3 or fewer (0 at 15)
Sunshine15 %9 h/day or more (0 at 3)

Where sea temperature comes from

Not from the same source as the air data. Sea surface temperature is from NOAA OISST v2.1, using their published 1991–2020 monthly climatology — the same thirty-year window as everything else here. That match is the whole point: a two-year sea average combined with a thirty-year air average would produce a number that looks like the others but is not comparable to them.

The sea grid is 0.25°, roughly 28 km, and many coastal towns fall on a cell the model classifies as land. Where that happens we use the nearest genuine ocean cell, measured by great-circle distance, and only within 60 km. Beyond that we record no sea temperature at all. For a town at the head of a long fjord or inside a lagoon, the open-water value will read warmer in summer and cooler in winter than the water actually is.

Comfort score

A 0–100 score for general sightseeing comfort.

ComponentWeightIdeal range
Average daytime high40 %18–26 °C
Average night low20 %10–20 °C
Wet days20 %5 or fewer (0 at 20)
Relative humidity10 %35–65 %
Wind10 %15 km/h or less (0 at 35)

Each component scores 1.0 inside its ideal range and falls linearly to 0 outside it. The weighted sum is multiplied by 100. Both scores are ours, not the source's — they are a reading aid, not a measurement.

What we publish, and what we hold back

A monthly page is only indexed when it has at least 6 populated data fields, and a destination overview requires complete normals for all 12 months. A place we have not processed has no page at all — we list its name on the country page so you can see it exists, but we do not link to an empty page. Publishing a page with four numbers on it would not help anyone.

We also hold back near-duplicates. ERA5 is a grid, so two towns in the same cell get the same numbers by construction: measured across the tier we publish, 711 places had a larger neighbour whose figures matched within 0.3 °C and 3 mm in every one of the twelve months. Twelve pages of identical numbers under a different name is not twelve destinations. We keep the largest place in each cluster and leave the rest out of the index.

Data sources and method

Normal period
1991–2020
Dataset version
era5-1991-2020-scores1.1
Last processed

Measured values come from ERA5 reanalysis and are reproduced unchanged. Full formulas are on the methodology page.

Contains modified Copernicus Climate Change Service information 2026. Neither the European Commission nor ECMWF is responsible for any use that may be made of the Copernicus information or data it contains.