Countries compared
Absolute figures follow the size of a country. Per inhabitant they become comparable — as far as a country's timetables are complete. As of 2026-10.
All compared countries together: 39 km per inhabitant a year
Vehicle-km per inhabitant
IS 40 kmNO 84 kmSE 99 kmFI 40 kmIE 51 kmDK 57 kmEE 91 kmNL 45 kmDE 45 kmPL 25 kmLV 70 kmBE 21 kmLU 172 kmCZ 75 km
SK
LT 63 kmFR 39 kmCH 92 kmLI 107 kmAT
HU 60 kmRO 17 kmPT 21 kmES 33 kmIT 13 kmSI 47 kmHR
BG
MT
GR
CY 35 km- 1 Luxembourg 172 km
- 2 Liechtenstein 107 km
- 3 Sweden 99 km
- 4 Switzerland 92 km
- 5 Estonia 91 km
- 6 Norway 84 km
- 7 Czechia 75 km
- 8 Latvia 70 km
- 9 Lithuania 63 km
- 10 Hungary 60 km
- 11 Denmark 57 km
- 12 Ireland 51 km
- 13 Slovenia 47 km
- 14 Netherlands 45 km
- 15 Germany 45 km
- 16 Finland 40 km
- 17 Iceland 40 km
- 18 France 39 km
- 19 Cyprus 35 km
- 20 Spain 33 km
- 21 Poland 25 km
- 22 Portugal 21 km
- 23 Belgium 21 km
- 24 Romania 17 km
- 25 Italy 13 km
Not compared per inhabitant because their timetables cover only part of the country: Austria, Bulgaria, Slovakia, Croatia. Population on 1 January 2025 and area from Eurostat.
All countries
| Country | Operators | Vehicle-km / yr | km / inhabitant | Vehicles | Stations* | Tenders | Value (€) |
|---|---|---|---|---|---|---|---|
| Germany | 1,183 | 3.8B km | 45 | 47,617 | 8,557 | 5,205 · 3,344 open | €11.4B |
| France | 571 | 2.7B km | 39.4 | 37,988 | 6,587 | 3,116 · 1,974 open | €94.0B |
| Spain | 371 | 1.6B km | 33.3 | 15,811 | 3,624 | 1,922 · 1,008 open | €11.1B |
| Sweden | 83 | 1B km | 98.7 | 8,478 | 1,656 | 688 · 445 open | €3.5M |
| Poland | 69 | 902.9M km | 24.7 | 7,256 | 3,230 | 3,714 · 2,477 open | €8.5B |
| Switzerland | 376 | 832.4M km | 92 | 8,240 | 2,043 | 139 · 63 open | – |
| Czechia | 284 | 820.8M km | 75.2 | 8,554 | 1,672 | 630 · 346 open | €2.8B |
| Netherlands | 35 | 812.9M km | 45.1 | 5,420 | 1,290 | 418 · 262 open | €18.9B |
| Italy | 166 | 787.3M km | 13.4 | 9,905 | 2,761 | 1,802 · 1,030 open | €23.3B |
| Hungary | 69 | 567.6M km | 59.5 | 5,684 | 1,279 | 177 · 67 open | €48.9B |
| Norway | 45 | 471.9M km | 84.4 | 5,279 | 1,000 | 510 · 362 open | €538.7M |
| Denmark | 20 | 338.7M km | 56.5 | 2,975 | 1,000 | 442 · 147 open | €6.9B |
| Romania | 28 | 320M km | 16.8 | 3,583 | 1,274 | 395 · 196 open | €196.0M |
| Ireland | 104 | 279.3M km | 51.3 | 2,371 | 1,000 | 275 · 144 open | €37.0B |
| Belgium | 10 | 250.5M km | 21.1 | 2,335 | 1,000 | 271 · 182 open | €480.6M |
| Portugal | 24 | 226.9M km | 21.1 | 2,860 | 1,000 | 438 · 267 open | €2.8B |
| Finland | 73 | 224.3M km | 39.8 | 2,228 | 1,000 | 1,642 · 466 open | €4.5B |
| Lithuania | 55 | 180.8M km | 62.5 | 1,998 | 1,000 | 262 · 132 open | €280.0M |
| Latvia | 27 | 130.3M km | 70 | 1,249 | 1,000 | 340 · 200 open | €422.5M |
| Estonia | 58 | 124.8M km | 91.1 | 1,227 | 1,000 | 180 · 116 open | €768.5M |
| Austria | 8 | 122.9M km | – | 1,393 | 1,000 | 287 · 174 open | €2.0B |
| Luxembourg | 7 | 117M km | 171.5 | 1,120 | 1,000 | 78 · 53 open | €24.5M |
| Slovenia | 10 | 99.2M km | 46.6 | 971 | 1,000 | 368 · 212 open | €176.3M |
| Bulgaria | 3 | 70.8M km | – | 703 | 1,000 | 791 · 321 open | €4.5B |
| Slovakia | 5 | 50.5M km | – | 538 | 978 | 171 · 63 open | €7.4B |
| Cyprus | 7 | 34.9M km | 35.5 | 349 | 1,000 | 36 · 31 open | €22.8M |
| Croatia | 4 | 17.6M km | – | 90 | 93 | 409 · 174 open | €1.5B |
| Iceland | 3 | 15.4M km | 39.5 | 155 | 569 | 46 · 31 open | – |
| Liechtenstein | 1 | 4.4M km | 106.6 | 44 | 130 | 7 · 5 open | €1.1M |
| Greece | – | – | – | – | – | 423 · 157 open | €26.2B |
| Malta | – | – | – | – | – | 50 · 24 open | €874.3M |
- Germany 1,183 operators · 3.8B km/yr · 8,557 stations* ·5,205 tenders (3,344 open)
- France 571 operators · 2.7B km/yr · 6,587 stations* ·3,116 tenders (1,974 open)
- Spain 371 operators · 1.6B km/yr · 3,624 stations* ·1,922 tenders (1,008 open)
- Sweden 83 operators · 1B km/yr · 1,656 stations* ·688 tenders (445 open)
- Poland 69 operators · 902.9M km/yr · 3,230 stations* ·3,714 tenders (2,477 open)
- Switzerland 376 operators · 832.4M km/yr · 2,043 stations* ·139 tenders (63 open)
- Czechia 284 operators · 820.8M km/yr · 1,672 stations* ·630 tenders (346 open)
- Netherlands 35 operators · 812.9M km/yr · 1,290 stations* ·418 tenders (262 open)
- Italy 166 operators · 787.3M km/yr · 2,761 stations* ·1,802 tenders (1,030 open)
- Hungary 69 operators · 567.6M km/yr · 1,279 stations* ·177 tenders (67 open)
- Norway 45 operators · 471.9M km/yr · 1,000 stations* ·510 tenders (362 open)
- Denmark 20 operators · 338.7M km/yr · 1,000 stations* ·442 tenders (147 open)
- Romania 28 operators · 320M km/yr · 1,274 stations* ·395 tenders (196 open)
- Ireland 104 operators · 279.3M km/yr · 1,000 stations* ·275 tenders (144 open)
- Belgium 10 operators · 250.5M km/yr · 1,000 stations* ·271 tenders (182 open)
- Portugal 24 operators · 226.9M km/yr · 1,000 stations* ·438 tenders (267 open)
- Finland 73 operators · 224.3M km/yr · 1,000 stations* ·1,642 tenders (466 open)
- Lithuania 55 operators · 180.8M km/yr · 1,000 stations* ·262 tenders (132 open)
- Latvia 27 operators · 130.3M km/yr · 1,000 stations* ·340 tenders (200 open)
- Estonia 58 operators · 124.8M km/yr · 1,000 stations* ·180 tenders (116 open)
- Austria 8 operators · 122.9M km/yr · 1,000 stations* ·287 tenders (174 open)
- Luxembourg 7 operators · 117M km/yr · 1,000 stations* ·78 tenders (53 open)
- Slovenia 10 operators · 99.2M km/yr · 1,000 stations* ·368 tenders (212 open)
- Bulgaria 3 operators · 70.8M km/yr · 1,000 stations* ·791 tenders (321 open)
- Slovakia 5 operators · 50.5M km/yr · 978 stations* ·171 tenders (63 open)
- Cyprus 7 operators · 34.9M km/yr · 1,000 stations* ·36 tenders (31 open)
- Croatia 4 operators · 17.6M km/yr · 93 stations* ·409 tenders (174 open)
- Iceland 3 operators · 15.4M km/yr · 569 stations* ·46 tenders (31 open)
- Liechtenstein 1 operators · 4.4M km/yr · 130 stations* ·7 tenders (5 open)
- Greece 423 tenders (157 open)
- Malta 50 tenders (24 open)
Timetable figures from each country's public GTFS feeds, "–" where no feed is loaded yet. *Stations with a page of their own. Tenders = notices in TED (EU Official Journal) since 06/2024, plus the German national portal; values only where published in euro — złoty, kronor and forint are not converted.
How we calculate
- Vehicle-km per inhabitant Unit: km per inhabitant and year · estimate
- Vehicle-km per year of all operators in the country ÷ its population. Only countries whose timetables cover the whole country; the figure for all countries together is their vehicle-km ÷ their population. Source: published GTFS timetables, one representative week per feed; Eurostat, population on 1 January 2025
- Vehicle-km / year Unit: km per year · estimate
- For every trip: route length (along the published route shape; without one, the straight line between its stops × 1.25) × the days it runs in the representative week, × 365.25 / 7. Only scheduled service — no empty or depot runs, no demand-responsive services. Source: published GTFS timetables, one representative week per feed
- Vehicles per 100,000 inhabitants Unit: vehicles · estimate
- Vehicles (peak) of all operators in the country ÷ its population × 100,000. Only countries whose timetables cover the whole country. Source: published GTFS timetables, one representative week per feed; Eurostat, population on 1 January 2025
- Stations per 100 km² Unit: stations per 100 km² · counted
- Stations with at least one scheduled departure a day (average of the representative week) ÷ the country's area × 100. Stops with the same name within about 300 m count as one station. Only countries whose timetables cover the whole country. Source: published GTFS timetables, one representative week per feed; Eurostat, total area
- Operators Unit: operators · counted
- Transport companies as their timetable names them (GTFS agency). The same operator in several feeds is counted once; in Germany the company that actually runs each line. Source: published GTFS timetables, one representative week per feed
- Vehicles (peak) Unit: vehicles · estimate
- The highest number of trips running at the same moment in the representative week — a lower bound: reserve and workshop vehicles are not included. Source: published GTFS timetables, one representative week per feed
- Stations* Unit: stations · counted
- Stations with a page of their own: at least 250 scheduled departures a day, or among a country's busiest 1,000 with at least 30. Capped per country, so not comparable between countries. Source: published GTFS timetables, one representative week per feed
- Tender notices Unit: notices · counted
- Every published notice counts once: prior information, call for tenders or award notice. Source: TED (EU Official Journal) since 06/2024 and the German national portal
- Value (€) Unit: € · as published
- Sum of the contract values stated in the notices, in euro only; other currencies are neither converted nor added. Many notices state no value, so the sum is a lower bound. Source: TED (EU Official Journal) since 06/2024 and the German national portal