0xCarbon
How the numbers are made

Methodology

0xCarbon multiplies great-circle distance by the UK Government's 2026 emission factor for each mode, doubles it for a return, and pairs it with ERA5 monthly mean temperature. For each month and journey-time budget it keeps only Pareto-optimal destinations. Rail journey times are modelled estimates, not timetabled services.

Sources

Every figure traces to a published, openly licensed source. Nothing is estimated by hand and nothing is editorial. The last row is the exception that proves it: Google's model was read for comparison and feeds none of the numbers, so it is listed as what it is.

Upstream data and licences
WhatSourceLicence
Emission factorsUK Government (DESNZ/DEFRA) GHG Conversion Factors for Company Reporting 2026, version 1.2, published 2026-07-31Open Government Licence v3.0
Temperature, sunshine, rainfallERA5 reanalysis via Open-Meteo, 2023–2024 monthly means, extracted once into a static file (final pull 3 September 2026)CC BY 4.0
Sea temperatureNOAA OISST v2.1 (daily, 0.25°) via NOAA CoastWatch ERDDAP, every fifth day of 2023–2024 averaged by calendar month, at the nearest open-sea cell within 25 km; inland places have none (pulled 8 October 2026)Public domain (US Government)
Place descriptionsFirst sentence of each destination's English Wikivoyage guide, shown on its own page and on month pages only, with a link to the guide (pulled 8 October 2026)CC BY-SA 4.0
Hotel staySame UK Government factor set, "Hotel stay" rows: kg CO₂e per occupied room per night, by countryOpen Government Licence v3.0
Places, coordinatesGeoNames, settlements above 20,000 populationCC BY 4.0
AirportsOurAirports, large and medium fields with scheduled servicePublic domain
Flight methodology, for comparison onlyGoogle Travel Impact Model 3.0.0 — read while building this, not used to compute anything hereCC BY 4.0

The calculation

Distance is great-circle between origin and destination coordinates. That distance is multiplied by the mode's DEFRA factor and doubled, giving the return figure quoted throughout. Flights use the short-haul factor below 3,700 km and the long-haul factor above it, matching DEFRA's own boundary; journeys within Great Britain use the domestic factor.

A journey with one end in Britain crosses two railways, and each leg is priced on its own factor — UK national rail at 0.03092 and international at 0.01135 kg per passenger-km. Charging the whole trip at the international rate, as an earlier version did, understated Glasgow to Paris by 107%.

Rail is modelled three ways, according to where you start. From Great Britain, the continent is reachable only through the Channel Tunnel, so a continental journey runs as two legs — origin to London, then London to destination — rather than as a straight line across the sea. From continental Europe, rail runs direct, and only journeys to Britain are routed through London. From Dublin there is no fixed rail link in either direction, so every journey from there is a flight and the site says so on the page. Track distance is the great-circle path times 1.3, reflecting that rails bend.

Rail time is modelled separately from rail distance. It routes through 119 major stations joined by 238 direct services, each timed at the fastest regular daytime train, and takes the quickest path: a TGV to Marseille, an AVE to Seville, a railjet to Vienna. Every change of train adds 1.1 hours for the connection, crossing Paris or London between terminals adds 0.3 more, Eurostar check-in adds 0.6, and reaching and leaving the stations adds 1.5. Beyond the last hub the train is assumed to average 90 km/h on track distance, or 55 km/h in the Balkans, Greece, Turkey, the Baltic states and Finland, where conventional lines are slow. The allowances are set against the route ledger: across the 6 journeys checked on a real timetable, the model is off by 3.6% on average and 7.1% at worst. Carbon still follows distance, because emissions depend on the track travelled, not on how fast the train goes.

Places with no through rail connection are excluded from rail routing by their GeoNames administrative region, not by geometry. Coastline polygons were tried first and proved unusable: at any workable resolution the shoreline cuts inside coastal cities, so Le Havre and Blackpool tested as offshore while Madeira tested as mainland. Administrative codes are unambiguous. Excluded that way: the Canaries, the Balearics, Ceuta and Melilla, Madeira, the Azores, Corsica, Sardinia, Crete, the South Aegean and Northern Ireland; and by country, Iceland, Malta, Cyprus, Ireland, the Faroes, Svalbard, Greenland, the Isle of Man, the Channel Islands and Åland, along with Morocco, Tunisia, Egypt and Jordan. Sicily is deliberately not excluded, because through trains board the ferry at Villa San Giovanni.

