Punctuality of Swiss public transportWeek 508 Dec – 14 Dec 2025
89% of 88,228 trips were on time. Of the busy lines, Bus 101 Cormondrèche, Grand'Rue – Marin-Epagnier, gare had the lowest share on time: 26.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.
89%
88,228 trips with live data
Average delay
+1.2 min
Canceled trips
213
0.2% of the trips
Data for 1 of 7 days.
Day by day
The share on time of each day. A day opens its page.
- 95%
- Average: 89%
By mode
-
Train 97%
12,308 trips · avg +0.6 min
-
Tram 74.4%
7,491 trips · avg +2.2 min
-
Bus 89.2%
68,202 trips · avg +1.2 min
-
Metro 80.2%
227 trips · avg +2.9 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 26.5%
98 trips · avg +4 min
-
Bus 307 Schlieren, Zentrum/Bahnhof – Zürich Altstetten, Bahnhof NSchlieren, Zentrum/Bahnhof – Zürich Altstetten, Bahnhof N 37.8%
74 trips · avg +7.7 min
-
133 trips · avg +8.2 min
-
Bus 161 Zürich, Bürkliplatz – Kilchberg ZH, NeuweidZürich, Bürkliplatz – Kilchberg ZH, Neuweid 44.4%
72 trips · avg +5.7 min
-
118 trips · avg +4.6 min
-
148 trips · avg +3.6 min
-
Bus 456 Regensdorf-Watt, Bahnhof – Dielsdorf, BahnhofRegensdorf-Watt, Bahnhof – Dielsdorf, Bahnhof 47.2%
53 trips · avg +7.8 min
-
Bus 109 Neuchâtel, Place Pury – Neuchâtel, Trois-ChênesNeuchâtel, Place Pury – Neuchâtel, Trois-Chênes 50%
114 trips · avg +2.8 min
Show 17 more
-
Bus 165 Rüschlikon, Park im Grüene – Zürich, BürkliplatzRüschlikon, Park im Grüene – Zürich, Bürkliplatz 50%
104 trips · avg +4.7 min
-
215 trips · avg +3 min
-
149 trips · avg +2.7 min
-
Bus 33 Zürich, Triemli – Zürich Tiefenbrunnen, BahnhofZürich, Triemli – Zürich Tiefenbrunnen, Bahnhof 54.8%
219 trips · avg +3.5 min
-
Tram 51 Zürich Altstetten, Bahnhof N – Zürich, SeebachZürich Altstetten, Bahnhof N – Zürich, Seebach 55.3%
219 trips · avg +4.5 min
-
Bus 80 Zürich, Triemlispital – Zürich Oerlikon, Bahnhof NordZürich, Triemlispital – Zürich Oerlikon, Bahnhof Nord 55.3%
206 trips · avg +3.2 min
-
Tram 8 Basel, Neuweilerstrasse – Weil am Rhein, Bahnhof/ZentrumBasel, Neuweilerstrasse – Weil am Rhein, Bahnhof/Zentrum 55.6%
144 trips · avg +3 min
-
73 trips · avg +5 min
-
222 trips · avg +3.5 min
-
216 trips · avg +3.5 min
-
Bus 61 Wallisellen, Glatt (Bus) – Zürich, MühlackerWallisellen, Glatt (Bus) – Zürich, Mühlacker 56.8%
125 trips · avg +3.3 min
-
65 trips · avg +3.6 min
-
221 trips · avg +2.9 min
-
177 trips · avg +4.3 min
-
Bus 32 Zürich, Strassenverkehrsamt – Zürich, HolzerhurdZürich, Strassenverkehrsamt – Zürich, Holzerhurd 59.3%
216 trips · avg +2.9 min
-
216 trips · avg +3 min
-
Bus 59 Chambésy, Plage du Vengeron – Genève-Aéroport, TerminalChambésy, Plage du Vengeron – Genève-Aéroport, Terminal 61%
41 trips · avg +3.1 min
Most punctual busy lines
-
218 trips · avg +0.5 min
-
156 trips · avg +0.5 min
-
202 trips · avg +1 min
-
202 trips · avg +1 min
-
Bus 1 Biel/Bienne, Löhre/Mauchamp – Biel/Bienne, Stadien/StadesBiel/Bienne, Löhre/Mauchamp – Biel/Bienne, Stadien/Stades 95.5%
177 trips · avg +0.7 min
-
Bus 1 Winterthur, Oberwinterthur – Winterthur, TössWinterthur, Oberwinterthur – Winterthur, Töss 93.1%
204 trips · avg +1 min
-
206 trips · avg +1.3 min
-
225 trips · avg +1.6 min
Least punctual busy lines
-
63 trips · avg +5.8 min
-
64 trips · avg +1 min
-
119 trips · avg +1.2 min
-
75 trips · avg +1 min
-
102 trips · avg +2.1 min
-
90 trips · avg +1.2 min
-
40 trips · avg +0.6 min
-
40 trips · avg +0.8 min
Show 17 more
-
44 trips · avg +0.7 min
-
75 trips · avg +0.6 min
-
50 trips · avg +1.1 min
-
95 trips · avg +0.6 min
-
76 trips · avg +0.7 min
-
79 trips · avg +0.8 min
-
81 trips · avg +0.7 min
-
42 trips · avg +0.4 min
-
90 trips · avg +0.5 min
-
46 trips · avg +0.4 min
-
71 trips · avg +0.6 min
-
73 trips · avg +0.2 min
-
74 trips · avg +1.1 min
-
77 trips · avg +0.9 min
-
80 trips · avg +0.5 min
-
120 trips · avg +0.8 min
-
69 trips · avg +0.8 min
Most punctual busy lines
-
118 trips · avg +0.1 min
-
115 trips · avg +0.6 min
-
92 trips · avg +0.1 min
-
87 trips · avg +0.3 min
-
87 trips · avg +0.2 min
-
86 trips · avg +0.2 min
-
82 trips · avg +0.2 min
-
82 trips · avg +0.3 min
Least punctual busy lines
-
215 trips · avg +3 min
-
Tram 51 Zürich Altstetten, Bahnhof N – Zürich, SeebachZürich Altstetten, Bahnhof N – Zürich, Seebach 55.3%
219 trips · avg +4.5 min
-
Tram 8 Basel, Neuweilerstrasse – Weil am Rhein, Bahnhof/ZentrumBasel, Neuweilerstrasse – Weil am Rhein, Bahnhof/Zentrum 55.6%
144 trips · avg +3 min
-
222 trips · avg +3.5 min
-
216 trips · avg +3.5 min
-
221 trips · avg +2.9 min
-
Tram 14 Basel, Dreirosenbrücke – Pratteln, SchlossstrasseBasel, Dreirosenbrücke – Pratteln, Schlossstrasse 64.5%
169 trips · avg +3.1 min
-
173 trips · avg +2.7 min
Show 17 more
-
219 trips · avg +3 min
-
217 trips · avg +2.5 min
-
Tram 15 Zürich, Bahnhofstrasse/HB – Zürich Tiefenbrunnen, BahnhofZürich, Bahnhofstrasse/HB – Zürich Tiefenbrunnen, Bahnhof 68.1%
210 trips · avg +2.6 min
-
Tram 11 Zürich, Central – Zürich Tiefenbrunnen, BahnhofZürich, Central – Zürich Tiefenbrunnen, Bahnhof 68.2%
220 trips · avg +2.7 min
-
148 trips · avg +2.4 min
-
135 trips · avg +2.4 min
-
216 trips · avg +2 min
-
Tram 2 Binningen, Kronenplatz – Basel, Badischer BahnhofBinningen, Kronenplatz – Basel, Badischer Bahnhof 72.4%
134 trips · avg +2.3 min
-
230 trips · avg +2.1 min
-
223 trips · avg +2.2 min
-
Tram 10 Zürich Flughafen, Fracht – Zürich, Bahnhofplatz/HBZürich Flughafen, Fracht – Zürich, Bahnhofplatz/HB 77.4%
159 trips · avg +1.9 min
-
195 trips · avg +2 min
-
Tram 7 Stettbach, Bahnhof – Zürich, WollishoferplatzStettbach, Bahnhof – Zürich, Wollishoferplatz 77.7%
215 trips · avg +1.8 min
-
Tram 9 Wabern, Tram-Endstation – Bern Wankdorf, BahnhofWabern, Tram-Endstation – Bern Wankdorf, Bahnhof 78.1%
237 trips · avg +1.9 min
-
217 trips · avg +2 min
-
Tram 12 Stettbach, Bahnhof – Zürich Flughafen, FrachtStettbach, Bahnhof – Zürich Flughafen, Fracht 80.5%
154 trips · avg +2 min
-
162 trips · avg +1.9 min
Most punctual busy lines
-
122 trips · avg +0.2 min
-
75 trips · avg +0.2 min
-
Tram 20 Killwangen, Bahnhof – Zürich Altstetten, BahnhofKillwangen, Bahnhof – Zürich Altstetten, Bahnhof 98.7%
155 trips · avg +0.6 min
-
206 trips · avg +1.3 min
-
227 trips · avg +1.4 min
-
159 trips · avg +1.5 min
-
162 trips · avg +1.9 min
-
Tram 12 Stettbach, Bahnhof – Zürich Flughafen, FrachtStettbach, Bahnhof – Zürich Flughafen, Fracht 80.5%
154 trips · avg +2 min
Least punctual busy lines
-
Bus 101 Cormondrèche, Grand'Rue – Marin-Epagnier, gareCormondrèche, Grand'Rue – Marin-Epagnier, gare 26.5%
98 trips · avg +4 min
-
Bus 307 Schlieren, Zentrum/Bahnhof – Zürich Altstetten, Bahnhof NSchlieren, Zentrum/Bahnhof – Zürich Altstetten, Bahnhof N 37.8%
74 trips · avg +7.7 min
-
133 trips · avg +8.2 min
-
Bus 161 Zürich, Bürkliplatz – Kilchberg ZH, NeuweidZürich, Bürkliplatz – Kilchberg ZH, Neuweid 44.4%
72 trips · avg +5.7 min
-
118 trips · avg +4.6 min
-
148 trips · avg +3.6 min
-
Bus 456 Regensdorf-Watt, Bahnhof – Dielsdorf, BahnhofRegensdorf-Watt, Bahnhof – Dielsdorf, Bahnhof 47.2%
53 trips · avg +7.8 min
-
Bus 109 Neuchâtel, Place Pury – Neuchâtel, Trois-ChênesNeuchâtel, Place Pury – Neuchâtel, Trois-Chênes 50%
114 trips · avg +2.8 min
Show 17 more
-
Bus 165 Rüschlikon, Park im Grüene – Zürich, BürkliplatzRüschlikon, Park im Grüene – Zürich, Bürkliplatz 50%
104 trips · avg +4.7 min
-
149 trips · avg +2.7 min
-
Bus 33 Zürich, Triemli – Zürich Tiefenbrunnen, BahnhofZürich, Triemli – Zürich Tiefenbrunnen, Bahnhof 54.8%
219 trips · avg +3.5 min
-
Bus 80 Zürich, Triemlispital – Zürich Oerlikon, Bahnhof NordZürich, Triemlispital – Zürich Oerlikon, Bahnhof Nord 55.3%
206 trips · avg +3.2 min
-
73 trips · avg +5 min
-
Bus 61 Wallisellen, Glatt (Bus) – Zürich, MühlackerWallisellen, Glatt (Bus) – Zürich, Mühlacker 56.8%
125 trips · avg +3.3 min
-
65 trips · avg +3.6 min
-
177 trips · avg +4.3 min
-
Bus 32 Zürich, Strassenverkehrsamt – Zürich, HolzerhurdZürich, Strassenverkehrsamt – Zürich, Holzerhurd 59.3%
216 trips · avg +2.9 min
-
216 trips · avg +3 min
-
Bus 59 Chambésy, Plage du Vengeron – Genève-Aéroport, TerminalChambésy, Plage du Vengeron – Genève-Aéroport, Terminal 61%
41 trips · avg +3.1 min
-
150 trips · avg +3.3 min
-
Bus 31 Zürich, Hermetschloo – Zürich, KienastenwiesZürich, Hermetschloo – Zürich, Kienastenwies 61.9%
223 trips · avg +2.9 min
-
Bus 10 Winterthur, Hauptbahnhof – Oberwinterthur, BahnhofWinterthur, Hauptbahnhof – Oberwinterthur, Bahnhof 61.9%
147 trips · avg +3.9 min
-
198 trips · avg +2.9 min
-
153 trips · avg +3.5 min
-
66 trips · avg +4.4 min
Most punctual busy lines
-
149 trips · avg +0.1 min
-
150 trips · avg +0.1 min
-
152 trips · avg +0.3 min
-
149 trips · avg +0.2 min
-
156 trips · avg +0.5 min
-
202 trips · avg +1 min
-
202 trips · avg +1 min
-
Bus 1 Biel/Bienne, Löhre/Mauchamp – Biel/Bienne, Stadien/StadesBiel/Bienne, Löhre/Mauchamp – Biel/Bienne, Stadien/Stades 95.5%
177 trips · avg +0.7 min
Least punctual operators
-
Transports publics Vevey-Montreux-Chillon-Villeneuve 71%
531 trips · avg +3.5 min
-
BVB 73.3%
2,742 trips · avg +2.4 min
-
VBZ 74.4%
10,687 trips · avg +2.3 min
-
Transports Publics Neuchâtelois 74.5%
808 trips · avg +1.8 min
-
Zentralbahn AG Ersatzverkehr 77.5%
111 trips · avg +2.2 min
-
TPL 77.7%
1,186 trips · avg +1.8 min
-
Stadtbus Winterthur 77.8%
1,457 trips · avg +2 min
-
Verkehrsbetrieb LIECHTENSTEINmobil 79%
471 trips · avg +2.5 min
Show 17 more
-
TPG 79.3%
5,139 trips · avg +2 min
-
tl 80.2%
227 trips · avg +2.9 min
-
VBL 81.4%
2,690 trips · avg +1.6 min
-
Busbetrieb Rapperswil-Eschenbach-Rüti ZH 82.3%
141 trips · avg +1.9 min
-
Stadtbus Frauenfeld 82.5%
194 trips · avg +2 min
-
Regionale Verkehrsbetriebe Baden-Wettingen 84.5%
984 trips · avg +1.8 min
-
Regiobus Gossau SG 86.8%
212 trips · avg +1.2 min
-
Sierre-Montana-Crans 87.2%
266 trips · avg +1.4 min
-
Busbetrieb Solothurn und Umgebung 87.6%
378 trips · avg +1.1 min
-
Bernmobil 87.6%
3,154 trips · avg +1.4 min
-
Bus und Service 88.2%
971 trips · avg +1.3 min
-
Busbetrieb Olten-Gösgen-Gäu 88.4%
587 trips · avg +1.3 min
-
Bus Nyon-Prangins 88.9%
108 trips · avg +1 min
-
Verkehrsbetriebe Glattal 89.3%
2,244 trips · avg +1.5 min
-
Busbetrieb Aarau 89.9%
781 trips · avg +1.1 min
-
Automobildienst SZU 90.2%
1,298 trips · avg +0.9 min
-
Automobil Rottal 90.4%
292 trips · avg +1.4 min
Most punctual operators
-
Auto AG Uri 100%
274 trips · avg +0.2 min
-
Sihltal-Zürich-Uetliberg-Bahn 100%
233 trips · avg +0.3 min
-
Auto AG Schwyz 99.2%
601 trips · avg +0.3 min
-
BLS 98.8%
1,461 trips · avg +0.4 min
-
Aare Seeland mobil 100%
160 trips · avg +0.2 min
-
Schweizerische Südostbahn 98.8%
490 trips · avg +0.4 min
-
Aargau Verkehr 98.3%
1,036 trips · avg +0.7 min
-
Regionalverkehr Bern-Solothurn 98.8%
423 trips · avg +0.2 min
Stations
The share of the departures less than 3 minutes late. A train station has departures of trains.
-
Zürich HB 96.3%
1,653 departures · avg +0.9 min
-
Bern 98.6%
924 departures · avg +0.7 min
-
Zürich Oerlikon 96.1%
868 departures · avg +0.9 min
-
Zürich Stadelhofen 95.8%
719 departures · avg +1.1 min
-
Winterthur 96.5%
705 departures · avg +1 min
-
Zürich Hardbrücke 93.8%
693 departures · avg +1.7 min
-
Olten 97.1%
622 departures · avg +0.9 min
-
Lausanne 95.7%
555 departures · avg +1 min
-
Renens VD 95.8%
518 departures · avg +0.9 min
-
Aarau 97.6%
492 departures · avg +0.7 min
-
St. Gallen 93.9%
472 departures · avg +1.2 min
-
Luzern 96.9%
459 departures · avg +0.7 min
-
Bern, Bahnhof 95.2%
2,111 departures · avg +1.1 min
-
1,783 departures · avg +1.5 min
-
Genève, gare Cornavin 81.2%
1,754 departures · avg +1.9 min
-
Zürich HB 96.3%
1,653 departures · avg +0.9 min
-
Bern, Hirschengraben 91.2%
1,639 departures · avg +1.4 min
-
Luzern, Bahnhof 93.1%
1,603 departures · avg +1.1 min
-
Genève, Bel-Air 81.7%
1,555 departures · avg +2.2 min
-
Zürich, Central 84.2%
1,535 departures · avg +1.9 min
-
Bern, Zytglogge 90.9%
1,511 departures · avg +1.5 min
-
1,369 departures · avg +1.1 min
-
Basel, Schifflände 78.2%
1,281 departures · avg +2.3 min
-
1,273 departures · avg +1.7 min
-
Como S. Giovanni 72.3%
101 departures · avg +2.8 min
-
Chiasso 76.8%
155 departures · avg +2.4 min
-
Mendrisio S. Martino 83.5%
121 departures · avg +2.1 min
-
Capolago-Riva S. Vitale 83.5%
121 departures · avg +2.1 min
-
Melide 83.5%
121 departures · avg +2.2 min
-
Oberentfelden Engelplatz 83.6%
110 departures · avg +1.3 min
-
Maroggia-Melano 84.4%
122 departures · avg +2 min
-
Paradiso 84.5%
181 departures · avg +2.2 min
-
Muhen Nord 84.5%
110 departures · avg +1.3 min
-
Rheinfelden 85.4%
164 departures · avg +1.6 min
-
Mendrisio 86.2%
189 departures · avg +1.8 min
-
Baar 87.3%
165 departures · avg +1.6 min
Largest delays
- Bus 650 Arvenbüel, Arvenand 1 more trips of this line +119 min
- TGV Zürich HB – Mulhouse Zürich HB +105 min
- Bus 1 Gebenstorf, Reuss – Würenlos, Bettlen Baden, Bahnhof Ostand 2 more trips of this line +96 min
- Bus 3 Wettingen, Brunnenwiese +93 min
- Bus 3 Grand-Saconnex, Gardiol – Genève, Crêts-de-Champel Grand-Saconnex, Gardioland 3 more trips of this line +75 min
- ICE Basel Bad Bfand 1 more trips of this line +73 min
- Bus 6 Aarau, Wöschnauring – Suhr, Bahnhof Suhr, Bahnhof +73 min
- m2 Epalinges, Croisettes – Lausanne, Ouchy-Olympique Lausanne, Ouchy-Olympique +69 min
- Bus 201 Vevey, funiculaire – Rennaz, village Rennaz, village +65 min
- Train 48 Gornergrat – Zermatt GGB Zermatt GGB +64 min
- Bus 7 Vessy, Grands-Esserts – Vernier, Lignon Tours Vessy, Grands-Esserts +60 min
- EC Bregenz – Zürich HB Genève +59 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.