Punctuality of Swiss public transportWeek 286 Jul – 12 Jul 2026
88.4% of 982,323 trips were on time. The best day was Sunday 12 July with 91.6%, the worst Thursday 9 July with 87%. Of the busy lines, Bus 101 Cormondrèche, Grand'Rue – Marin-Epagnier, gare had the lowest share on time: 17%.
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.
88.4%
+2.1 ptsWeek before: 86.3% · 982,323 trips with live data
Average delay
+1.3 min
Canceled trips
5,431
0.5% of the trips
Day by day
The share on time of each day. A day opens its page.
- 95%
- Average: 88.4%
- Best day
- Sun 12 Jul · 91.6%
- Worst day
- Thu 9 Jul · 87%
- Worst hour
- Tue 17:00–18:00 · 72.6%
By mode
-
Train 94.8%
97,882 trips · avg +0.8 min
-
Tram 82.8%
87,385 trips · avg +1.8 min
-
Bus 88.4%
792,134 trips · avg +1.2 min
-
Metro 93.7%
1,982 trips · avg +1.2 min
-
Boat 49.8%
2,940 trips · avg +4 min
Hour by hour
The share of the trips on their way that are less than 3 minutes late, each hour. A day opens its page.
- ≥ 95%
- 90–95%
- 85–90%
- 75–85%
- < 75%
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
-
Bus 101 Cormondrèche, Grand'Rue – Marin-Epagnier, gareCormondrèche, Grand'Rue – Marin-Epagnier, gare 17%
1,064 trips · avg +5.7 min
-
412 trips · avg +8.1 min
-
M2 Genève-Pâquis (lac) – Genève-Quai Gustave Ador (lac)Genève-Pâquis (lac) – Genève-Quai Gustave Ador (lac) 32%
1,098 trips · avg +5.3 min
-
648 trips · avg +5.5 min
-
1,098 trips · avg +4.9 min
-
595 trips · avg +4.6 min
-
517 trips · avg +4.7 min
-
Bus 68 Thoiry, Centre commercial – Vernier, BlandonnetThoiry, Centre commercial – Vernier, Blandonnet 44%
788 trips · avg +4.9 min
Show 17 more
-
589 trips · avg +4.8 min
-
Bus 109 Neuchâtel, Place Pury – Neuchâtel, Trois-ChênesNeuchâtel, Place Pury – Neuchâtel, Trois-Chênes 47.9%
1,313 trips · avg +3.3 min
-
1,521 trips · avg +4.4 min
-
1,246 trips · avg +4.2 min
-
335 trips · avg +3.3 min
-
925 trips · avg +3.5 min
-
Bus 16 Lausanne, Grand Vennes – Lausanne, Provence nordLausanne, Grand Vennes – Lausanne, Provence nord 55.9%
1,040 trips · avg +3.4 min
-
Bus 165 Rüschlikon, Park im Grüene – Zürich, BürkliplatzRüschlikon, Park im Grüene – Zürich, Bürkliplatz 57%
755 trips · avg +3.2 min
-
1,237 trips · avg +3.4 min
-
1,171 trips · avg +2.8 min
-
Bus 6 Lausanne, Maladière – Lausanne, Praz-SéchaudLausanne, Maladière – Lausanne, Praz-Séchaud 60.6%
1,398 trips · avg +4.1 min
-
Tram 8 Basel, Neuweilerstrasse – Weil am Rhein, Bahnhof/ZentrumBasel, Neuweilerstrasse – Weil am Rhein, Bahnhof/Zentrum 61.6%
466 trips · avg +3.1 min
-
977 trips · avg +2.8 min
-
816 trips · avg +3.2 min
-
1,848 trips · avg +2.5 min
-
Bus 122 Grindelwald, Gletscherschlucht – Grindelwald, KlusiGrindelwald, Gletscherschlucht – Grindelwald, Klusi 62.7%
308 trips · avg +3 min
-
Bus 22 Carouge GE, Rondeau – Genève, Jardin BotaniqueCarouge GE, Rondeau – Genève, Jardin Botanique 62.9%
480 trips · avg +2.8 min
Most punctual busy lines
-
2,041 trips · avg +0.7 min
-
1,458 trips · avg +0.5 min
-
1,628 trips · avg +0.7 min
-
Bus 1 Schaffhausen, Waldfriedhof – Neuhausen, HerbstäckerSchaffhausen, Waldfriedhof – Neuhausen, Herbstäcker 96.9%
1,326 trips · avg +0.8 min
-
1,374 trips · avg +0.7 min
-
2,172 trips · avg +1 min
-
Bus 30 Basel, Badischer Bahnhof – Basel, Bahnhof SBBBasel, Badischer Bahnhof – Basel, Bahnhof SBB 95.4%
1,929 trips · avg +0.7 min
-
1,336 trips · avg +0.7 min
Least punctual busy lines
-
426 trips · avg +8.1 min
-
552 trips · avg +2.3 min
-
406 trips · avg +1.6 min
-
725 trips · avg +1.3 min
-
474 trips · avg +0.9 min
-
405 trips · avg +1.2 min
-
524 trips · avg +1.4 min
-
749 trips · avg +1 min
Show 17 more
-
369 trips · avg +1.3 min
-
359 trips · avg +1 min
-
496 trips · avg +0.7 min
-
498 trips · avg +0.9 min
-
448 trips · avg +0.7 min
-
282 trips · avg +1 min
-
552 trips · avg +0.8 min
-
539 trips · avg +0.9 min
-
287 trips · avg +0.6 min
-
415 trips · avg +1.1 min
-
862 trips · avg +0.9 min
-
336 trips · avg +0.9 min
-
763 trips · avg +0.6 min
-
817 trips · avg +0.9 min
-
808 trips · avg +0.8 min
-
462 trips · avg +0.5 min
-
505 trips · avg +0.9 min
Most punctual busy lines
-
406 trips · avg +0.1 min
-
451 trips · avg +0.2 min
-
866 trips · avg +0.4 min
-
378 trips · avg +0.1 min
-
444 trips · avg +0.3 min
-
498 trips · avg +0.3 min
-
757 trips · avg +0.2 min
-
608 trips · avg +0.4 min
Least punctual busy lines
-
Tram 8 Basel, Neuweilerstrasse – Weil am Rhein, Bahnhof/ZentrumBasel, Neuweilerstrasse – Weil am Rhein, Bahnhof/Zentrum 61.6%
466 trips · avg +3.1 min
-
1,848 trips · avg +2.5 min
-
1,833 trips · avg +2.2 min
-
1,851 trips · avg +1.7 min
-
1,890 trips · avg +2.3 min
-
1,077 trips · avg +2.2 min
-
1,915 trips · avg +1.6 min
-
3,500 trips · avg +1.4 min
Show 14 more
-
1,860 trips · avg +1.5 min
-
2,317 trips · avg +1.6 min
-
351 trips · avg +1.4 min
-
1,947 trips · avg +1.4 min
-
1,872 trips · avg +1.7 min
-
1,990 trips · avg +1.2 min
-
Tram 51 Zürich Altstetten, Bahnhof N – Zürich, SeebachZürich Altstetten, Bahnhof N – Zürich, Seebach 91%
2,009 trips · avg +1.2 min
-
Tram 7 Stettbach, Bahnhof – Zürich, WollishoferplatzStettbach, Bahnhof – Zürich, Wollishoferplatz 91.8%
464 trips · avg +1.2 min
-
Tram 11 Zürich, Central – Zürich Tiefenbrunnen, BahnhofZürich, Central – Zürich Tiefenbrunnen, Bahnhof 92.6%
457 trips · avg +1 min
-
Tram 10 Zürich Flughafen, Fracht – Zürich, Bahnhofplatz/HBZürich Flughafen, Fracht – Zürich, Bahnhofplatz/HB 92.9%
411 trips · avg +1.1 min
-
1,771 trips · avg +0.9 min
-
1,819 trips · avg +0.9 min
-
1,790 trips · avg +1.1 min
-
Tram 20 Killwangen, Bahnhof – Zürich Altstetten, BahnhofKillwangen, Bahnhof – Zürich Altstetten, Bahnhof 98%
1,085 trips · avg +0.7 min
Most punctual busy lines
-
Tram 20 Killwangen, Bahnhof – Zürich Altstetten, BahnhofKillwangen, Bahnhof – Zürich Altstetten, Bahnhof 98%
1,085 trips · avg +0.7 min
-
1,790 trips · avg +1.1 min
-
1,819 trips · avg +0.9 min
-
1,771 trips · avg +0.9 min
-
Tram 10 Zürich Flughafen, Fracht – Zürich, Bahnhofplatz/HBZürich Flughafen, Fracht – Zürich, Bahnhofplatz/HB 92.9%
411 trips · avg +1.1 min
-
Tram 11 Zürich, Central – Zürich Tiefenbrunnen, BahnhofZürich, Central – Zürich Tiefenbrunnen, Bahnhof 92.6%
457 trips · avg +1 min
-
Tram 7 Stettbach, Bahnhof – Zürich, WollishoferplatzStettbach, Bahnhof – Zürich, Wollishoferplatz 91.8%
464 trips · avg +1.2 min
-
Tram 51 Zürich Altstetten, Bahnhof N – Zürich, SeebachZürich Altstetten, Bahnhof N – Zürich, Seebach 91%
2,009 trips · avg +1.2 min
Least punctual busy lines
-
Bus 101 Cormondrèche, Grand'Rue – Marin-Epagnier, gareCormondrèche, Grand'Rue – Marin-Epagnier, gare 17%
1,064 trips · avg +5.7 min
-
412 trips · avg +8.1 min
-
648 trips · avg +5.5 min
-
595 trips · avg +4.6 min
-
517 trips · avg +4.7 min
-
Bus 68 Thoiry, Centre commercial – Vernier, BlandonnetThoiry, Centre commercial – Vernier, Blandonnet 44%
788 trips · avg +4.9 min
-
589 trips · avg +4.8 min
-
Bus 109 Neuchâtel, Place Pury – Neuchâtel, Trois-ChênesNeuchâtel, Place Pury – Neuchâtel, Trois-Chênes 47.9%
1,313 trips · avg +3.3 min
Show 17 more
-
1,521 trips · avg +4.4 min
-
1,246 trips · avg +4.2 min
-
335 trips · avg +3.3 min
-
925 trips · avg +3.5 min
-
Bus 16 Lausanne, Grand Vennes – Lausanne, Provence nordLausanne, Grand Vennes – Lausanne, Provence nord 55.9%
1,040 trips · avg +3.4 min
-
Bus 165 Rüschlikon, Park im Grüene – Zürich, BürkliplatzRüschlikon, Park im Grüene – Zürich, Bürkliplatz 57%
755 trips · avg +3.2 min
-
1,237 trips · avg +3.4 min
-
1,171 trips · avg +2.8 min
-
Bus 6 Lausanne, Maladière – Lausanne, Praz-SéchaudLausanne, Maladière – Lausanne, Praz-Séchaud 60.6%
1,398 trips · avg +4.1 min
-
977 trips · avg +2.8 min
-
816 trips · avg +3.2 min
-
Bus 122 Grindelwald, Gletscherschlucht – Grindelwald, KlusiGrindelwald, Gletscherschlucht – Grindelwald, Klusi 62.7%
308 trips · avg +3 min
-
Bus 22 Carouge GE, Rondeau – Genève, Jardin BotaniqueCarouge GE, Rondeau – Genève, Jardin Botanique 62.9%
480 trips · avg +2.8 min
-
1,022 trips · avg +2.7 min
-
Bus 33 Zürich, Triemli – Zürich Tiefenbrunnen, BahnhofZürich, Triemli – Zürich Tiefenbrunnen, Bahnhof 63.4%
2,001 trips · avg +2.8 min
-
Bus 61 Wallisellen, Glatt (Bus) – Zürich, MühlackerWallisellen, Glatt (Bus) – Zürich, Mühlacker 63.6%
1,062 trips · avg +2.6 min
-
Bus 163 Kilchberg ZH, Bahnhof – Kilchberg ZH, Schlimbergstr.Kilchberg ZH, Bahnhof – Kilchberg ZH, Schlimbergstr. 63.6%
500 trips · avg +2.4 min
Most punctual busy lines
-
1,263 trips · avg +0.6 min
-
1,304 trips · avg +0.4 min
-
1,458 trips · avg +0.5 min
-
1,292 trips · avg +0.5 min
-
1,628 trips · avg +0.7 min
-
1,270 trips · avg +0.6 min
-
1,285 trips · avg +0.8 min
-
Bus 1 Schaffhausen, Waldfriedhof – Neuhausen, HerbstäckerSchaffhausen, Waldfriedhof – Neuhausen, Herbstäcker 96.9%
1,326 trips · avg +0.8 min
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) 32%
1,098 trips · avg +5.3 min
-
1,098 trips · avg +4.9 min
-
372 trips · avg +0.7 min
-
M4 Genève-Port Noir (lac) – Genève-De-Châteaubriand (lac)Genève-Port Noir (lac) – Genève-De-Châteaubriand (lac) 99.5%
372 trips · avg +0.6 min
Least punctual operators
-
Mouettes genevoises 49.8%
2,940 trips · avg +4 min
-
TPG 68.4%
59,570 trips · avg +2.9 min
-
Berner Oberland-Bahnen 74.4%
958 trips · avg +2 min
-
Autobetrieb Sernftal 76.5%
830 trips · avg +2.2 min
-
VBL 76.9%
25,020 trips · avg +2 min
-
Transports Publics Neuchâtelois 78%
17,709 trips · avg +1.8 min
-
Forchbahn 79.5%
1,077 trips · avg +2.2 min
-
TPL 79.8%
10,367 trips · avg +1.8 min
Show 17 more
-
Busbetrieb Rapperswil-Eschenbach-Rüti ZH 79.8%
1,895 trips · avg +1.8 min
-
tl 80.2%
43,683 trips · avg +2 min
-
Verkehrsbetrieb LIECHTENSTEINmobil 80.8%
5,348 trips · avg +1.9 min
-
BVB 81.4%
33,999 trips · avg +1.8 min
-
Transports publics Vevey-Montreux-Chillon-Villeneuve 83.6%
8,502 trips · avg +1.5 min
-
Bus und Service 83.9%
10,174 trips · avg +1.5 min
-
VBZ 85.2%
107,754 trips · avg +1.5 min
-
Busbetrieb Aarau 85.3%
6,332 trips · avg +1.4 min
-
Automobil Rottal 85.8%
2,902 trips · avg +1.3 min
-
AFA Bus 86.1%
1,629 trips · avg +1.2 min
-
Auto AG Rothenburg 86.5%
4,917 trips · avg +1.4 min
-
Matterhorn Gotthard Bahn 87.5%
2,161 trips · avg +1.2 min
-
Verkehrsbetriebe Biel 87.7%
8,979 trips · avg +1.3 min
-
Sierre-Montana-Crans 87.8%
1,584 trips · avg +1.2 min
-
Bernmobil 88.4%
39,262 trips · avg +1.3 min
-
Stadtbus Frauenfeld 88.8%
3,522 trips · avg +1.5 min
-
Busbetrieb Solothurn und Umgebung 89.4%
4,788 trips · avg +1.1 min
Most punctual operators
-
Regionalverkehr Bern-Solothurn 98.9%
3,937 trips · avg +0.3 min
-
Sihltal-Zürich-Uetliberg-Bahn 98.9%
1,790 trips · avg +0.4 min
-
Aare Seeland mobil 98.7%
2,219 trips · avg +0.3 min
-
THURBO 98.2%
7,783 trips · avg +0.3 min
-
Schweizerische Südostbahn 98.3%
3,553 trips · avg +0.4 min
-
BLS 97.2%
10,796 trips · avg +0.5 min
-
Zentralbahn 97.5%
2,489 trips · avg +0.4 min
-
Autolinee Regionali Luganesi 97.6%
1,358 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 95.4%
10,718 departures · avg +1.1 min
-
Bern 96.8%
7,246 departures · avg +1 min
-
Zürich Oerlikon 96.1%
6,145 departures · avg +1 min
-
Zürich Stadelhofen 95.1%
4,904 departures · avg +1.1 min
-
Winterthur 95.5%
4,868 departures · avg +1.1 min
-
Zürich Hardbrücke 88.6%
4,590 departures · avg +1.9 min
-
Olten 91.6%
4,019 departures · avg +1.5 min
-
St. Gallen 95.4%
3,663 departures · avg +1.1 min
-
Aarau 94.9%
3,613 departures · avg +1 min
-
Lausanne 91.2%
3,592 departures · avg +1.4 min
-
Luzern 97.7%
3,256 departures · avg +0.8 min
-
Worblaufen 98.2%
3,158 departures · avg +0.8 min
-
Genève, gare Cornavin 68.5%
17,186 departures · avg +2.7 min
-
Genève, Bel-Air 64.1%
15,404 departures · avg +3.5 min
-
14,990 departures · avg +1.8 min
-
Zürich, Central 93.5%
14,878 departures · avg +1.1 min
-
Luzern, Kantonalbank 81.6%
14,525 departures · avg +1.8 min
-
Bern, Bahnhof 93.5%
13,662 departures · avg +1.2 min
-
Lausanne, Bel-Air 61.7%
13,049 departures · avg +3.2 min
-
Zürich, Bellevue 91.5%
12,982 departures · avg +1.3 min
-
Luzern, Bahnhof 89.9%
12,953 departures · avg +1.3 min
-
Bern, Zytglogge 92.7%
12,946 departures · avg +1.3 min
-
12,700 departures · avg +1.2 min
-
St. Gallen, Bahnhof 94.3%
12,207 departures · avg +1 min
-
Wilderswil 70.8%
944 departures · avg +2.5 min
-
944 departures · avg +2.4 min
-
Gelterkinden 73.9%
948 departures · avg +2 min
-
Muhen Nord 74%
1,026 departures · avg +1.6 min
-
1,026 departures · avg +1.6 min
-
Zweilütschinen 76.6%
847 departures · avg +2.1 min
-
Sonceboz-Sombeval 78.4%
705 departures · avg +1.9 min
-
Como S. Giovanni 78.9%
810 departures · avg +2.7 min
-
Basel Bad Bf 79%
720 departures · avg +6.6 min
-
Chiasso 79.9%
1,272 departures · avg +2.4 min
-
S. Antonino 80.9%
1,120 departures · avg +2.3 min
-
St. Gallen Bruggen 81.4%
999 departures · avg +1.8 min
Largest delays
- Tram 17 Genève, Plainpalaisand 3 more trips of this line +338 min
- Bus 17 Lausanne, Vigie – Villars-Ste-Croix, Croix-Péage Croix-Péageand 1 more trips of this line +277 min
- Bus 8 Corminboeuf, anc. poste – Marly, piscine Corminboeuf, anc. posteand 1 more trips of this line +263 min
- NJ Zürich HBand 4 more trips of this line +239 min
- Bus 234 Bulle, gare routièreand 1 more trips of this line +235 min
- Tram 2 Riehen, Grenzeand 6 more trips of this line +221 min
- L Confignon, croiséeand 2 more trips of this line +186 min
- Bus 24 Lausanne, Bourdonnette – Lausanne, Ouchy-Olympique T. Haldimand-Lac +182 min
- Bus 704 Echichens, villageand 1 more trips of this line +181 min
- ICE Zürich HBand 13 more trips of this line +168 min
- Tram 12 Genève, Riveand 8 more trips of this line +160 min
- ICE Basel SBBand 12 more trips of this line +158 min
- Bus 1 Gebenstorf, Reuss – Würenlos, Bettlen Würenlos, Bettlen +150 min
- EC Bregenz – Zürich HB Zürich HBand 7 more trips of this line +144 min
- Bus 408 Unterschächen, Dorf +143 min
›Probably errors in the feed (1)
Delays of more than 6 hours. The real-time feed sent them, but they are probably not real.