Data story
Train vs plane in Europe
Door-to-door times and CO₂e on 105 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 26 of these 105 routes the train is simply faster — before the CO₂e math, which the train wins everywhere.
- Pairs compared
- 105
- Train faster on
- 26 (25%)
- By over an hour
- 11
- CO₂e gap
- ≥ 3.2× (conservative)
The train wins one city pair in four
On 26 of the 105 pairs compared, the typical train beats a typical flight door to door — 11 of them by more than an hour. The biggest gap is Paris–Rennes: the train saves about 2h on the day.
Under 3h 45m of rail, the plane never wins
Every compared pair the train covers in under 3h 45m goes to rail once airport time is counted. The advantage stretches as far as Marseille–Paris — 663 km apart, 3h 52m by train, and still ~10 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 26 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 105 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 | Paris – Rennes309 km apart · direct trains | 1h 55m | 3h 55m | Train +2h | 29 |
| 2 | Strasbourg – Paris396 km apart · direct trains | 2h 10m | 4h | Train +1h 55m | 37 |
| 3 | Paris – Lyon395 km apart · direct trains | 2h 25m | 4h | Train +1h 40m | 37 |
| 4 | Bordeaux – Paris502 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 | Nantes – Paris343 km apart · direct trains | 2h 40m | 3h 55m | Train +1h 15m | 32 |
| 8 | Madrid – Valencia301 km apart · direct trains | 2h 40m | 3h 55m | Train +1h 15m | 28 |
| 9 | London – Paris343 km apart · direct trains | 2h 45m | 3h 55m | Train +1h 15m | 32 |
| 10 | Avignon – Paris580 km apart · direct trains | 3h 10m | 4h 15m | Train +1h 05m | 54 |
| 11 | Seville – Madrid390 km apart · direct trains | 3h | 4h | Train +1h | 36 |
| 12 | Berlin – Nuremberg377 km apart · direct trains | 3h 05m | 4h | Train +55 min | 35 |
| 13 | London – Newcastle395 km apart · direct trains | 3h 20m | 4h | Train +45 min | 37 |
| 14 | Madrid – Alicante359 km apart | 3h 15m | 4h | Train +45 min | 34 |
| 15 | Florence – Naples410 km apart · direct trains | 3h 20m | 4h 05m | Train +45 min | 38 |
| 16 | Madrid – Málaga416 km apart · direct trains | 3h 25m | 4h 05m | Train +40 min | 39 |
| 17 | Rome – Milan479 km apart · direct trains | 3h 35m | 4h 10m | Train +30 min | 45 |
| 18 | Madrid – Barcelona502 km apart · direct trains | 3h 45m | 4h 10m | Train +25 min | 47 |
| 19 | Basel – Paris415 km apart | 3h 40m | 4h 05m | Train +20 min | 39 |
| 20 | Munich – Leipzig362 km apart · direct trains | 3h 40m | 4h | Train +20 min | 34 |
| 21 | Santiago de Compostela – Madrid487 km apart | 3h 50m | 4h 10m | Train +15 min | 45 |
| 22 | Amsterdam – Paris429 km apart · direct trains | 3h 50m | 4h 05m | Train +15 min | 40 |
| 23 | Marseille – Paris663 km apart | 4h 10m | 4h 25m | Train +10 min | 62 |
| 24 | Frankfurt – Munich304 km apart · direct trains | 3h 45m | 3h 55m | Train +10 min | 28 |
| 25 | Paris – Montpellier599 km apart · direct trains | 4h 10m | 4h 20m | Train +5 min | 56 |
| 26 | London – Rotterdam320 km apart · direct trains | 3h 50m | 3h 55m | Train +5 min | 30 |
| 27 | Geneva – Paris411 km apart · direct trains | 4h 05m | 4h 05m | Flight +0 min | 38 |
| 28 | Paris – Frankfurt476 km apart · direct trains | 4h 10m | 4h 10m | Flight +5 min | 44 |
| 29 | Grenoble – Paris483 km apart · direct trains | 4h 20m | 4h 10m | Flight +10 min | 45 |
| 30 | Venice – Rome394 km apart · direct trains | 4h 15m | 4h | Flight +15 min | 37 |
| 31 | Munich – Berlin504 km apart · direct trains | 4h 25m | 4h 10m | Flight +15 min | 47 |
| 32 | Hamburg – Cologne357 km apart · direct trains | 4h 25m | 4h | Flight +25 min | 33 |
| 33 | London – Edinburgh531 km apart · direct trains | 4h 50m | 4h 10m | Flight +40 min | 50 |
| 34 | Rome – Turin525 km apart · direct trains | 4h 50m | 4h 10m | Flight +40 min | 49 |
| 35 | London – Glasgow553 km apart · direct trains | 4h 55m | 4h 15m | Flight +40 min | 52 |
| 36 | Paris – Cologne402 km apart · direct trains | 4h 40m | 4h | Flight +40 min | 37 |
| 37 | Malmö – Stockholm512 km apart · direct trains | 4h 55m | 4h 10m | Flight +40 min | 48 |
| 38 | Naples – Milan659 km apart · direct trains | 5h 05m | 4h 25m | Flight +40 min | 62 |
| 39 | Gothenburg – Stockholm397 km apart · direct trains | 4h 45m | 4h | Flight +45 min | 37 |
| 40 | Frankfurt – Zurich304 km apart · direct trains | 4h 40m | 3h 55m | Flight +45 min | 28 |
| 41 | Warsaw – Wrocław301 km apart · direct trains | 4h 40m | 3h 55m | Flight +45 min | 28 |
| 42 | Brussels – Frankfurt315 km apart · direct trains | 4h 45m | 3h 55m | Flight +50 min | 29 |
| 43 | Edinburgh – Birmingham395 km apart · direct trains | 4h 55m | 4h | Flight +50 min | 37 |
| 44 | Munich – Vienna357 km apart · direct trains | 4h 50m | 4h | Flight +50 min | 33 |
| 45 | Bari – Rome374 km apart · direct trains | 5h | 4h | Flight +1h | 35 |
| 46 | Hamburg – Frankfurt394 km apart · direct trains | 5h | 4h | Flight +1h | 37 |
| 47 | Vienna – Innsbruck387 km apart · direct trains | 5h 05m | 4h | Flight +1h | 36 |
| 48 | Berlin – Cologne475 km apart · direct trains | 5h 10m | 4h 10m | Flight +1h 05m | 44 |
| 49 | Paris – Toulouse590 km apart · direct trains | 5h 20m | 4h 15m | Flight +1h 05m | 55 |
| 50 | Valencia – Barcelona301 km apart | 5h | 3h 55m | Flight +1h 05m | 28 |
| 51 | Seville – Valencia540 km apart · direct trains | 5h 20m | 4h 15m | Flight +1h 10m | 50 |
| 52 | Amsterdam – Frankfurt364 km apart · direct trains | 5h 10m | 4h | Flight +1h 10m | 34 |
| 53 | Amsterdam – London357 km apart · direct trains | 5h 10m | 4h | Flight +1h 10m | 33 |
| 54 | Perpignan – Paris688 km apart · direct trains | 5h 40m | 4h 25m | Flight +1h 15m | 64 |
| 55 | Vigo – Madrid466 km apart | 5h 20m | 4h 05m | Flight +1h 15m | 43 |
| 56 | Madrid – Granada359 km apart · direct trains | 5h 15m | 4h | Flight +1h 15m | 34 |
| 57 | Lyon – Bordeaux436 km apart | 5h 25m | 4h 05m | Flight +1h 20m | 41 |
| 58 | Berlin – Frankfurt423 km apart · direct trains | 5h 25m | 4h 05m | Flight +1h 25m | 39 |
| 59 | Zurich – Paris489 km apart | 5h 30m | 4h 10m | Flight +1h 25m | 46 |
| 60 | Zagreb – Budapest303 km apart | 5h 20m | 3h 55m | Flight +1h 30m | 28 |
| 61 | Copenhagen – Stockholm522 km apart | 5h 45m | 4h 10m | Flight +1h 35m | 49 |
| 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 | Munich – Prague301 km apart · direct trains | 5h 35m | 3h 55m | Flight +1h 40m | 28 |
| 65 | Paris – Munich683 km apart | 6h 10m | 4h 25m | Flight +1h 45m | 64 |
| 66 | Bilbao – Madrid323 km apart | 5h 45m | 3h 55m | Flight +1h 50m | 30 |
| 67 | Paris – Nice688 km apart · direct trains | 6h 20m | 4h 25m | Flight +1h 55m | 64 |
| 68 | Munich – Hamburg611 km apart · direct trains | 6h 20m | 4h 20m | Flight +2h 05m | 57 |
| 69 | Oslo – Stockholm416 km apart · direct trains | 6h 10m | 4h 05m | Flight +2h 05m | 39 |
| 70 | Seville – Barcelona826 km apart · direct trains | 6h 45m | 4h 35m | Flight +2h 10m | 77 |
| 71 | Bratislava – Košice312 km apart · direct trains | 6h 10m | 3h 55m | Flight +2h 15m | 29 |
| 72 | Verona – Munich305 km apart · direct trains | 6h 35m | 3h 55m | Flight +2h 40m | 28 |
| 73 | Berlin – Warsaw519 km apart | 6h 55m | 4h 10m | Flight +2h 45m | 48 |
| 74 | Amsterdam – Berlin574 km apart · direct trains | 7h | 4h 15m | Flight +2h 45m | 54 |
| 75 | Barcelona – Lyon534 km apart · direct trains | 7h | 4h 15m | Flight +2h 45m | 50 |
| 76 | Belgrade – Budapest318 km apart | 6h 55m | 3h 55m | Flight +3h | 30 |
| 77 | Barcelona – Marseille341 km apart | 7h | 3h 55m | Flight +3h 05m | 32 |
| 78 | Oslo – Trondheim393 km apart · direct trains | 7h 05m | 4h | Flight +3h 05m | 37 |
| 79 | Kraków – Prague393 km apart · direct trains | 7h 05m | 4h | Flight +3h 05m | 37 |
| 80 | Bergen – Oslo305 km apart · direct trains | 7h 10m | 3h 55m | Flight +3h 15m | 28 |
| 81 | Budapest – Prague445 km apart | 7h 50m | 4h 05m | Flight +3h 40m | 41 |
| 82 | Paris – Turin585 km apart | 8h | 4h 15m | Flight +3h 45m | 55 |
| 83 | Barcelona – Paris834 km apart · direct trains | 8h 30m | 4h 35m | Flight +3h 55m | 78 |
| 84 | Berlin – Brussels648 km apart | 8h 15m | 4h 20m | Flight +3h 55m | 60 |
| 85 | Amsterdam – Munich668 km apart · direct trains | 8h 35m | 4h 25m | Flight +4h 10m | 62 |
| 86 | Venice – Munich306 km apart · direct trains | 8h 05m | 3h 55m | Flight +4h 10m | 29 |
| 87 | Madrid – Lisbon504 km apart | 8h 25m | 4h 10m | Flight +4h 15m | 47 |
| 88 | Vienna – Warsaw556 km apart | 8h 35m | 4h 15m | Flight +4h 20m | 52 |
| 89 | Prague – Warsaw516 km apart | 8h 35m | 4h 10m | Flight +4h 25m | 48 |
| 90 | Venice – Vienna435 km apart · direct trains | 8h 30m | 4h 05m | Flight +4h 25m | 41 |
| 91 | Copenhagen – Oslo484 km apart | 8h 35m | 4h 10m | Flight +4h 25m | 45 |
| 92 | Copenhagen – Berlin354 km apart | 8h 30m | 4h | Flight +4h 35m | 33 |
| 93 | Vienna – Zurich592 km apart | 8h 55m | 4h 15m | Flight +4h 35m | 55 |
| 94 | Milan – Paris640 km apart | 9h | 4h 20m | Flight +4h 40m | 60 |
| 95 | Berlin – Zurich668 km apart · direct trains | 9h 05m | 4h 25m | Flight +4h 45m | 62 |
| 96 | Vienna – Berlin527 km apart | 9h 15m | 4h 10m | Flight +5h 05m | 49 |
| 97 | Berlin – Paris874 km apart | 9h 45m | 4h 40m | Flight +5h 05m | 82 |
| 98 | Florence – Paris887 km apart | 10h 35m | 4h 40m | Flight +5h 55m | 83 |
| 99 | Venice – Paris844 km apart | 11h 25m | 4h 40m | Flight +6h 50m | 79 |
| 100 | Rome – Paris1,108 km apart | 11h 50m | 5h | Flight +6h 55m | 103 |
| 101 | Paris – Vienna1,034 km apart | 12h 10m | 4h 55m | Flight +7h 20m | 96 |
| 102 | Madrid – Paris1,055 km apart | 12h 15m | 4h 55m | Flight +7h 25m | 98 |
| 103 | Rovaniemi – Helsinki705 km apart | 11h 55m | 4h 25m | Flight +7h 30m | 66 |
| 104 | Budapest – Bucharest638 km apart | 15h 35m | 4h 20m | Flight +11h 15m | 60 |
| 105 | Sofia – Belgrade327 km apart | 17h 35m | 3h 55m | Flight +13h 35m | 30 |
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.