Methodology · data release of 1 November 2026
How hexplace measures places
Every number on hexplace comes from a public dataset, is calculated the same way for every town, and says how precise it is. Where good data doesn't exist, the page leaves that measure out.
From raw data to a town page
- 01CollectOpen datasets are downloaded as published and kept unchanged.
- 02StandardiseEach dataset is converted into a standard table.
- 03MeasureThe measures for every town are computed from those tables.
- 04DeriveScores, "who it suits" verdicts and notable facts come from the measures.
- 05CheckQuality checks run first. A release that fails them is not published.
- 06PublishEach release is frozen, so a page always shows one consistent set of data.
Precision labels
- Town-levelMeasured or computed for the town itself, so the value describes this town.
- OfficialPublished by a national statistics office for the town's municipality as a whole: rents, house prices, crime and population change.
- ModelledEstimated from a grid or a model. Useful for comparing towns, less so as an exact figure.
- RegionalOnly available for a wider area. Shown with its label for context, and never used for a verdict, a score or a summary sentence.
Scores
Each score runs from 0 to 100. Every input becomes a percentile among the towns in the country, and the percentiles are averaged with these weights. A score is left blank when less than 60% of its weight has data.
| Score | Inputs and weights |
|---|---|
| Climate comfort | January high 30% (higher is better) · Days above 35°C 25% (lower is better) · Days with rain a year 20% (lower is better) · Tropical nights 15% (lower is better) · Frost days 10% (lower is better) |
| Car-free living | Grocery stores on foot 30% (higher is better) · Pharmacies on foot 10% (higher is better) · Cafés on foot 10% (higher is better) · Nearest train station 25% (lower is better) · Nearest bus station 25% (lower is better) |
| Access to services | Nearest hospital 35% (lower is better) · Nearest airport 20% (lower is better) · Grocery stores on foot 20% (higher is better) · Doctors on foot 15% (higher is better) · Schools on foot 10% (higher is better) |
"Who it suits" rules
A verdict appears only when every condition holds. If a value in the condition is missing or too coarse, the verdict does not appear.
| Good fit for | Conditions |
|---|---|
| Winter-sun seekers | January high ≥ 15°C and frost days = 0 |
| Retirees | Nearest hospital ≤ 10 km and January high ≥ 14°C and days above 35°C ≤ 15 and pharmacies on foot ≥ 2 |
| Car-light living | Grocery stores on foot ≥ 3 and (nearest train station ≤ 1.5 km or nearest bus station ≤ 1 km) |
| Beach lovers | Nearest beach ≤ 3 km |
| People who dislike heat | Days above 35°C ≤ 3 and July high ≤ 28°C |
| Weaker fit for | Conditions |
|---|---|
| Heat-sensitive people | Days above 35°C ≥ 15 |
| Anyone who dislikes rain | Days with rain a year ≥ 110 |
| Frequent flyers | Nearest airport ≥ 150 km |
| Month advice | Conditions |
|---|---|
| Beach daysgood for | Daily high ≥ 25°C and days with rain ≤ 3 |
| Walking and cyclinggood for | Daily high ≥ 15°C and daily high ≤ 26°C and days with rain ≤ 7 |
| Outdoor activity at middaynot ideal for | Daily high ≥ 32°C |
| Reliable dry weathernot ideal for | Days with rain ≥ 10 |
| Warm-weather holidaysnot ideal for | Daily high < 13°C |
What we don't publish
- Datasets whose licence does not allow commercial use, such as Ookla's open speed-test data and the GEM global hazard map.
- Values with known location or classification problems. They are kept for analysis and never shown.
- Guesses: a measure without a good dataset is left out, not estimated.
Datasets
| Dataset | Version | Licence | Attribution |
|---|---|---|---|
| Copernicus DEM GLO-30 (30 m elevation) | glo30_s120 | Copernicus DEM licence (free for any use, with attribution) | Elevation: Copernicus DEM GLO-30, © DLR e.V. 2010-2014 and © Airbus Defence and Space GmbH 2014-2018, provided under COPERNICUS by the European Union and ESA |
| PM2.5, European air quality data (EEA, interpolated 1 km map) | pm25_2023 | CC BY 4.0 | Air quality: European Environment Agency, interpolated PM2.5 map |
| River flood hazard maps for Europe (Copernicus Emergency Management Service, EFAS) | v3.1.1_rp100 | ODbL 1.0 | River flood map: Copernicus Emergency Management Service, European Commission JRC (ODbL) |
| Burnt areas (European Forest Fire Information System, EFFIS) | 2016-2025 | CC BY 4.0 | Wildfires: European Forest Fire Information System (EFFIS), Copernicus EMS |
| ERA5 monthly sea surface temperature (Copernicus Climate Data Store) | monthly_1991-2020 | CC BY 4.0 | Sea temperature: ERA5, Copernicus Climate Change Service (C3S), contains modified Copernicus information |
| ERA5-Land reanalysis (Copernicus Climate Data Store) | points_1991-2025 | CC BY 4.0 | Climate: ERA5-Land, Copernicus Climate Change Service (C3S) Climate Data Store, contains modified Copernicus information |
| ESA WorldCover 2021 (10 m land cover) | v200_2021 | CC BY 4.0 | Land cover: © ESA WorldCover project 2021 / Contains modified Copernicus Sentinel data (2021) processed by ESA WorldCover consortium |
| EU Census 2021 population grid (Eurostat) | V3 | Free reuse with acknowledgement (European Commission reuse policy) | Census grid: © European Union, Eurostat (aggregated by hexplace) |
| Nights spent in short-stay accommodation booked through online platforms (Eurostat tour_ce_omn12) | 2026-11-01 | CC BY 4.0 | Crowds: Eurostat, nights spent in short-stay accommodation booked through online platforms (tour_ce_omn12) |
| Price level indices (Eurostat prc_ppp_ind) | 2026-11-01 | CC BY 4.0 | Price level: Eurostat (prc_ppp_ind) |
| GeoNames | 2026-10-31 | CC BY 4.0 | Place names and populations: GeoNames (CC BY 4.0) |
| INE Portugal (local statistics on rents, house prices, crime and population) | 2026-11-01 | CC BY 4.0 | Rents, house prices, crime and population: Statistics Portugal (INE) and DGPJ |
| Natura 2000 protected sites (EEA, end 2024) | end2024 | CC BY 4.0 | Protected areas: Natura 2000, © European Union, DG Environment (EEA) |
| Natural Earth country outlines (1:10m) | v5.1.2 | Public domain | Country outlines: Natural Earth |
| OpenStreetMap (Geofabrik extracts) | 2026-10-31 | ODbL 1.0 | © OpenStreetMap contributors |
| OurAirports | 2026-10-31 | Public domain | Airports: OurAirports (public domain) |
| Overture Maps places | 2026-10-21.0 | CDLA-Permissive-2.0 | © Overture Maps Foundation, overturemaps.org |
| TEMIS UV index climatology (KNMI / ESA) | v2.0_clim_2004-2020 | Free use with credit; TEMIS asks to be told how the data is used | UV index: TEMIS, KNMI / ESA (www.temis.nl) |
| USGS earthquake catalog (ComCat) | 2026-10-31 | Public domain | Earthquakes: U.S. Geological Survey |
| Wikimedia Commons photos (through Wikidata) | 2026-10-31 | Per photo (CC0, CC BY, CC BY-SA or public domain), credited next to each photo | Photos: Wikimedia Commons contributors (credited per photo) |
20 datasets in the current release, each with the attribution it asks for.
Dataset in detail · climate
ERA5-Land reanalysis
The Copernicus reanalysis of hourly weather on a grid of about 9 km. Daily highs and lows are taken from hourly temperatures, and monthly averages cover 1991-2020.
- Dataset
- ERA5-Land reanalysis (Copernicus Climate Data Store)
- Licence
- CC BY 4.0
- Version on site
- points_1991-2025
- Normal period
- 1991-2020
- Used for
- Monthly highs and lows, days with rain, days above 35°C, tropical nights, frost days
- Attribution
- Climate: ERA5-Land, Copernicus Climate Change Service (C3S) Climate Data Store, contains modified Copernicus information
How it is used, and its limits
Each town uses the nearest grid cell that is mostly land, because cells that are mostly sea understate the gap between day and night. Temperatures are then adjusted from the cell's average height to the town's height at 6.5°C per kilometre.
Before a release, the results are checked against official station averages, with a tolerance fixed before any result was seen. A release whose climate misses these checks is not published.
Corrections
Corrections are made in the data pipeline, so they reach every affected page with the next release.