Punctuality of Swiss public transportWeek 1323 Mar – 29 Mar 2026
88% of 970,834 trips were on time. The best day was Sunday 29 March with 94.5%, the worst Thursday 26 March with 85.9%. Of the busy lines, Bus 33 Prilly, Mont-Goulin – St-Sulpice VD, Venoge nord had the lowest share on time: 35.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.
88%
−0.3 ptsWeek before: 88.2% · 970,834 trips with live data
Average delay
+1.3 min
Canceled trips
3,374
0.3% of the trips
Day by day
The share on time of each day. A day opens its page.
- 95%
- Average: 88%
- Best day
- Sun 29 Mar · 94.5%
- Worst day
- Thu 26 Mar · 85.9%
- Worst hour
- Sat 02:00–03:00 · 51.2%
By mode
-
Train 94.9%
97,658 trips · avg +0.8 min
-
Tram 85.2%
74,360 trips · avg +1.5 min
-
Bus 87.5%
794,646 trips · avg +1.3 min
-
Metro 87.9%
2,178 trips · avg +1.4 min
-
Boat 56.8%
1,992 trips · avg +3.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 33 Prilly, Mont-Goulin – St-Sulpice VD, Venoge nordPrilly, Mont-Goulin – St-Sulpice VD, Venoge nord 35.5%
1,068 trips · avg +7.3 min
-
M2 Genève-Pâquis (lac) – Genève-Quai Gustave Ador (lac)Genève-Pâquis (lac) – Genève-Quai Gustave Ador (lac) 36.2%
732 trips · avg +4.8 min
-
1,043 trips · avg +3.9 min
-
311 trips · avg +4 min
-
508 trips · avg +3.8 min
-
1,171 trips · avg +3.6 min
-
Bus 109 Neuchâtel, Place Pury – Neuchâtel, Trois-ChênesNeuchâtel, Place Pury – Neuchâtel, Trois-Chênes 48.3%
1,360 trips · avg +3.3 min
-
786 trips · avg +3.7 min
Show 17 more
-
416 trips · avg +3.2 min
-
420 trips · avg +3.9 min
-
Bus 3 Canobbio, Mercato Resega – Breganzona, PostaCanobbio, Mercato Resega – Breganzona, Posta 57.3%
1,390 trips · avg +4.2 min
-
1,899 trips · avg +3.6 min
-
Tram 8 Basel, Neuweilerstrasse – Weil am Rhein, Bahnhof/ZentrumBasel, Neuweilerstrasse – Weil am Rhein, Bahnhof/Zentrum 59.7%
459 trips · avg +3.5 min
-
313 trips · avg +3 min
-
1,310 trips · avg +3.9 min
-
1,052 trips · avg +4.1 min
-
922 trips · avg +3 min
-
Bus 50 Basel EuroAirport, Verwaltung – Basel, Bahnhof SBBBasel EuroAirport, Verwaltung – Basel, Bahnhof SBB 61.8%
526 trips · avg +2.9 min
-
582 trips · avg +3.1 min
-
376 trips · avg +8.4 min
-
Bus 107 Neuchâtel, Place Pury – Hauterive NE, posteNeuchâtel, Place Pury – Hauterive NE, poste 64.4%
284 trips · avg +2.6 min
-
710 trips · avg +3.1 min
-
Bus 66 Thoiry, Centre commercial – Genève-Aéroport, TerminalThoiry, Centre commercial – Genève-Aéroport, Terminal 65.4%
454 trips · avg +2.7 min
-
1,129 trips · avg +2.6 min
-
1,482 trips · avg +2.7 min
Most punctual busy lines
-
1,547 trips · avg +0.5 min
-
2,044 trips · avg +0.8 min
-
1,956 trips · avg +0.8 min
-
Bus 101 Bern, Hauptbahnhof – Hinterkappelen, SchlossmattBern, Hauptbahnhof – Hinterkappelen, Schlossmatt 95.4%
1,512 trips · avg +0.7 min
-
1,537 trips · avg +0.8 min
-
Bus 3 Winterthur, Oberseen – Winterthur, RosenbergWinterthur, Oberseen – Winterthur, Rosenberg 94.4%
1,836 trips · avg +0.8 min
-
1,621 trips · avg +1.1 min
-
Bus 781 Zürich Oerlikon, Bahnhof – Glattbrugg, GiebeleichstrasseZürich Oerlikon, Bahnhof – Glattbrugg, Giebeleichstrasse 93.4%
1,510 trips · avg +1.1 min
Least punctual busy lines
-
376 trips · avg +8.4 min
-
810 trips · avg +1.4 min
-
525 trips · avg +1.7 min
-
766 trips · avg +1.5 min
-
477 trips · avg +1 min
-
518 trips · avg +1.4 min
-
284 trips · avg +0.8 min
-
332 trips · avg +1 min
Show 17 more
-
414 trips · avg +1.1 min
-
356 trips · avg +0.8 min
-
421 trips · avg +0.7 min
-
329 trips · avg +0.9 min
-
369 trips · avg +0.7 min
-
367 trips · avg +1 min
-
586 trips · avg +0.8 min
-
807 trips · avg +0.8 min
-
336 trips · avg +0.5 min
-
355 trips · avg +0.7 min
-
587 trips · avg +0.8 min
-
588 trips · avg +0.9 min
-
537 trips · avg +0.7 min
-
468 trips · avg +0.5 min
-
559 trips · avg +0.7 min
-
522 trips · avg +0.5 min
-
462 trips · avg +0.6 min
Most punctual busy lines
-
473 trips · avg +0.1 min
-
406 trips · avg +0 min
-
364 trips · avg +0 min
-
482 trips · avg +0.3 min
-
545 trips · avg +0.1 min
-
826 trips · avg +0.2 min
-
1,003 trips · avg +0.2 min
-
460 trips · avg +0.2 min
Least punctual busy lines
-
Tram 8 Basel, Neuweilerstrasse – Weil am Rhein, Bahnhof/ZentrumBasel, Neuweilerstrasse – Weil am Rhein, Bahnhof/Zentrum 59.7%
459 trips · avg +3.5 min
-
Tram 14 Basel, Dreirosenbrücke – Pratteln, SchlossstrasseBasel, Dreirosenbrücke – Pratteln, Schlossstrasse 70.2%
1,866 trips · avg +2.5 min
-
1,932 trips · avg +1.8 min
-
1,888 trips · avg +2.3 min
-
1,806 trips · avg +2 min
-
Tram 8 Bern, Saali – Bern Brünnen Westside, BahnhofBern, Saali – Bern Brünnen Westside, Bahnhof 79.1%
532 trips · avg +1.9 min
-
301 trips · avg +1.7 min
-
2,032 trips · avg +2.3 min
Show 17 more
-
1,809 trips · avg +1.7 min
-
555 trips · avg +1.4 min
-
2,461 trips · avg +1.4 min
-
1,980 trips · avg +1.4 min
-
Tram 2 Binningen, Kronenplatz – Basel, Badischer BahnhofBinningen, Kronenplatz – Basel, Badischer Bahnhof 85.3%
464 trips · avg +1.7 min
-
2,356 trips · avg +1.7 min
-
2,031 trips · avg +1.5 min
-
Tram 51 Zürich Altstetten, Bahnhof N – Zürich, SeebachZürich Altstetten, Bahnhof N – Zürich, Seebach 87%
2,057 trips · avg +1.4 min
-
2,010 trips · avg +1.3 min
-
Tram 7 Stettbach, Bahnhof – Zürich, WollishoferplatzStettbach, Bahnhof – Zürich, Wollishoferplatz 88.2%
491 trips · avg +1.4 min
-
1,971 trips · avg +1.6 min
-
Tram 10 Zürich Flughafen, Fracht – Zürich, Bahnhofplatz/HBZürich Flughafen, Fracht – Zürich, Bahnhofplatz/HB 92.2%
411 trips · avg +1.2 min
-
Tram 20 Killwangen, Bahnhof – Zürich Altstetten, BahnhofKillwangen, Bahnhof – Zürich Altstetten, Bahnhof 92.6%
1,074 trips · avg +1.3 min
-
1,966 trips · avg +0.9 min
-
Tram 11 Zürich, Central – Zürich Tiefenbrunnen, BahnhofZürich, Central – Zürich Tiefenbrunnen, Bahnhof 94%
480 trips · avg +1 min
-
981 trips · avg +0.7 min
-
1,956 trips · avg +0.8 min
Most punctual busy lines
-
971 trips · avg +0.3 min
-
1,956 trips · avg +0.8 min
-
981 trips · avg +0.7 min
-
Tram 11 Zürich, Central – Zürich Tiefenbrunnen, BahnhofZürich, Central – Zürich Tiefenbrunnen, Bahnhof 94%
480 trips · avg +1 min
-
1,966 trips · avg +0.9 min
-
Tram 20 Killwangen, Bahnhof – Zürich Altstetten, BahnhofKillwangen, Bahnhof – Zürich Altstetten, Bahnhof 92.6%
1,074 trips · avg +1.3 min
-
Tram 10 Zürich Flughafen, Fracht – Zürich, Bahnhofplatz/HBZürich Flughafen, Fracht – Zürich, Bahnhofplatz/HB 92.2%
411 trips · avg +1.2 min
-
1,971 trips · avg +1.6 min
Least punctual busy lines
-
Bus 33 Prilly, Mont-Goulin – St-Sulpice VD, Venoge nordPrilly, Mont-Goulin – St-Sulpice VD, Venoge nord 35.5%
1,068 trips · avg +7.3 min
-
1,043 trips · avg +3.9 min
-
311 trips · avg +4 min
-
508 trips · avg +3.8 min
-
1,171 trips · avg +3.6 min
-
Bus 109 Neuchâtel, Place Pury – Neuchâtel, Trois-ChênesNeuchâtel, Place Pury – Neuchâtel, Trois-Chênes 48.3%
1,360 trips · avg +3.3 min
-
416 trips · avg +3.2 min
-
420 trips · avg +3.9 min
Show 17 more
-
Bus 3 Canobbio, Mercato Resega – Breganzona, PostaCanobbio, Mercato Resega – Breganzona, Posta 57.3%
1,390 trips · avg +4.2 min
-
1,899 trips · avg +3.6 min
-
313 trips · avg +3 min
-
1,310 trips · avg +3.9 min
-
1,052 trips · avg +4.1 min
-
922 trips · avg +3 min
-
Bus 50 Basel EuroAirport, Verwaltung – Basel, Bahnhof SBBBasel EuroAirport, Verwaltung – Basel, Bahnhof SBB 61.8%
526 trips · avg +2.9 min
-
582 trips · avg +3.1 min
-
Bus 107 Neuchâtel, Place Pury – Hauterive NE, posteNeuchâtel, Place Pury – Hauterive NE, poste 64.4%
284 trips · avg +2.6 min
-
710 trips · avg +3.1 min
-
Bus 66 Thoiry, Centre commercial – Genève-Aéroport, TerminalThoiry, Centre commercial – Genève-Aéroport, Terminal 65.4%
454 trips · avg +2.7 min
-
1,129 trips · avg +2.6 min
-
1,482 trips · avg +2.7 min
-
Bus 9 Vernier, Lignon Tours – Thônex, Belle-Terre Pl. AraireVernier, Lignon Tours – Thônex, Belle-Terre Pl. Araire 67.3%
1,255 trips · avg +2.7 min
-
Bus 4 Chur, Austrasse – Chur, Seniorenzentrum CadonauChur, Austrasse – Chur, Seniorenzentrum Cadonau 67.5%
1,242 trips · avg +2.4 min
-
1,069 trips · avg +2.5 min
-
1,029 trips · avg +2.5 min
Most punctual busy lines
-
1,547 trips · avg +0.5 min
-
1,295 trips · avg +0.7 min
-
Bus 101 Bern, Hauptbahnhof – Hinterkappelen, SchlossmattBern, Hauptbahnhof – Hinterkappelen, Schlossmatt 95.4%
1,512 trips · avg +0.7 min
-
Bus 5 St. Gallen, Riethüsli – St. Gallen, RotmontenSt. Gallen, Riethüsli – St. Gallen, Rotmonten 95.3%
1,305 trips · avg +1.1 min
-
1,537 trips · avg +0.8 min
-
Bus 6 St. Gallen, Bach St. Georgen – St. Gallen, HeiligkreuzSt. Gallen, Bach St. Georgen – St. Gallen, Heiligkreuz 94.8%
1,298 trips · avg +0.7 min
-
Bus 3 Winterthur, Oberseen – Winterthur, RosenbergWinterthur, Oberseen – Winterthur, Rosenberg 94.4%
1,836 trips · avg +0.8 min
-
1,621 trips · avg +1.1 min
Least punctual operators
-
Mouettes genevoises 56.8%
1,992 trips · avg +3.4 min
-
TPL 70.8%
10,472 trips · avg +2.7 min
-
VBL 72.4%
25,646 trips · avg +2.5 min
-
Transports Publics Neuchâtelois 74.2%
17,415 trips · avg +2.1 min
-
BVB 74.9%
31,722 trips · avg +2.3 min
-
Automobil Rottal 76.1%
2,908 trips · avg +2.1 min
-
Verkehrsbetrieb LIECHTENSTEINmobil 77.1%
5,233 trips · avg +2.3 min
-
TPG 79.3%
57,908 trips · avg +1.9 min
Show 17 more
-
Sierre-Montana-Crans 80.7%
1,897 trips · avg +1.8 min
-
Bus und Service 80.8%
9,635 trips · avg +1.7 min
-
Regionale Verkehrsbetriebe Baden-Wettingen 81.1%
7,706 trips · avg +1.7 min
-
Auto AG Rothenburg 81.1%
4,908 trips · avg +1.6 min
-
Bus Nyon-Prangins 81.1%
2,217 trips · avg +1.7 min
-
Lugano-Ponte Tresa 82.8%
810 trips · avg +1.4 min
-
Busbetrieb Solothurn und Umgebung 83.2%
4,664 trips · avg +1.5 min
-
Regiobus Gossau SG 83.9%
4,215 trips · avg +1.6 min
-
tl 84.3%
45,693 trips · avg +1.9 min
-
Busbetrieb Rapperswil-Eschenbach-Rüti ZH 84.9%
1,826 trips · avg +1.5 min
-
TPF 85.1%
25,975 trips · avg +1.5 min
-
VBZ 85.3%
108,858 trips · avg +1.5 min
-
Bus Sierrois 85.3%
1,658 trips · avg +1.4 min
-
Stadtbus Frauenfeld 85.3%
3,406 trips · avg +1.6 min
-
Busbetrieb Aarau 86.1%
6,709 trips · avg +1.4 min
-
Bernmobil 87%
34,693 trips · avg +1.5 min
-
Montreux-Vevey-Riviera 87.4%
785 trips · avg +1.4 min
Most punctual operators
-
Lausanne-Echallens-Bercher 99.4%
826 trips · avg +0.2 min
-
Aare Seeland mobil 98.9%
2,225 trips · avg +0.3 min
-
Regionalverkehr Bern-Solothurn 98.6%
3,947 trips · avg +0.3 min
-
THURBO 98.1%
7,789 trips · avg +0.4 min
-
Zentralbahn 98.3%
2,438 trips · avg +0.3 min
-
Schweizerische Südostbahn 98%
3,530 trips · avg +0.4 min
-
Sihltal-Zürich-Uetliberg-Bahn 97.7%
2,018 trips · avg +0.7 min
-
BLS 97%
10,263 trips · avg +0.6 min
Stations
The share of the departures less than 3 minutes late. A train station has departures of trains.
-
Zürich HB 95.1%
11,927 departures · avg +1.1 min
-
Bern 96.4%
7,082 departures · avg +1 min
-
Zürich Oerlikon 95.7%
6,299 departures · avg +1 min
-
4,914 departures · avg +1.3 min
-
Winterthur 96.6%
4,775 departures · avg +1 min
-
Zürich Hardbrücke 85.4%
4,739 departures · avg +2 min
-
Olten 92.4%
4,230 departures · avg +1.4 min
-
Aarau 94.4%
3,623 departures · avg +1 min
-
St. Gallen 94.8%
3,564 departures · avg +1.1 min
-
Lausanne 92.6%
3,434 departures · avg +1.4 min
-
Renens VD 93.9%
3,312 departures · avg +1.2 min
-
Luzern 97.8%
3,199 departures · avg +0.8 min
-
Bern, Bahnhof 93.7%
19,743 departures · avg +1.3 min
-
Genève, gare Cornavin 80.8%
18,849 departures · avg +1.8 min
-
Genève, Bel-Air 82.8%
18,271 departures · avg +1.7 min
-
Luzern, Kantonalbank 79.4%
16,220 departures · avg +2.1 min
-
Bern, Hirschengraben 90.4%
14,930 departures · avg +1.7 min
-
Zürich, Central 92.9%
14,870 departures · avg +1.1 min
-
Basel, Schifflände 81.3%
14,824 departures · avg +2.1 min
-
Bern, Zytglogge 90%
14,306 departures · avg +1.6 min
-
Lausanne, Bel-Air 74.2%
14,161 departures · avg +3 min
-
Luzern, Bahnhof 87.7%
14,102 departures · avg +1.6 min
-
Zürich, Bellevue 93.1%
13,908 departures · avg +1.2 min
-
Basel, Bahnhof SBB 85.8%
13,905 departures · avg +1.8 min
-
Magliaso Paese 63.5%
810 departures · avg +2.8 min
-
Agno 64.8%
810 departures · avg +2.7 min
-
Magliaso 67.3%
810 departures · avg +2.6 min
-
Serocca 67.3%
810 departures · avg +2.5 min
-
Bioggio Molinazzo 72.5%
810 departures · avg +2.4 min
-
Oberentfelden Engelplatz 72.9%
1,022 departures · avg +1.7 min
-
Muhen Nord 73.3%
1,022 departures · avg +1.7 min
-
Caslano 76.3%
810 departures · avg +2.2 min
-
Zug Chollermüli 76.6%
942 departures · avg +2.3 min
-
Cham Alpenblick 76.9%
942 departures · avg +2.3 min
-
Bioggio 77.9%
810 departures · avg +2 min
-
Zug Schutzengel 78.3%
912 departures · avg +2.3 min
Largest delays
- Bus 8 Corminboeuf, anc. poste – Marly, piscine Corminboeuf, anc. posteand 4 more trips of this line +333 min
- Tram 15 Plan-les-Ouates, ZIPLOand 4 more trips of this line +304 min
- NJ Feldkirch – Zürich HB Zürich HBand 4 more trips of this line +297 min
- Bus 454 Romont FR, gare +280 min
- Bus 260 Jaun, Bergbahnen – Gruyères, ville Broc-Village, gareand 1 more trips of this line +234 min
- Bus 2 Fribourg, Schönberg Dunant – Villars-sur-Glâne, Les Dailles Fribourg, Schönberg Dunant +223 min
- Bus 118 Laufen, Bahnhof – Liesberg, Riederwald Laufen, Bahnhof +194 min
- Tram 14 Bernex, Vaillyand 1 more trips of this line +181 min
- Bus 61 Ettiswil, Post – Luzern, Bahnhof Luzern, Bahnhofand 1 more trips of this line +178 min
- Bus 9 Vernier, Lignon Tours – Thônex, Belle-Terre Pl. Araire Thônex, Belle-Terre Pl. Araireand 1 more trips of this line +178 min
- Bus 33 Puplinge, Pré-Marquis – Genève, Rive Genève, Rive +178 min
- Bus 7 Vessy, Grands-Esserts – Vernier, Lignon Tours Vessy, Grands-Essertsand 1 more trips of this line +177 min
- Bus 11 Genève-Eaux-Vives, gare +175 min
- Bus 8 Veyrier, douane +172 min
- Bus 1 Gebenstorf, Reuss – Würenlos, Bettlen Würenlos, Bettlenand 2 more trips of this line +170 min