Three countries are left out of the pool altogether on a bookability test rather than a rail one: Russia, Ukraine and Belarus. Israel joined them on 15 September 2026, given FCDO advice against travel to parts of the country and the regional situation; thirty settlements, including Eilat and Tiberias, left the dataset that day. Egypt, Tunisia and Turkey remain, and every page that recommends a destination in them carries the current FCDO advice.

The plain ranking, and the photographs

Each question page opens with a plain answer before the frontier: the ten places that score best on the question itself, within 15 hours, with the carbon shown but not used to choose. The pool for that list is places with a Wikivoyage travel guide and at least 40,000 readers a year on English Wikipedia, so that a small town which happens to be warm does not outrank Tenerife. Each area within 40 km is represented once, by its best-known place if that is within a degree of the best (half an hour of sunshine for the sunniest list), and no country appears more than three times. The rail list uses the same rules with four per country, because the train mostly reaches France and Spain.

Destination photographs are the image Wikidata records for the place, a file on Wikimedia Commons, used only where its Commons page shows a free licence (CC0, public domain, CC BY or CC BY-SA). Every photograph is credited to its author with its licence, and links to its source.

The holiday finder

The finder on the homepage chooses among well-known places (the same rule as the plain ranking) that have a page here to plan from. It keeps only places that meet every choice: the month's historical daily mean at or above the weather floor, the journey within the time limit each way, by train alone if flying is ruled out, by the sea (a sea temperature within 25 km) or a city (over 250,000 people) if asked. Places whose access research could not confirm are not in the data at all.

"Warm enough" is a floor, not a race. Above it, the best matchis the place with the most sunshine for the least rain, the better-known place breaking near-ties, reached the lower-carbon way. The other two cards are claims about the three shown, and are only made when true:easiest journey is the quickest of the three andlowest-carbon match the least carbon. When one journey is both, it says so, and the third card is the next-best fit, from another country where one exists. Each card's compromise is its largest measured shortfall against the other two. Every combination of city, month and choice is checked against these rules on each build.

From destinations to a frontier

A destination is on the frontier for a given question, month and journey-time budget if nowhere else is both better on that question and lower in carbon. Everything else is dominated and omitted. This is why the lists are short: of 2,723 destinations, a typical frontier holds around ten.

What is left out, and why

The pipeline starts from 2,723 settlements that clear the population and distance filters, and every one of them carries a full year of climate, so the ranked set and the pool are the same 2,723. Nothing here is interpolated, imputed, or borrowed from a neighbouring town: a destination either has its own twelve months from the source or is not in the dataset at all.

Three questions, not one

The same machinery answers warmest, sunniest and, for the summer, coolest — measured as degrees below home — by swapping which quality it optimises. They are computed separately because they disagree: a mild Atlantic coast is often overcast, and a colder inland month is often bright. Ranking on temperature alone would send people somewhere wet, so temperature, sunshine hours and daily rainfall are reported side by side on every table regardless of which question was asked.

Two adjustments make the result readable. Points within 0.75 °C of each other are collapsed into one band, because a tenth of a degree is not a choice. And within a band, a better-known city is preferred over a strictly optimal obscure one if it costs no more than 12% extra carbon — the reason you see Valencia rather than a suburb of it.

Journey-time budgets

Rail is so much cleaner per kilometre — about 11 times — that without a time limit the answer is always "take the train", including twenty-hour journeys nobody actually makes. Frontiers are therefore computed separately for 6, 10, 15, 24 hour one-way budgets. The budget is what turns a trivial answer into a real choice.

What this method gets wrong

