Punctuality of Swiss public transportSunday 21 December 2025
92.3% of 95,009 trips were on time. The share was lowest at 17:10: 83.7%. Of the busy lines, M2 Genève-Pâquis (lac) – Genève-Quai Gustave Ador (lac) had the lowest share on time: 11.5%.
On time
What counts as on time?
On time means less than 3 minutes late. Only trips with live data count, and only trips that run mostly in Switzerland; cable cars do not count.
92.3%
+1.8 ptsDay before: 90.5% · 95,009 trips with live data
Average delay
+0.9 min
Canceled trips
243
0.3% of the trips
Through the day
The share of the trips on their way that are less than 3 minutes late, every 10 minutes.
- ≥ 95%
- Dashed: Saturday 20 December
- Lowest points
The disruptions of this day were not recorded, so the chart cannot show its incidents.
By mode
-
Train 97.5%
12,452 trips · avg +0.6 min
-
Tram 84%
7,785 trips · avg +1.5 min
-
Bus 92.4%
74,391 trips · avg +0.9 min
-
Metro 100%
221 trips · avg +1.1 min
-
Boat 46.9%
160 trips · avg +4.3 min
The network by punctuality
Each train, tram and metro line in the color of its share on time.
- ≥ 95%
- 90–95%
- 85–90%
- 75–85%
- < 75%
- no data
Least punctual busy lines
-
M2 Genève-Pâquis (lac) – Genève-Quai Gustave Ador (lac)Genève-Pâquis (lac) – Genève-Quai Gustave Ador (lac) 11.5%
96 trips · avg +6.9 min
-
46 trips · avg +4.4 min
-
148 trips · avg +3.5 min
-
149 trips · avg +2.7 min
-
Bus 50 Basel EuroAirport, Verwaltung – Basel, Bahnhof SBBBasel EuroAirport, Verwaltung – Basel, Bahnhof SBB 52.6%
230 trips · avg +3.2 min
-
183 trips · avg +3.1 min
-
164 trips · avg +6.1 min
-
74 trips · avg +2.8 min
Show 17 more
-
57 trips · avg +2.5 min
-
175 trips · avg +2.5 min
-
Tram 8 Basel, Neuweilerstrasse – Weil am Rhein, Bahnhof/ZentrumBasel, Neuweilerstrasse – Weil am Rhein, Bahnhof/Zentrum 65.7%
198 trips · avg +2.7 min
-
166 trips · avg +4.9 min
-
41 trips · avg +3.3 min
-
145 trips · avg +2.2 min
-
76 trips · avg +2 min
-
216 trips · avg +2.1 min
-
61 trips · avg +2.1 min
-
119 trips · avg +2.1 min
-
127 trips · avg +2.2 min
-
Bus 28 Grand-Saconnex, Tunnel Routier – Petit-Lancy, Les EssertsGrand-Saconnex, Tunnel Routier – Petit-Lancy, Les Esserts 69.6%
79 trips · avg +2.4 min
-
89 trips · avg +2 min
-
56 trips · avg +1.7 min
-
Bus 33 Zürich, Triemli – Zürich Tiefenbrunnen, BahnhofZürich, Triemli – Zürich Tiefenbrunnen, Bahnhof 72.1%
222 trips · avg +2.2 min
-
150 trips · avg +2.5 min
-
Bus 80 Zürich, Triemlispital – Zürich Oerlikon, Bahnhof NordZürich, Triemlispital – Zürich Oerlikon, Bahnhof Nord 73.3%
202 trips · avg +2.2 min
Most punctual busy lines
-
221 trips · avg +1.1 min
-
Bus 17 Lausanne, Vigie – Villars-Ste-Croix, Croix-PéageLausanne, Vigie – Villars-Ste-Croix, Croix-Péage 99.5%
193 trips · avg +0.2 min
-
218 trips · avg +0.7 min
-
202 trips · avg +0.3 min
-
202 trips · avg +0.9 min
-
232 trips · avg +0.9 min
-
Bus 1 Winterthur, Oberwinterthur – Winterthur, TössWinterthur, Oberwinterthur – Winterthur, Töss 96.1%
204 trips · avg +1 min
-
204 trips · avg +1 min
Least punctual busy lines
-
56 trips · avg +1.7 min
-
116 trips · avg +3.3 min
-
76 trips · avg +1.6 min
-
44 trips · avg +1.7 min
-
63 trips · avg +1.5 min
-
81 trips · avg +0.8 min
-
41 trips · avg +0.8 min
-
42 trips · avg +1.1 min
Show 17 more
-
85 trips · avg +1.2 min
-
69 trips · avg +1.1 min
-
74 trips · avg +0.8 min
-
77 trips · avg +0.6 min
-
82 trips · avg +1 min
-
83 trips · avg +0.5 min
-
45 trips · avg +0.6 min
-
69 trips · avg +1.2 min
-
73 trips · avg +1 min
-
74 trips · avg +0.4 min
-
51 trips · avg +0.8 min
-
53 trips · avg +0.4 min
-
88 trips · avg +0.5 min
-
104 trips · avg +0.5 min
-
75 trips · avg +0.8 min
-
76 trips · avg +0.3 min
-
80 trips · avg +0.4 min
Most punctual busy lines
-
123 trips · avg +0 min
-
117 trips · avg +0.2 min
-
116 trips · avg +0.1 min
-
116 trips · avg +0.2 min
-
114 trips · avg +0.2 min
-
111 trips · avg +0.3 min
-
93 trips · avg +0.1 min
-
90 trips · avg +0.3 min
Least punctual busy lines
-
Tram 8 Basel, Neuweilerstrasse – Weil am Rhein, Bahnhof/ZentrumBasel, Neuweilerstrasse – Weil am Rhein, Bahnhof/Zentrum 65.7%
198 trips · avg +2.7 min
-
216 trips · avg +2.1 min
-
Tram 14 Basel, Dreirosenbrücke – Pratteln, SchlossstrasseBasel, Dreirosenbrücke – Pratteln, Schlossstrasse 73.4%
199 trips · avg +2.3 min
-
195 trips · avg +2.1 min
-
221 trips · avg +2 min
-
Tram 8 Bern, Saali – Bern Brünnen Westside, BahnhofBern, Saali – Bern Brünnen Westside, Bahnhof 75.7%
230 trips · avg +2.1 min
-
202 trips · avg +2 min
-
193 trips · avg +2.1 min
Show 17 more
-
213 trips · avg +1.9 min
-
193 trips · avg +1.6 min
-
213 trips · avg +1.9 min
-
Tram 2 Binningen, Kronenplatz – Basel, Badischer BahnhofBinningen, Kronenplatz – Basel, Badischer Bahnhof 83.2%
197 trips · avg +1.8 min
-
Tram 7 Stettbach, Bahnhof – Zürich, WollishoferplatzStettbach, Bahnhof – Zürich, Wollishoferplatz 83.6%
213 trips · avg +1.5 min
-
254 trips · avg +1.5 min
-
217 trips · avg +1.2 min
-
Tram 15 Zürich, Bahnhofstrasse/HB – Zürich Tiefenbrunnen, BahnhofZürich, Bahnhofstrasse/HB – Zürich Tiefenbrunnen, Bahnhof 84.6%
208 trips · avg +1.3 min
-
Tram 11 Zürich, Central – Zürich Tiefenbrunnen, BahnhofZürich, Central – Zürich Tiefenbrunnen, Bahnhof 84.8%
210 trips · avg +1.5 min
-
218 trips · avg +1.7 min
-
Tram 9 Wabern, Tram-Endstation – Bern Wankdorf, BahnhofWabern, Tram-Endstation – Bern Wankdorf, Bahnhof 85.8%
254 trips · avg +1.6 min
-
222 trips · avg +1.3 min
-
225 trips · avg +1.6 min
-
Tram 51 Zürich Altstetten, Bahnhof N – Zürich, SeebachZürich Altstetten, Bahnhof N – Zürich, Seebach 86.7%
225 trips · avg +1.6 min
-
149 trips · avg +1.1 min
-
Tram 12 Stettbach, Bahnhof – Zürich Flughafen, FrachtStettbach, Bahnhof – Zürich Flughafen, Fracht 89.6%
154 trips · avg +1.5 min
-
225 trips · avg +1.2 min
Most punctual busy lines
-
122 trips · avg +0.3 min
-
Tram 20 Killwangen, Bahnhof – Zürich Altstetten, BahnhofKillwangen, Bahnhof – Zürich Altstetten, Bahnhof 99.4%
154 trips · avg +0.5 min
-
81 trips · avg +0.4 min
-
217 trips · avg +1.1 min
-
206 trips · avg +1.3 min
-
Tram 10 Zürich Flughafen, Fracht – Zürich, Bahnhofplatz/HBZürich Flughafen, Fracht – Zürich, Bahnhofplatz/HB 91.8%
159 trips · avg +1.1 min
-
157 trips · avg +1.3 min
-
225 trips · avg +1.2 min
Least punctual busy lines
-
46 trips · avg +4.4 min
-
148 trips · avg +3.5 min
-
149 trips · avg +2.7 min
-
Bus 50 Basel EuroAirport, Verwaltung – Basel, Bahnhof SBBBasel EuroAirport, Verwaltung – Basel, Bahnhof SBB 52.6%
230 trips · avg +3.2 min
-
183 trips · avg +3.1 min
-
164 trips · avg +6.1 min
-
74 trips · avg +2.8 min
-
57 trips · avg +2.5 min
Show 17 more
-
175 trips · avg +2.5 min
-
166 trips · avg +4.9 min
-
41 trips · avg +3.3 min
-
145 trips · avg +2.2 min
-
76 trips · avg +2 min
-
61 trips · avg +2.1 min
-
119 trips · avg +2.1 min
-
127 trips · avg +2.2 min
-
Bus 28 Grand-Saconnex, Tunnel Routier – Petit-Lancy, Les EssertsGrand-Saconnex, Tunnel Routier – Petit-Lancy, Les Esserts 69.6%
79 trips · avg +2.4 min
-
89 trips · avg +2 min
-
56 trips · avg +1.7 min
-
Bus 33 Zürich, Triemli – Zürich Tiefenbrunnen, BahnhofZürich, Triemli – Zürich Tiefenbrunnen, Bahnhof 72.1%
222 trips · avg +2.2 min
-
150 trips · avg +2.5 min
-
Bus 80 Zürich, Triemlispital – Zürich Oerlikon, Bahnhof NordZürich, Triemlispital – Zürich Oerlikon, Bahnhof Nord 73.3%
202 trips · avg +2.2 min
-
139 trips · avg +1.9 min
-
136 trips · avg +1.9 min
-
149 trips · avg +2.3 min
Most punctual busy lines
-
Bus 45 Epalinges, Bois-Murat – Lausanne, Chalet-à-GobetEpalinges, Bois-Murat – Lausanne, Chalet-à-Gobet 100%
153 trips · avg +0.3 min
-
Bus 17 Lausanne, Vigie – Villars-Ste-Croix, Croix-PéageLausanne, Vigie – Villars-Ste-Croix, Croix-Péage 99.5%
193 trips · avg +0.2 min
-
154 trips · avg +0.5 min
-
154 trips · avg +0.8 min
-
153 trips · avg +0.3 min
-
152 trips · avg +0.2 min
-
150 trips · avg +0.2 min
-
157 trips · avg +0.3 min
Least punctual operators
-
Mouettes genevoises 46.9%
160 trips · avg +4.3 min
-
Stadtbus Frauenfeld 66.5%
194 trips · avg +3 min
-
BVB 76.6%
3,044 trips · avg +2 min
-
Regionale Verkehrsbetriebe Baden-Wettingen 78.6%
984 trips · avg +1.7 min
-
Transports publics Vevey-Montreux-Chillon-Villeneuve 79.4%
693 trips · avg +3.1 min
-
Zentralbahn AG Ersatzverkehr 79.8%
114 trips · avg +1.7 min
-
TPL 80.4%
1,186 trips · avg +1.6 min
-
Berner Oberland-Bahnen 81.8%
132 trips · avg +1.7 min
Show 17 more
-
TPG 84.6%
5,027 trips · avg +1.4 min
-
Autolinee Regionali Luganesi 86%
136 trips · avg +1.9 min
-
Busbetrieb Olten-Gösgen-Gäu 86.9%
587 trips · avg +1.1 min
-
VBL 87%
2,702 trips · avg +1.4 min
-
VBZ 87.7%
10,664 trips · avg +1.3 min
-
Matterhorn Gotthard Bahn 87.9%
348 trips · avg +2.1 min
-
Busbetrieb Rapperswil-Eschenbach-Rüti ZH 87.9%
141 trips · avg +1.2 min
-
Regiobus Gossau SG 88.3%
223 trips · avg +1.1 min
-
Sierre-Montana-Crans 88.3%
266 trips · avg +1.2 min
-
Bus und Service 88.8%
997 trips · avg +1.1 min
-
Bernmobil 90.2%
3,170 trips · avg +1.3 min
-
Busbetrieb Aarau 90.4%
781 trips · avg +1 min
-
Verkehrsbetrieb LIECHTENSTEINmobil 90.5%
503 trips · avg +1.5 min
-
Montreux-Oberland Bernois 90.6%
127 trips · avg +1 min
-
tl 91%
5,388 trips · avg +1.1 min
-
Stadtbus Winterthur 91.6%
1,471 trips · avg +0.9 min
-
Verkehrsbetrieb der Landschaft Davos 91.7%
373 trips · avg +0.8 min
Most punctual operators
-
Regionalverkehr Bern-Solothurn 100%
424 trips · avg +0.1 min
-
Schweizerische Südostbahn 99.6%
480 trips · avg +0.3 min
-
Sihltal-Zürich-Uetliberg-Bahn 100%
233 trips · avg +0.3 min
-
THURBO 99.1%
1,101 trips · avg +0.3 min
-
Auto AG Schwyz 99.2%
592 trips · avg +0.2 min
-
Zentralbahn 99.6%
280 trips · avg +0.1 min
-
Appenzeller Bahnen 99.6%
276 trips · avg +0.3 min
-
BLS 98.5%
1,415 trips · avg +0.4 min
Stations
The share of the departures less than 3 minutes late. A train station has departures of trains.
-
Zürich HB 98%
1,641 departures · avg +0.8 min
-
Bern 98%
921 departures · avg +0.8 min
-
Zürich Oerlikon 97.6%
858 departures · avg +0.8 min
-
Zürich Stadelhofen 98.2%
716 departures · avg +0.9 min
-
Winterthur 98.4%
699 departures · avg +0.7 min
-
Zürich Hardbrücke 95.9%
690 departures · avg +1.6 min
-
Olten 96.5%
606 departures · avg +0.9 min
-
Lausanne 94.5%
545 departures · avg +1.2 min
-
Renens VD 96.2%
504 departures · avg +1 min
-
Aarau 96.9%
483 departures · avg +0.8 min
-
St. Gallen 95.1%
467 departures · avg +1 min
-
Luzern 99.3%
447 departures · avg +0.6 min
-
Bern, Bahnhof 96.2%
2,132 departures · avg +1 min
-
Luzern, Kantonalbank 90.5%
1,787 departures · avg +1.3 min
-
Genève, gare Cornavin 87.4%
1,763 departures · avg +1.4 min
-
1,727 departures · avg +2.3 min
-
Genève, Bel-Air 87.2%
1,697 departures · avg +1.4 min
-
Bern, Hirschengraben 92.6%
1,656 departures · avg +1.4 min
-
Zürich HB 98%
1,641 departures · avg +0.8 min
-
Luzern, Bahnhof 95.5%
1,608 departures · avg +0.9 min
-
Bern, Zytglogge 92.4%
1,528 departures · avg +1.5 min
-
Zürich, Central 92.6%
1,521 departures · avg +1.3 min
-
Basel, Schifflände 82.3%
1,464 departures · avg +1.9 min
-
1,382 departures · avg +1 min
-
Matten b. Interlaken 70.8%
130 departures · avg +2.3 min
-
Wilderswil 73.1%
130 departures · avg +2.1 min
-
Zweilütschinen 78.8%
118 departures · avg +2 min
-
Muhen Nord 79.1%
110 departures · avg +1.6 min
-
110 departures · avg +1.5 min
-
Martigny 86.7%
181 departures · avg +1.4 min
-
Como S. Giovanni 87.1%
101 departures · avg +2.3 min
-
Zug 87.6%
340 departures · avg +1.7 min
-
Pully 89.4%
161 departures · avg +1.5 min
-
Kilchberg ZH 89.5%
162 departures · avg +1.3 min
-
Baar 89.6%
163 departures · avg +1.5 min
-
Payerne 89.8%
137 departures · avg +1.4 min
Largest delays
- ICE Basel Bad Bfand 2 more trips of this line +73 min
- Bus 23 Landquart, Bahnhof – Untervaz, Bahnhof Landquart, Bahnhof +73 min
- S41 Lausanne +68 min
- EC Zürich HBand 1 more trips of this line +68 min
- Bus 4 Prilly, Coudraie – Lausanne, Faverges Favergesand 5 more trips of this line +63 min
- Bus 201 Vevey, funiculaire – Rennaz, village Rennaz, villageand 1 more trips of this line +56 min
- Bus 204 Montreux, casino – Chailly-Montreux, P+R Chailly-Montreux, P+R +55 min
- Bus 129 Balsthal, Bahnhof – Gänsbrunnen, Bahnhof Oensingen, Bahnhof +53 min
- Bus 2 Lausanne, Désert – Lausanne, Epinettes Désertand 1 more trips of this line +51 min
- Bus 1 Lausanne, Blécherette – Lausanne, Maladière Maladière +51 min