Punctuality of Swiss public transportWeek 156 Apr – 12 Apr 2026
90.3% of 914,568 trips were on time. The best day was Sunday 12 April with 93.6%, the worst Wednesday 8 April with 88.8%. Of the busy lines, M2 Genève-Pâquis (lac) – Genève-Quai Gustave Ador (lac) had the lowest share on time: 20.9%.
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.
90.3%
+1.4 ptsWeek before: 88.9% · 914,568 trips with live data
Average delay
+1.1 min
Canceled trips
2,226
0.2% of the trips
Day by day
The share on time of each day. A day opens its page.
- 95%
- Average: 90.3%
- Best day
- Sun 12 Apr · 93.6%
- Worst day
- Wed 8 Apr · 88.8%
- Worst hour
- Wed 17:00–18:00 · 75.2%
By mode
-
Train 96.3%
96,152 trips · avg +0.6 min
-
Tram 85.1%
78,917 trips · avg +1.5 min
-
Bus 90.2%
735,330 trips · avg +1.1 min
-
Metro 97.1%
1,904 trips · avg +0.9 min
-
Boat 42.4%
2,265 trips · avg +4.7 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
-
M2 Genève-Pâquis (lac) – Genève-Quai Gustave Ador (lac)Genève-Pâquis (lac) – Genève-Quai Gustave Ador (lac) 20.9%
880 trips · avg +6.3 min
-
Bus 101 Cormondrèche, Grand'Rue – Marin-Epagnier, gareCormondrèche, Grand'Rue – Marin-Epagnier, gare 22.5%
972 trips · avg +5.1 min
-
857 trips · avg +5.3 min
-
1,043 trips · avg +3.5 min
-
662 trips · avg +9.7 min
-
Bus 109 Neuchâtel, Place Pury – Neuchâtel, Trois-ChênesNeuchâtel, Place Pury – Neuchâtel, Trois-Chênes 50.9%
1,235 trips · avg +3.2 min
-
368 trips · avg +3.3 min
-
446 trips · avg +8.2 min
Show 17 more
-
Bus 50 Basel EuroAirport, Verwaltung – Basel, Bahnhof SBBBasel EuroAirport, Verwaltung – Basel, Bahnhof SBB 56.3%
798 trips · avg +3.4 min
-
284 trips · avg +3.2 min
-
1,136 trips · avg +2.8 min
-
332 trips · avg +3.3 min
-
Tram 8 Basel, Neuweilerstrasse – Weil am Rhein, Bahnhof/ZentrumBasel, Neuweilerstrasse – Weil am Rhein, Bahnhof/Zentrum 62.7%
662 trips · avg +3.1 min
-
Bus 107 Neuchâtel, Place Pury – Hauterive NE, posteNeuchâtel, Place Pury – Hauterive NE, poste 63.8%
384 trips · avg +2.6 min
-
434 trips · avg +8 min
-
Bus 33 Zürich, Triemli – Zürich Tiefenbrunnen, BahnhofZürich, Triemli – Zürich Tiefenbrunnen, Bahnhof 64.6%
1,708 trips · avg +2.5 min
-
1,379 trips · avg +3 min
-
425 trips · avg +2.9 min
-
1,800 trips · avg +2.5 min
-
440 trips · avg +2.3 min
-
Bus 1 Schaffhausen, Waldfriedhof – Neuhausen, HerbstäckerSchaffhausen, Waldfriedhof – Neuhausen, Herbstäcker 69.2%
1,227 trips · avg +2.5 min
-
Bus 33 Prilly, Mont-Goulin – St-Sulpice VD, Venoge nordPrilly, Mont-Goulin – St-Sulpice VD, Venoge nord 69.6%
1,073 trips · avg +2.4 min
-
701 trips · avg +2.8 min
-
1,152 trips · avg +2.9 min
-
1,011 trips · avg +2.4 min
Most punctual busy lines
-
1,464 trips · avg +0.3 min
-
1,572 trips · avg +0.8 min
-
1,326 trips · avg +0.6 min
-
1,251 trips · avg +0.6 min
-
1,981 trips · avg +1 min
-
1,961 trips · avg +0.8 min
-
Bus 101 Bern, Hauptbahnhof – Hinterkappelen, SchlossmattBern, Hauptbahnhof – Hinterkappelen, Schlossmatt 96.2%
1,306 trips · avg +0.6 min
-
Bus 781 Zürich Oerlikon, Bahnhof – Glattbrugg, GiebeleichstrasseZürich Oerlikon, Bahnhof – Glattbrugg, Giebeleichstrasse 95.7%
1,426 trips · avg +0.9 min
Least punctual busy lines
-
434 trips · avg +8 min
-
753 trips · avg +1.4 min
-
518 trips · avg +1.2 min
-
379 trips · avg +1.4 min
-
754 trips · avg +0.8 min
-
910 trips · avg +0.9 min
-
585 trips · avg +1 min
-
287 trips · avg +1.2 min
Show 17 more
-
473 trips · avg +0.9 min
-
551 trips · avg +0.7 min
-
479 trips · avg +0.8 min
-
350 trips · avg +1 min
-
561 trips · avg +0.6 min
-
281 trips · avg +0.7 min
-
326 trips · avg +0.9 min
-
354 trips · avg +0.6 min
-
392 trips · avg +0.6 min
-
551 trips · avg +0.6 min
-
300 trips · avg +0.6 min
-
503 trips · avg +0.7 min
-
365 trips · avg +0.8 min
-
1,961 trips · avg +0.8 min
-
458 trips · avg +0.6 min
-
333 trips · avg +1 min
-
615 trips · avg +0.8 min
Most punctual busy lines
-
1,066 trips · avg +0.1 min
-
820 trips · avg +0.2 min
-
462 trips · avg +0.1 min
-
406 trips · avg +0 min
-
813 trips · avg +0.2 min
-
718 trips · avg +0.1 min
-
531 trips · avg +0.1 min
-
402 trips · avg +0.4 min
Least punctual busy lines
-
Tram 8 Basel, Neuweilerstrasse – Weil am Rhein, Bahnhof/ZentrumBasel, Neuweilerstrasse – Weil am Rhein, Bahnhof/Zentrum 62.7%
662 trips · avg +3.1 min
-
1,874 trips · avg +1.8 min
-
491 trips · avg +2 min
-
Tram 14 Basel, Dreirosenbrücke – Pratteln, SchlossstrasseBasel, Dreirosenbrücke – Pratteln, Schlossstrasse 76.8%
1,822 trips · avg +2.1 min
-
1,823 trips · avg +2 min
-
356 trips · avg +1.7 min
-
3,449 trips · avg +1.5 min
-
2,160 trips · avg +1.8 min
Show 17 more
-
1,769 trips · avg +1.7 min
-
Tram 2 Binningen, Kronenplatz – Basel, Badischer BahnhofBinningen, Kronenplatz – Basel, Badischer Bahnhof 84.1%
656 trips · avg +1.9 min
-
1,673 trips · avg +1.6 min
-
Tram 7 Stettbach, Bahnhof – Zürich, WollishoferplatzStettbach, Bahnhof – Zürich, Wollishoferplatz 85.6%
487 trips · avg +1.5 min
-
1,888 trips · avg +1.7 min
-
1,727 trips · avg +1.4 min
-
404 trips · avg +1.3 min
-
1,884 trips · avg +1.1 min
-
1,937 trips · avg +1.2 min
-
1,769 trips · avg +1.3 min
-
Tram 11 Zürich, Central – Zürich Tiefenbrunnen, BahnhofZürich, Central – Zürich Tiefenbrunnen, Bahnhof 90.5%
484 trips · avg +1.2 min
-
Tram 10 Zürich Flughafen, Fracht – Zürich, Bahnhofplatz/HBZürich Flughafen, Fracht – Zürich, Bahnhofplatz/HB 90.7%
567 trips · avg +1.2 min
-
Tram 51 Zürich Altstetten, Bahnhof N – Zürich, SeebachZürich Altstetten, Bahnhof N – Zürich, Seebach 91%
1,965 trips · avg +1.3 min
-
1,879 trips · avg +1 min
-
998 trips · avg +0.8 min
-
1,702 trips · avg +1 min
-
Tram 20 Killwangen, Bahnhof – Zürich Altstetten, BahnhofKillwangen, Bahnhof – Zürich Altstetten, Bahnhof 96.7%
1,083 trips · avg +0.9 min
Most punctual busy lines
-
382 trips · avg +0 min
-
Tram 12 Stettbach, Bahnhof – Zürich Flughafen, FrachtStettbach, Bahnhof – Zürich Flughafen, Fracht 97.1%
308 trips · avg +1.1 min
-
Tram 20 Killwangen, Bahnhof – Zürich Altstetten, BahnhofKillwangen, Bahnhof – Zürich Altstetten, Bahnhof 96.7%
1,083 trips · avg +0.9 min
-
1,702 trips · avg +1 min
-
998 trips · avg +0.8 min
-
1,879 trips · avg +1 min
-
Tram 51 Zürich Altstetten, Bahnhof N – Zürich, SeebachZürich Altstetten, Bahnhof N – Zürich, Seebach 91%
1,965 trips · avg +1.3 min
-
Tram 10 Zürich Flughafen, Fracht – Zürich, Bahnhofplatz/HBZürich Flughafen, Fracht – Zürich, Bahnhofplatz/HB 90.7%
567 trips · avg +1.2 min
Least punctual busy lines
-
Bus 101 Cormondrèche, Grand'Rue – Marin-Epagnier, gareCormondrèche, Grand'Rue – Marin-Epagnier, gare 22.5%
972 trips · avg +5.1 min
-
1,043 trips · avg +3.5 min
-
662 trips · avg +9.7 min
-
Bus 109 Neuchâtel, Place Pury – Neuchâtel, Trois-ChênesNeuchâtel, Place Pury – Neuchâtel, Trois-Chênes 50.9%
1,235 trips · avg +3.2 min
-
368 trips · avg +3.3 min
-
446 trips · avg +8.2 min
-
Bus 50 Basel EuroAirport, Verwaltung – Basel, Bahnhof SBBBasel EuroAirport, Verwaltung – Basel, Bahnhof SBB 56.3%
798 trips · avg +3.4 min
-
284 trips · avg +3.2 min
Show 17 more
-
1,136 trips · avg +2.8 min
-
332 trips · avg +3.3 min
-
Bus 107 Neuchâtel, Place Pury – Hauterive NE, posteNeuchâtel, Place Pury – Hauterive NE, poste 63.8%
384 trips · avg +2.6 min
-
Bus 33 Zürich, Triemli – Zürich Tiefenbrunnen, BahnhofZürich, Triemli – Zürich Tiefenbrunnen, Bahnhof 64.6%
1,708 trips · avg +2.5 min
-
1,379 trips · avg +3 min
-
425 trips · avg +2.9 min
-
1,800 trips · avg +2.5 min
-
440 trips · avg +2.3 min
-
Bus 1 Schaffhausen, Waldfriedhof – Neuhausen, HerbstäckerSchaffhausen, Waldfriedhof – Neuhausen, Herbstäcker 69.2%
1,227 trips · avg +2.5 min
-
Bus 33 Prilly, Mont-Goulin – St-Sulpice VD, Venoge nordPrilly, Mont-Goulin – St-Sulpice VD, Venoge nord 69.6%
1,073 trips · avg +2.4 min
-
701 trips · avg +2.8 min
-
1,152 trips · avg +2.9 min
-
1,011 trips · avg +2.4 min
-
715 trips · avg +2.1 min
-
524 trips · avg +2.5 min
-
Bus 456 Regensdorf-Watt, Bahnhof – Dielsdorf, BahnhofRegensdorf-Watt, Bahnhof – Dielsdorf, Bahnhof 70.8%
415 trips · avg +2.5 min
-
455 trips · avg +2.8 min
Most punctual busy lines
-
1,464 trips · avg +0.3 min
-
1,572 trips · avg +0.8 min
-
1,214 trips · avg +0.6 min
-
Bus 5 St. Gallen, Riethüsli – St. Gallen, RotmontenSt. Gallen, Riethüsli – St. Gallen, Rotmonten 97.4%
1,202 trips · avg +0.7 min
-
1,326 trips · avg +0.6 min
-
1,251 trips · avg +0.6 min
-
1,981 trips · avg +1 min
-
Bus 101 Bern, Hauptbahnhof – Hinterkappelen, SchlossmattBern, Hauptbahnhof – Hinterkappelen, Schlossmatt 96.2%
1,306 trips · avg +0.6 min
Least punctual operators
-
Mouettes genevoises 42.4%
2,265 trips · avg +4.7 min
-
BVB 80%
30,427 trips · avg +1.9 min
-
TPG 80.2%
53,030 trips · avg +1.8 min
-
Transports Publics Neuchâtelois 80.4%
15,203 trips · avg +1.7 min
-
TPL 80.8%
9,939 trips · avg +1.6 min
-
VBL 81.4%
24,447 trips · avg +1.7 min
-
Bus und Service 81.5%
9,324 trips · avg +1.7 min
-
Verkehrsbetrieb LIECHTENSTEINmobil 83.3%
5,129 trips · avg +1.7 min
Show 17 more
-
SBB Infrastruktur AG Bahnersatz 84.9%
762 trips · avg +1.6 min
-
Automobil Rottal 85.6%
2,694 trips · avg +1.7 min
-
VBZ 85.9%
102,912 trips · avg +1.5 min
-
Verkehrsbetriebe Schaffhausen 86.3%
11,587 trips · avg +1.4 min
-
Auto AG Rothenburg 86.4%
4,620 trips · avg +1.4 min
-
Busbetrieb Rapperswil-Eschenbach-Rüti ZH 87.3%
1,703 trips · avg +1.5 min
-
Busbetrieb Solothurn und Umgebung 87.3%
4,242 trips · avg +1.3 min
-
Sierre-Montana-Crans 87.5%
1,710 trips · avg +1.5 min
-
Stadtbus Frauenfeld 87.5%
3,107 trips · avg +1.7 min
-
tl 88.2%
42,829 trips · avg +1.2 min
-
Auto Leuk-Leukerbad 88.7%
1,713 trips · avg +1.4 min
-
Bus Sierrois 88.9%
1,716 trips · avg +1.2 min
-
Bernmobil 89.3%
38,499 trips · avg +1.3 min
-
TPF 89.3%
23,597 trips · avg +1.1 min
-
Matterhorn Gotthard Bahn 89.7%
2,223 trips · avg +1.2 min
-
Regiobus Gossau SG 89.7%
3,612 trips · avg +1.2 min
-
Bus Nyon-Prangins 90.5%
1,948 trips · avg +1 min
Most punctual operators
-
Regionalverkehr Bern-Solothurn 99.9%
3,710 trips · avg +0.1 min
-
Zentralbahn 99.1%
2,387 trips · avg +0.2 min
-
Appenzeller Bahnen 98.8%
2,228 trips · avg +0.3 min
-
BLS 98.4%
10,344 trips · avg +0.4 min
-
Sihltal-Zürich-Uetliberg-Bahn 98.5%
1,912 trips · avg +0.5 min
-
Lausanne-Echallens-Bercher 98.8%
829 trips · avg +0.2 min
-
Aare Seeland mobil 98.4%
2,083 trips · avg +0.3 min
-
THURBO 97.7%
7,671 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 96.7%
11,760 departures · avg +1 min
-
Bern 98%
6,818 departures · avg +0.8 min
-
Zürich Oerlikon 96.8%
6,211 departures · avg +0.9 min
-
Zürich Stadelhofen 94.3%
4,901 departures · avg +1.2 min
-
Winterthur 97.1%
4,735 departures · avg +1 min
-
Zürich Hardbrücke 89.5%
4,732 departures · avg +1.9 min
-
Olten 94.5%
4,158 departures · avg +1.1 min
-
Aarau 96.5%
3,583 departures · avg +0.8 min
-
Lausanne 93.1%
3,526 departures · avg +1.3 min
-
St. Gallen 94.5%
3,513 departures · avg +1.2 min
-
Renens VD 94.3%
3,483 departures · avg +1.1 min
-
Luzern 98.1%
3,192 departures · avg +0.8 min
-
Genève, gare Cornavin 81.9%
16,628 departures · avg +1.7 min
-
Genève, Bel-Air 81.4%
15,909 departures · avg +1.8 min
-
Bern, Bahnhof 95.1%
15,845 departures · avg +1.1 min
-
Luzern, Kantonalbank 85.8%
15,566 departures · avg +1.6 min
-
Basel, Schifflände 85.8%
14,138 departures · avg +1.7 min
-
Bern, Zytglogge 92.5%
14,053 departures · avg +1.4 min
-
Zürich, Central 93.6%
14,015 departures · avg +1.1 min
-
Luzern, Bahnhof 93.6%
13,628 departures · avg +1.1 min
-
Lausanne, Bel-Air 76.3%
13,133 departures · avg +2.3 min
-
Basel, Bahnhof SBB 88.7%
12,683 departures · avg +1.5 min
-
Zürich, Bellevue 91.3%
12,628 departures · avg +1.3 min
-
St. Gallen, Bahnhof 95.3%
12,528 departures · avg +1 min
-
Oberentfelden Engelplatz 71.9%
982 departures · avg +1.8 min
-
Muhen Nord 72.5%
982 departures · avg +1.8 min
-
Zufikon 72.9%
998 departures · avg +2.3 min
-
Dietikon Stoffelbach 73.3%
991 departures · avg +2.6 min
-
Reppischhof 73.7%
991 departures · avg +2.3 min
-
Zufikon Hammergut 77.9%
998 departures · avg +2 min
-
Widen Heinrüti 78.4%
998 departures · avg +2 min
-
Rudolfstetten 78.8%
1,003 departures · avg +2 min
-
Magliaso Paese 79.8%
754 departures · avg +2.2 min
-
Como S. Giovanni 80.9%
795 departures · avg +2.5 min
-
Agno 81.6%
754 departures · avg +2.1 min
-
Rudolfstetten Hofacker 81.9%
991 departures · avg +1.7 min
Largest delays
- Bus 62 Sursee, Bahnhof – Ruswil, Rottalcenter Ruswil, Rottalcenterand 1 more trips of this line +324 min
- Bus 8 Corminboeuf, anc. poste – Marly, piscine Marly, piscineand 7 more trips of this line +297 min
- TGV Zürich HB – Mulhouse Zürich HBand 1 more trips of this line +185 min
- Bus 5 Fribourg, Torryand 1 more trips of this line +182 min
- EC Bregenz – Zürich HB Zürich HBand 8 more trips of this line +180 min
- Bus 3 Fribourg, Charmettes +176 min
- ICE Basel Bad Bfand 5 more trips of this line +136 min
- Tram 14 Bernex, Vaillyand 3 more trips of this line +125 min
- Bus 545 Courtepin, gare – Fribourg/Freiburg, gare rout. Courtepin, gare +120 min
- N1 Chur, Bahnhofplatz – Fürstenau, Fürstenaubruck Domat/Ems, Chemie +116 min
- Bus 422 Crans-Montana, Barzettes +109 min
- Tram 12 Genève, Plainpalaisand 1 more trips of this line +95 min
- Bus 30 Basel, Badischer Bahnhof – Basel, Bahnhof SBB Basel, Badischer Bahnhofand 3 more trips of this line +92 min
- TGV Bellegarde-sur-Valserine – Genève Genève +90 min
- GEX St. Moritz +89 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.
- Bus 2 Lausanne, Désert – Lausanne, Epinettes Désertand 7 more trips of this line +361 min