Stated plainly, because a method you cannot criticise is not a method.

  • Rail times are modelled, not timetabled. The hub network knows how fast the trains are, not how often they run: a connection that runs twice a day, or not on Sundays, costs far more than the 1.1-hour allowance. The ledger it is checked against is still small (6 journeys, all from London), and the leg beyond the last hub is an average speed, so a branch line or a ferry crossing can be well off. This remains the largest source of error.
  • Great-circle distance understates flight paths. Real routings, holding patterns and diversions add distance the model ignores, so flight figures are, if anything, conservative.
  • Short flights are understated more than most. DEFRA publishes one short-haul factor as an average across every flight from 0 to 3,700 km. Take-off and climb dominate a 300 km hop, so its real per-kilometre emissions sit well above that average. London to Paris comes out at about 43 kg each way here. The most-cited route-specific comparison — Transport & Environment, on research commissioned by Eurostar — put Heathrow to Charles de Gaulle at 122 kg per passenger against 11–17 kg by train, a ratio of roughly ten to one. That study was published in 2006 and aircraft have grown more efficient since, so treat it as an upper bound rather than a current figure. The point that survives is the ratio: this model says 8.5×, which sits inside their 7–11× range. The absolute figure for a very short flight is the part that is conservative here.
  • The flight figure omits the transfer to the airport. Where a destination has no airport of its own, the ground leg from whichever field actually serves it is not counted, so the journey is understated in both time and carbon. Bourges is 132 km from a scheduled airport and the model says nothing about that drive.
  • Somewhere with no airport and no railway is dropped entirely. A destination is excluded if it has no rail connection and no scheduled airport within 150 km, because the only journey the model could offer it is a flight nobody sells. This removed ten places, among them the Siwa and Dakhla oases, Hala'ib on the Egypt–Sudan border, and Rukban, which is a refugee camp rather than a destination. Towns that are far from an airport but reachable by train are kept, because for them the model still describes a real journey. Airport locations are OurAirports, scheduled service only.
  • DEFRA factors are UK averages. They describe a typical load factor and fleet, not the specific aircraft or train you board.
  • They are also labelled "to/from UK". Applying them to a journey between two continental cities — Milan to Athens, say — is an approximation. They are distance-band averages for a typical short-haul aircraft, which travels reasonably well, but a European operator using national factors would get a slightly different number. Departures from Great Britain are on the firmest ground here.
  • Climate is reanalysis, not a thermometer. ERA5 blends observations with a weather model on a grid of roughly 30 km, served by Open-Meteo. A coastal town and the hills behind it can share a cell. Sunshine hours are ERA5 sunshine duration — direct sunlight above an irradiance threshold — not daylight hours. The data was pulled once, finishing on 3 September 2026, into a static file; nothing calls the service when the site is built or read.
  • Two years of climate is not a normal. Temperatures are 2023–2024 means. A thirty-year normal would be steadier; a two-year window is more current. Neither is a forecast.
  • Journey times are modelled, not timetabled. Rail time comes from the hub network described above; until 23 September 2026 it was a flat 95 km/h, which overstated TGV corridors by about half (London to Lyon modelled at twelve hours against 7.9 door to door). Where a page carries a verified itinerary it is labelled as such; every other time is an estimate for comparing destinations, not for planning a day.
  • Hotel figures are one room, one person, 7 nights. The factor is a country average per occupied room per night, and the factor set's own methodology describes it as drawn from an older industry benchmark survey rather than fresh measurement. It is a scale for the stay against the journey, not any particular hotel's footprint. Two people sharing halve the per-person share of the room; the journey does not halve. Countries with no factor are shown with no figure, never zero.
  • Temperature is not weather. Mean daily temperature says nothing about rain, wind or daylight, all of which matter to whether a place is pleasant.
  • Island exclusions are hand-drawn boxes. They are coarse and may misclassify a coastal city near a boundary.

Reproducing it

The dataset is generated by three Python scripts: one downloads every upstream source and records a SHA-256 for each, one maps destinations to Eurostat tourism regions, and the third computes distances, carbon, climate and frontiers. Five more check the result. Every number on this page is computed at build time from the JSON, so any figure here can be checked against its inputs. Take the data.

Questions

What emission factors does 0xCarbon use?

UK Government (DESNZ/DEFRA) greenhouse gas conversion factors, 2026 set, version 1.2, published 2026-07-31 under the Open Government Licence v3.0. International rail 0.01135, national rail 0.03092, short-haul economy flight 0.12576 with radiative forcing, long-haul economy 0.11704, UK domestic 0.22928, foot-passenger ferry 0.01871 — all kg CO2e per passenger-kilometre.

Does the flight figure include non-CO2 effects?

Yes. All flight figures use the 'with radiative forcing' variant, which accounts for the additional warming effect of emissions at altitude. Excluding it would roughly halve the numbers and understate aviation's impact.

Are the rail journey times real timetables?

No. They are modelled from a network of 119 rail hubs joined by the fastest scheduled service between them, with 1.1 hours allowed for every change of train, 0.6 hours for Eurostar check-in, 1.5 hours to reach and leave the stations, and 90 km/h beyond the last hub. Against the 6 journeys checked on a real timetable the model is within 8%. It still cannot know that a connection runs twice a day, or not on Sundays, so treat the times as indicative.

Why are the frontiers so short?

Because most destinations are dominated: somewhere else is both warmer and lower-carbon, so listing them would be noise. Of 2,723 destinations assessed, only those on the Pareto frontier appear. Points closer than 0.75 °C apart are also merged, since nobody chooses a holiday on a tenth of a degree.