Transit EU

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
Vehicle-km per inhabitant
≈ 92 km
Rank 4 of 25

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
435.7M km871.3M kmDec 2025Oct 20262026

Vehicle-km over 12 months: −4% since Dec 2025. All countries →

The largest operators

Map →

By stage

139 Tender notices

By service type

  1. School transport 74
  2. Rail 22
  3. Scheduled public transport 21
  4. Other 13
  5. Demand-responsive 7
  6. Vehicle hire with driver 2

Most active contracting authorities

  1. 1 SBB CFF FFS Infra-Fahrweg 20
  2. 2 Hymexia Sàrl 14
  3. 3 Primarschule Uster 6
  4. 4 Federas Beratung AG 5
  5. 5 Pädagogisches Zentrum für Hören und Sprache HSM 5
  6. 6 Appenzeller Bahnen AG 4
  7. 7 Schulzweckverband Bezirk Affoltern 4
  8. 8 Kanton Luzern, Bildungs- und Kulturdepartement, vertreten durch die Dienststelle Volksschulbildung 4
  9. 9 Verkehrsbetriebe Zürich (VBZ) 3
  10. 10 Matterhorn Gotthard Bahn 3
  11. 11 Einwohnergemeinde Reichenbach, Bahnhofstrasse 30 / Postfach 162, 3713 Reichenbach im Kandertal 2
  12. 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

Methodology & limits →