Data story
Train vs plane in Europe
Door-to-door times and CO₂e on 109 busy city pairs — real sampled rail times against a transparent flight model, no cherry-picking.
Open the interactive railway map →Airport time is the flight's hidden fare: getting out to the airport, security, boarding, and getting back into town at the other end add close to three hours that never appear on the ticket. Count them, and on 29 of these 109 routes the train is simply faster — before the CO₂e math, which the train wins everywhere.
- Pairs compared
- 109
- Train faster on
- 29 (27%)
- By over an hour
- 12
- CO₂e gap
- ≥ 3.2× (conservative)
The train wins one city pair in four
On 29 of the 109 pairs compared, the typical train beats a typical flight door to door — 12 of them by more than an hour. The biggest gap is Rennes–Paris: the train saves about 1h 55m on the day.
Under 3h 43m of rail, the plane never wins
Every compared pair the train covers in under 3h 43m goes to rail once airport time is counted. The advantage stretches as far as Marseille–Paris — 663 km apart, 3h 29m by train, and still ~35 min quicker than flying door to door.
The CO₂e gap never closes
Flying emits ≈3.2× the train's CO₂e on every pair — and that is on deliberately conservative official factors (DESNZ 2025, UK part-diesel rail mix). On typical electric intercity rail the EEA's figures put the real gap at 10–30×. London–Paris alone: ~15 kg by train against ~47 kg by plane, per passenger.
Where the train saves the most time
Door-to-door time saved by taking the train instead of a typical flight — all 29 pairs where the train wins, biggest saving first.
How we compute it
The train side is real data: typical (median) station-to-station times sampled from public European schedule feeds — the same figures as our city-to-city guides — plus 20 min of station overhead. The plane side is openly a model, not airline schedules: flight time ≈ 40 min taxi/climb/descent + straight-line distance at 750 km/h cruise, plus 2h 50m door-to-door overhead (25 min city→airport, 90 min check-in/security/boarding, 30 min deplaning, 25 min airport→city). Where no direct flight exists on a pair, the estimate is what a direct one would take — generous to the plane. Pairs under 300 km apart are not compared at all.
Emissions use the UK government's DESNZ/DEFRA 2025 conversion factors: 125.76 g CO₂e per passenger-km for short-haul flying (including radiative forcing, distance +8% for routing) against 35.46 g for rail (distance ×1.2 for the winding track). That rail figure is a deliberate ceiling — it reflects the UK's part-diesel mix; the EEA puts electric intercity rail at 12–33 g and Eurostar reports ~4 g, so the real gap on most of these corridors is 10–30×, not 3.2×. Rail times come from the same open data as the rest of the site — the TrainRouter Atlas (CC BY 4.0, archived at DOI 10.5281/zenodo.21322030) — free to check or reuse.
All 109 pairs, ranked by the train's advantage
| # | City pair | Train door-to-door | Flight door-to-door (est.) | Faster door-to-door | CO₂e saved (kg) |
|---|---|---|---|---|---|
| 1 | Rennes – Paris309 km apart · direct trains | 2h | 3h 55m | Train +1h 55m | 29 |
| 2 | Strasbourg – Paris396 km apart · direct trains | 2h 05m | 4h | Train +1h 55m | 37 |
| 3 | Paris – Lyon395 km apart · direct trains | 2h 20m | 4h | Train +1h 45m | 37 |
| 4 | Paris – Bordeaux502 km apart · direct trains | 2h 35m | 4h 10m | Train +1h 35m | 47 |
| 5 | London – Brussels322 km apart · direct trains | 2h 20m | 3h 55m | Train +1h 35m | 30 |
| 6 | Rome – Bologna305 km apart · direct trains | 2h 25m | 3h 55m | Train +1h 25m | 28 |
| 7 | London – Preston303 km apart · direct trains | 2h 30m | 3h 55m | Train +1h 25m | 28 |
| 8 | London – Paris343 km apart · direct trains | 2h 40m | 3h 55m | Train +1h 20m | 32 |
| 9 | Nantes – Paris343 km apart · direct trains | 2h 40m | 3h 55m | Train +1h 15m | 32 |
| 10 | Madrid – Valencia301 km apart · direct trains | 2h 40m | 3h 55m | Train +1h 15m | 28 |
| 11 | Avignon – Paris580 km apart · direct trains | 3h 15m | 4h 15m | Train +1h 05m | 54 |
| 12 | Seville – Madrid390 km apart · direct trains | 3h | 4h | Train +1h | 36 |
| 13 | Berlin – Nuremberg377 km apart · direct trains | 3h 05m | 4h | Train +55 min | 35 |
| 14 | Madrid – Málaga416 km apart · direct trains | 3h 15m | 4h 05m | Train +50 min | 39 |
| 15 | London – Newcastle395 km apart · direct trains | 3h 20m | 4h | Train +45 min | 37 |
| 16 | Florence – Naples410 km apart · direct trains | 3h 20m | 4h 05m | Train +45 min | 38 |
| 17 | Marseille – Paris663 km apart · direct trains | 3h 50m | 4h 25m | Train +35 min | 62 |
| 18 | Rome – Milan479 km apart · direct trains | 3h 35m | 4h 10m | Train +30 min | 45 |
| 19 | Leipzig – Munich362 km apart · direct trains | 3h 35m | 4h | Train +25 min | 34 |
| 20 | London – Plymouth309 km apart · direct trains | 3h 30m | 3h 55m | Train +25 min | 29 |
| 21 | Madrid – Barcelona502 km apart · direct trains | 3h 45m | 4h 10m | Train +25 min | 47 |
| 22 | Amsterdam – Paris429 km apart · direct trains | 3h 45m | 4h 05m | Train +20 min | 40 |
| 23 | Santiago de Compostela – Madrid487 km apart | 3h 50m | 4h 10m | Train +15 min | 45 |
| 24 | Brussels – Frankfurt315 km apart · direct trains | 3h 40m | 3h 55m | Train +15 min | 29 |
| 25 | Grenoble – Paris483 km apart · direct trains | 4h | 4h 10m | Train +10 min | 45 |
| 26 | Frankfurt – Munich304 km apart · direct trains | 3h 45m | 3h 55m | Train +10 min | 28 |
| 27 | London – Rotterdam320 km apart · direct trains | 3h 50m | 3h 55m | Train +5 min | 30 |
| 28 | Paris – Montpellier599 km apart · direct trains | 4h 15m | 4h 20m | Train +5 min | 56 |
| 29 | Paris – Basel415 km apart | 4h | 4h 05m | Train +0 min | 39 |
| 30 | Frankfurt – Hamburg394 km apart · direct trains | 4h 05m | 4h | Flight +0 min | 37 |
| 31 | Paris – Frankfurt476 km apart · direct trains | 4h 10m | 4h 10m | Flight +5 min | 44 |
| 32 | Paris – Cologne402 km apart · direct trains | 4h 15m | 4h | Flight +15 min | 37 |
| 33 | Munich – Berlin504 km apart · direct trains | 4h 25m | 4h 10m | Flight +15 min | 47 |
| 34 | Madrid – Granada359 km apart · direct trains | 4h 15m | 4h | Flight +15 min | 34 |
| 35 | Venice – Rome394 km apart · direct trains | 4h 20m | 4h | Flight +20 min | 37 |
| 36 | Hamburg – Cologne357 km apart · direct trains | 4h 25m | 4h | Flight +25 min | 33 |
| 37 | Berlin – Frankfurt423 km apart · direct trains | 4h 30m | 4h 05m | Flight +25 min | 39 |
| 38 | London – Edinburgh531 km apart · direct trains | 4h 50m | 4h 10m | Flight +40 min | 50 |
| 39 | London – Glasgow553 km apart · direct trains | 4h 50m | 4h 15m | Flight +40 min | 52 |
| 40 | Malmö – Stockholm512 km apart · direct trains | 4h 50m | 4h 10m | Flight +40 min | 48 |
| 41 | Gothenburg – Stockholm397 km apart · direct trains | 4h 40m | 4h | Flight +40 min | 37 |
| 42 | Wrocław – Warsaw301 km apart · direct trains | 4h 35m | 3h 55m | Flight +40 min | 28 |
| 43 | Frankfurt – Zurich304 km apart · direct trains | 4h 35m | 3h 55m | Flight +40 min | 28 |
| 44 | Naples – Milan659 km apart · direct trains | 5h 05m | 4h 25m | Flight +40 min | 62 |
| 45 | Munich – Vienna357 km apart · direct trains | 4h 50m | 4h | Flight +50 min | 33 |
| 46 | Edinburgh – Birmingham395 km apart · direct trains | 4h 55m | 4h | Flight +50 min | 37 |
| 47 | Rome – Bari374 km apart · direct trains | 4h 50m | 4h | Flight +50 min | 35 |
| 48 | Paris – Toulouse590 km apart · direct trains | 5h 10m | 4h 15m | Flight +55 min | 55 |
| 49 | Madrid – Alicante359 km apart | 5h | 4h | Flight +1h | 34 |
| 50 | Turin – Rome525 km apart · direct trains | 5h 15m | 4h 10m | Flight +1h | 49 |
| 51 | Vienna – Innsbruck387 km apart · direct trains | 5h 05m | 4h | Flight +1h | 36 |
| 52 | Valencia – Barcelona301 km apart | 5h | 3h 55m | Flight +1h 05m | 28 |
| 53 | London – Amsterdam357 km apart · direct trains | 5h 05m | 4h | Flight +1h 05m | 33 |
| 54 | Vigo – Madrid466 km apart | 5h 20m | 4h 05m | Flight +1h 10m | 43 |
| 55 | Berlin – Cologne475 km apart · direct trains | 5h 20m | 4h 10m | Flight +1h 15m | 44 |
| 56 | Paris – Geneva411 km apart · direct trains | 5h 20m | 4h 05m | Flight +1h 15m | 38 |
| 57 | Amsterdam – Frankfurt364 km apart · direct trains | 5h 15m | 4h | Flight +1h 20m | 34 |
| 58 | Paris – Perpignan688 km apart · direct trains | 5h 45m | 4h 25m | Flight +1h 20m | 64 |
| 59 | Seville – Valencia540 km apart · direct trains | 5h 40m | 4h 15m | Flight +1h 30m | 50 |
| 60 | Copenhagen – Stockholm522 km apart | 5h 40m | 4h 10m | Flight +1h 30m | 49 |
| 61 | Lyon – Bordeaux436 km apart | 5h 35m | 4h 05m | Flight +1h 30m | 41 |
| 62 | Thessaloniki – Athens302 km apart · direct trains | 5h 30m | 3h 55m | Flight +1h 35m | 28 |
| 63 | Amsterdam – Hamburg366 km apart | 5h 35m | 4h | Flight +1h 35m | 34 |
| 64 | Paris – Nice688 km apart · direct trains | 6h 15m | 4h 25m | Flight +1h 50m | 64 |
| 65 | Munich – Paris683 km apart | 6h 25m | 4h 25m | Flight +2h | 64 |
| 66 | Verona – Munich305 km apart · direct trains | 5h 55m | 3h 55m | Flight +2h | 28 |
| 67 | Seville – Barcelona826 km apart · direct trains | 6h 45m | 4h 35m | Flight +2h 10m | 77 |
| 68 | Paris – Zurich489 km apart · direct trains | 6h 20m | 4h 10m | Flight +2h 10m | 46 |
| 69 | Hamburg – Munich611 km apart · direct trains | 6h 30m | 4h 20m | Flight +2h 10m | 57 |
| 70 | Stockholm – Oslo416 km apart · direct trains | 6h 15m | 4h 05m | Flight +2h 10m | 39 |
| 71 | Bratislava – Košice312 km apart · direct trains | 6h 10m | 3h 55m | Flight +2h 15m | 29 |
| 72 | Barcelona – Lyon534 km apart · direct trains | 6h 45m | 4h 15m | Flight +2h 30m | 50 |
| 73 | Amsterdam – Berlin574 km apart · direct trains | 7h | 4h 15m | Flight +2h 45m | 54 |
| 74 | Kraków – Prague393 km apart · direct trains | 6h 50m | 4h | Flight +2h 50m | 37 |
| 75 | Aberdeen – London637 km apart · direct trains | 7h 20m | 4h 20m | Flight +3h | 59 |
| 76 | Paris – Milan640 km apart | 7h 35m | 4h 20m | Flight +3h 15m | 60 |
| 77 | Trondheim – Oslo393 km apart · direct trains | 7h 25m | 4h | Flight +3h 20m | 37 |
| 78 | Oslo – Copenhagen484 km apart | 7h 35m | 4h 10m | Flight +3h 25m | 45 |
| 79 | Oslo – Bergen305 km apart · direct trains | 7h 25m | 3h 55m | Flight +3h 35m | 28 |
| 80 | Warsaw – Berlin519 km apart | 7h 50m | 4h 10m | Flight +3h 40m | 48 |
| 81 | Barcelona – Marseille341 km apart · direct trains | 7h 45m | 3h 55m | Flight +3h 50m | 32 |
| 82 | Berlin – Brussels648 km apart | 8h 15m | 4h 20m | Flight +3h 55m | 60 |
| 83 | Paris – Berlin874 km apart · direct trains | 8h 40m | 4h 40m | Flight +4h | 82 |
| 84 | Budapest – Prague445 km apart | 8h 15m | 4h 05m | Flight +4h 05m | 41 |
| 85 | Venice – Munich306 km apart · direct trains | 8h 05m | 3h 55m | Flight +4h 10m | 29 |
| 86 | Vienna – Zurich592 km apart | 8h 30m | 4h 15m | Flight +4h 10m | 55 |
| 87 | Amsterdam – Munich668 km apart · direct trains | 8h 40m | 4h 25m | Flight +4h 15m | 62 |
| 88 | Berlin – Zurich668 km apart | 8h 45m | 4h 25m | Flight +4h 20m | 62 |
| 89 | Venice – Vienna435 km apart · direct trains | 8h 30m | 4h 05m | Flight +4h 25m | 41 |
| 90 | Munich – Prague301 km apart | 8h 25m | 3h 55m | Flight +4h 30m | 28 |
| 91 | Copenhagen – Berlin354 km apart | 8h 40m | 4h | Flight +4h 40m | 33 |
| 92 | Warsaw – Vienna556 km apart · direct trains | 9h | 4h 15m | Flight +4h 45m | 52 |
| 93 | Paris – Barcelona834 km apart · direct trains | 9h 30m | 4h 35m | Flight +4h 55m | 78 |
| 94 | Budapest – Belgrade318 km apart | 8h 50m | 3h 55m | Flight +4h 55m | 30 |
| 95 | Paris – Turin585 km apart | 9h 15m | 4h 15m | Flight +4h 55m | 55 |
| 96 | Vienna – Berlin527 km apart | 9h 15m | 4h 10m | Flight +5h 05m | 49 |
| 97 | Prague – Warsaw516 km apart | 9h 20m | 4h 10m | Flight +5h 10m | 48 |
| 98 | Inverness – London712 km apart | 9h 40m | 4h 25m | Flight +5h 10m | 66 |
| 99 | Florence – Paris887 km apart | 10h 25m | 4h 40m | Flight +5h 45m | 83 |
| 100 | Rome – Paris1,108 km apart | 10h 55m | 5h | Flight +5h 55m | 103 |
| 101 | Madrid – Paris1,055 km apart | 11h 05m | 4h 55m | Flight +6h 10m | 98 |
| 102 | Bilbao – Madrid323 km apart | 10h 10m | 3h 55m | Flight +6h 15m | 30 |
| 103 | Venice – Paris844 km apart | 11h 05m | 4h 40m | Flight +6h 25m | 79 |
| 104 | Vienna – Paris1,034 km apart | 11h 35m | 4h 55m | Flight +6h 40m | 96 |
| 105 | Rovaniemi – Helsinki705 km apart | 11h 55m | 4h 25m | Flight +7h 30m | 66 |
| 106 | Budapest – Zagreb303 km apart | 12h 10m | 3h 55m | Flight +8h 15m | 28 |
| 107 | Bucharest – Budapest638 km apart | 16h 25m | 4h 20m | Flight +12h 05m | 60 |
| 108 | Sofia – Belgrade327 km apart | 17h 35m | 3h 55m | Flight +13h 35m | 30 |
| 109 | Lisbon – Madrid504 km apart | 19h 25m | 4h 10m | Flight +15h 15m | 47 |
Each pair links to its full journey guide — typical times, direct-train availability and operators. CO₂e saved is per passenger, on the conservative factors above.
Is the train faster than flying in Europe?
On 29 of the 109 busy city pairs compared here — 27% of them — the typical train beats a typical flight door to door, and 12 of those by more than an hour. The comparison counts getting to the airport, security and the transfer at the far end, which is where rail makes the time back.
At what distance does flying become faster than the train?
There is no single distance, but there is a clear rule of thumb in the data: every pair the train covers in under 3h 43m goes to rail once airport time is counted. The advantage survives as far out as Marseille–Paris, 663 km apart, where the train is still about 35 min quicker door to door.
How much more CO₂ does flying produce than taking the train?
About 3.2 times as much per passenger on these routes, and that figure is deliberately conservative — it uses the UK DESNZ 2025 factors with a part-diesel rail mix. On typical electric intercity rail the European Environment Agency's figures put the real gap at 10 to 30 times. On London–Paris it works out at roughly 15 kg by train against 47 kg by plane.
Which European route saves the most time by train?
Rennes to Paris, where the train saves about 1h 55m against flying once airport time is included. Short high-speed corridors between city-centre stations produce the biggest gaps, because a flight's fixed overhead does not shrink with distance.