Public transport in Switzerland
Switzerland: 376 public transport operators, 832.4M km of scheduled service a year, 2,043 major stations and 139 tender notices — per region and operator.
- Operators
- 376
- Vehicle-km / year
- ≈ 832.4M km
- Vehicles (peak)
- ≈ 8,240
- Trips / week
- 1.9M
- Stations*
- 2,043
- Tender notices
- 139
- Open procedures
- 63
Estimates from the scheduled timetables (one representative week per feed). *Stations with a page of their own. Methodology →
Switzerland over time
6 snapshots · Dec 2025 – Oct 2026
832.4M km ↓ −4% since Dec 2025
Vehicle-km over 12 months: −4% since Dec 2025. All countries →
The largest operators
Map →Vehicle-km / year
- 1 Schweizerische Bundesbahnen SBB 146M km
- 2 PostAuto AG 135.6M km
- 3 Transports Publics Genevois 38.7M km
- 4 BLS AG (bls) 23.4M km
- 5 Verkehrsbetriebe Zürich 22.3M km
- 6 Transports Publics de la Région Lausannoise sa 18.6M km
- 7 Basler Verkehrsbetriebe 15.2M km
- 8 Cassons AG 14.6M km
- 9 Service d'automobiles TPF 14.4M km
- 10 Städtische Verkehrsbetriebe Bern 12.8M km
- 11 Verkehrsbetriebe Luzern AG 9.8M km
- 12 Bus Ostschweiz 9.1M km
- 13 Zugerland Verkehrsbetriebe 8.6M km
- 14 Rhätische Bahn 8.2M km
- 15 Verkehrsbetriebe Zürichsee und Oberland 7.5M km
Share of vehicle-km
44% Top 5 operators
Other 466.3M km 56%
Routes by mode
3,758 routes
Bus 2,710 72%
Rail 606 16%
Other 303 8.1%
Ferry 90 2.4%
Tram 47 1.3%
Metro 2 <0.1%
Regions
NUTS-3 regions by the service run inside them.
- Zürich Operators 34 110.3M km
- Bern Operators 87 100.5M km
- Vaud Operators 42 64.7M km
- Graubünden Operators 53 61.5M km
- St. Gallen Operators 34 56.3M km
- Valais Operators 63 51.8M km
- Aargau Operators 26 42.5M km
- Genève Operators 13 42.1M km
- Luzern Operators 22 38.7M km
- Ticino Operators 27 32.3M km
- Freiburg Operators 13 25.7M km
- Basel-Landschaft Operators 10 22.7M km
- Solothurn Operators 18 20.3M km
- Basel-Stadt Operators 15 18.5M km
- Schwyz Operators 28 15.7M km
Busiest stations
By scheduled departures per day.
- Genève, gare Cornavin 2,906 departures/day
- Bern, Bahnhof 2,845 departures/day
- Segnes 2,825 departures/day
- Genève, Bel-Air 2,810 departures/day
- Lausanne, Bel-Air 2,289 departures/day
- Flims Dorf (Talstation Foppa) 2,284 departures/day
- Nagens Sura 2,284 departures/day
- Foppa 2,284 departures/day
- Startgels 2,284 departures/day
- Zürich, Central 2,216 departures/day
- Basel, Schifflände 2,160 departures/day
- Bern, Hirschengraben 2,159 departures/day
- Luzern, Kantonalbank 2,156 departures/day
- Bern, Zytglogge 2,083 departures/day
- Zürich, Bellevue 2,022 departures/day
Tender market
By stage
139 Tender notices
Prior information 0 0%
Call for tenders 63 45%
Award 76 55%
By service type
- School transport 74
- Rail 22
- Scheduled public transport 21
- Other 13
- Demand-responsive 7
- Vehicle hire with driver 2
Most active contracting authorities
- 1 SBB CFF FFS Infra-Fahrweg 20
- 2 Hymexia Sàrl 14
- 3 Primarschule Uster 6
- 4 Federas Beratung AG 5
- 5 Pädagogisches Zentrum für Hören und Sprache HSM 5
- 6 Appenzeller Bahnen AG 4
- 7 Schulzweckverband Bezirk Affoltern 4
- 8 Kanton Luzern, Bildungs- und Kulturdepartement, vertreten durch die Dienststelle Volksschulbildung 4
- 9 Verkehrsbetriebe Zürich (VBZ) 3
- 10 Matterhorn Gotthard Bahn 3
- 11 Einwohnergemeinde Reichenbach, Bahnhofstrasse 30 / Postfach 162, 3713 Reichenbach im Kandertal 2
- 12 PostAuto AG / PA23 2
How we calculate
- 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
- 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 (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
- Trips / week Unit: trips per week · counted
- All scheduled trips in the representative week; trips given as a frequency (every 10 minutes) are expanded into single trips. 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
- 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
- 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
- Open procedures Unit: notices · as published
- Prior information notices and calls for tenders — notices that do not announce an award. 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