Switzerland
How punctual were Swiss trains from November 2025 to June 2026? By our 6-minute rule, 97.1 % of long-distance stops were under 6 minutes late, 97.6 % of regional stops and 98.9 % of S-Bahn stops.
These values are high but need careful reading: the source sometimes delivers the last forecast received as the actual time, so the figures can come out too favourable. They are not directly comparable with Germany or the Netherlands.
How to read the map
- on time (under 6 min)
- 6 to 14 min late
- 15 to 29 min late
- 30 to 59 min late
- 60+ min late
- cancelled
One day as a video
The whole period
- Long distance97.1 %On time (under 6 min)Cancelled: 3.7 %
- Regional97.6 %On time (under 6 min)Cancelled: 1.8 %
- S-Bahn98.9 %On time (under 6 min)Cancelled: 2.0 %
Month by month
| Month | Long distance | Regional | S-Bahn | |||
|---|---|---|---|---|---|---|
| On time (under 6 min)Cancelled | On time (under 6 min)Cancelled | On time (under 6 min)Cancelled | ||||
| Nov 2025 | 97.2 %5.0 % | 97.8 %3.5 % | 98.8 %1.9 % | |||
| Dec 2025 | 97.5 %2.2 % | 98.1 %1.3 % | 99.1 %0.7 % | |||
| Jan 2026 | 97.1 %2.6 % | 97.6 %0.8 % | 98.7 %0.7 % | |||
| Feb 2026 | 97.2 %3.6 % | 97.2 %2.3 % | 99.0 %1.9 % | |||
| Mar 2026 | 97.7 %3.2 % | 97.9 %1.8 % | 99.0 %1.7 % | |||
| Apr 2026 | 97.7 %2.6 % | 98.3 %1.5 % | 99.1 %3.0 % | |||
| May 2026 | 96.8 %5.5 % | 97.8 %1.4 % | 98.9 %3.4 % | |||
| Jun 2026 | 95.5 %4.6 % | 96.4 %2.0 % | 98.5 %2.4 % | |||
On time = under 6 minutes late, counted over the stops that ran. Cancelled = share of all stops. SBB counts from 3 minutes, so our figures are not comparable with SBB's official figures.
Stations compared
The busiest stations and, per train class, the most and least punctual ones over the whole period.
The 10 stations with the most stops (all train classes)
| Station | Stops | On time |
|---|---|---|
| Zürich HB | 524,726 | 98.2 % |
| Bern | 384,461 | 99.1 % |
| Winterthur | 240,650 | 98.8 % |
| Zürich Oerlikon | 219,177 | 99.2 % |
| Olten | 201,841 | 98.5 % |
| Luzern | 199,226 | 99.2 % |
| Basel SBB | 195,150 | 95.6 % |
| Zürich Hardbrücke | 173,668 | 98.6 % |
| Aarau | 173,041 | 99.0 % |
| Zürich Stadelhofen | 171,044 | 99.0 % |
Long distance
Most punctual
| Station | Stops | On time |
|---|---|---|
| La Chaux-de-Fonds | 9,239 | 99.7 % |
| Lyss | 16,676 | 99.6 % |
| Sarnen | 8,461 | 99.6 % |
| Biberbrugg | 9,893 | 99.5 % |
| Engelberg | 9,049 | 99.5 % |
Least punctual
| Station | Stops | On time |
|---|---|---|
| Chiasso | 8,887 | 85.1 % |
| Schaffhausen | 8,939 | 87.8 % |
| St. Margrethen SG | 19,618 | 91.9 % |
| Buchs SG | 20,406 | 92.5 % |
| Lugano | 16,442 | 93.6 % |
Regional
Most punctual
| Station | Stops | On time |
|---|---|---|
| Jegenstorf | 26,250 | 99.7 % |
| Porrentruy | 32,534 | 99.6 % |
| Biberist RBS | 26,111 | 99.6 % |
| Lohn-Lüterkofen | 26,093 | 99.6 % |
| Bätterkinden | 26,082 | 99.6 % |
Least punctual
| Station | Stops | On time |
|---|---|---|
| Basel SBB | 21,767 | 89.1 % |
| Les Plantaz | 21,420 | 96.0 % |
| L'Asse | 21,250 | 96.0 % |
| Givrins | 20,821 | 96.1 % |
| Täsch | 41,196 | 96.2 % |
S-Bahn
Most punctual
| Station | Stops | On time |
|---|---|---|
| Ittigen bei Bern | 44,092 | 99.8 % |
| Papiermühle | 44,082 | 99.8 % |
| Bolligen | 44,063 | 99.8 % |
| Biberbrugg | 43,618 | 99.8 % |
| Worblaufen | 108,317 | 99.7 % |
Least punctual
| Station | Stops | On time |
|---|---|---|
| Mendrisio | 58,556 | 98.0 % |
| Basel SBB | 70,735 | 98.3 % |
| Zürich Wiedikon | 55,933 | 98.4 % |
| Zürich Hardbrücke | 173,475 | 98.6 % |
| Muttenz | 52,224 | 98.7 % |
Per class only stations with enough stops (long distance 8,000, regional 20,000, S-Bahn 40,000). We count stops in Switzerland. The differences between stations are small and the values can be too favourable (see above).
Cantons compared
Punctuality per canton and train class, sorted from most to least punctual. A stop belongs to the canton of its station.
Long distance
| Canton | Stops | On time | Cancelled |
|---|---|---|---|
| Obwalden | 59,780 | 99.5 % | 0.1 % |
| Nidwalden | 36,486 | 99.3 % | 0.1 % |
| Appenzell Ausserrhoden | 9,706 | 99.1 % | 1.9 % |
| Neuchâtel | 67,737 | 98.9 % | 2.6 % |
| Luzern | 103,006 | 98.8 % | 3.1 % |
| Jura | 33,030 | 98.6 % | 1.1 % |
| Schwyz | 112,517 | 98.3 % | 3.6 % |
| Thurgau | 61,838 | 98.3 % | 3.7 % |
| Aargau | 174,308 | 98.1 % | 1.6 % |
| Uri | 39,876 | 98.0 % | 1.0 % |
| Graubünden | 169,630 | 97.8 % | 2.5 % |
| Solothurn | 140,734 | 97.5 % | 3.2 % |
| Basel-Landschaft | 78,460 | 97.5 % | 2.3 % |
| St. Gallen | 357,199 | 97.4 % | 3.2 % |
| Zug | 58,675 | 97.3 % | 4.3 % |
| Bern | 438,868 | 97.0 % | 4.4 % |
| Zürich | 368,331 | 96.8 % | 4.9 % |
| Ticino | 137,274 | 96.7 % | 2.4 % |
| Genève | 79,211 | 96.4 % | 7.8 % |
| Valais | 149,062 | 96.0 % | 4.0 % |
| Fribourg | 61,342 | 95.5 % | 2.4 % |
| Vaud | 328,757 | 95.3 % | 4.1 % |
| Basel-Stadt | 104,833 | 95.1 % | 8.8 % |
| Schaffhausen | 8,940 | 87.8 % | 4.0 % |
Regional
| Canton | Stops | On time | Cancelled |
|---|---|---|---|
| Solothurn | 101,520 | 99.5 % | 0.6 % |
| Luzern | 155,181 | 99.0 % | 1.2 % |
| Aargau | 91,641 | 99.0 % | 2.8 % |
| Thurgau | 25,543 | 99.0 % | 1.1 % |
| Neuchâtel | 896,796 | 98.5 % | 0.6 % |
| Jura | 414,300 | 98.5 % | 0.2 % |
| Fribourg | 199,601 | 98.4 % | 3.5 % |
| Zürich | 46,957 | 98.4 % | 2.2 % |
| Genève | 773,831 | 98.2 % | 3.2 % |
| Bern | 1,243,800 | 98.0 % | 3.3 % |
| Uri | 83,218 | 98.0 % | 0.9 % |
| St. Gallen | 30,308 | 97.9 % | 1.2 % |
| Vaud | 3,592,973 | 97.4 % | 1.8 % |
| Valais | 1,276,678 | 97.0 % | 1.1 % |
| Graubünden | 947,461 | 97.0 % | 0.2 % |
| Ticino | 275,778 | 97.0 % | 4.0 % |
| Basel-Stadt | 31,348 | 89.4 % | 11.0 % |
S-Bahn
| Canton | Stops | On time | Cancelled |
|---|---|---|---|
| Nidwalden | 145,407 | 99.7 % | 0.2 % |
| Obwalden | 138,233 | 99.7 % | 1.2 % |
| Bern | 4,538,267 | 99.4 % | 1.7 % |
| Neuchâtel | 76,616 | 99.4 % | 5.6 % |
| Glarus | 200,106 | 99.3 % | 1.4 % |
| Zürich | 5,595,767 | 99.2 % | 1.7 % |
| Thurgau | 1,645,640 | 99.2 % | 1.6 % |
| Schaffhausen | 213,671 | 99.2 % | 2.5 % |
| Aargau | 3,135,671 | 99.1 % | 2.0 % |
| St. Gallen | 1,809,915 | 99.1 % | 1.2 % |
| Solothurn | 767,498 | 99.1 % | 2.5 % |
| Graubünden | 353,240 | 99.1 % | 0.4 % |
| Luzern | 1,045,305 | 98.9 % | 2.7 % |
| Schwyz | 571,569 | 98.9 % | 0.9 % |
| Appenzell Innerrhoden | 159,410 | 98.9 % | 0.8 % |
| Basel-Landschaft | 461,158 | 98.8 % | 3.5 % |
| Zug | 562,272 | 98.7 % | 3.5 % |
| Appenzell Ausserrhoden | 537,134 | 98.5 % | 0.6 % |
| Basel-Stadt | 91,715 | 98.5 % | 2.4 % |
| Fribourg | 971,403 | 97.7 % | 5.1 % |
| Vaud | 248,349 | 97.0 % | 5.3 % |
| Ticino | 1,018,077 | 95.3 % | 1.8 % |
Per class only cantons with enough stops (long distance 8,000, regional 20,000, S-Bahn 40,000). The differences are small and the values can be too favourable (see above). Stations abroad (for example in Germany and Italy on Swiss lines) are not included.
The 20 biggest rail cities
The 20 cities with the most train stops that also have long-distance service, ordered by punctuality (all train classes together).
| City | Stops | On time | Cancelled |
|---|---|---|---|
| Luzern | 271,634 | 99.3 % | 1.7 % |
| Rapperswil-Jona | 191,792 | 99.3 % | 2.7 % |
| Bern | 738,802 | 99.2 % | 2.3 % |
| Aarau | 274,729 | 99.2 % | 1.4 % |
| Solothurn | 205,555 | 99.2 % | 2.5 % |
| Winterthur | 506,254 | 99.1 % | 2.8 % |
| Neuchâtel | 281,987 | 99.0 % | 1.2 % |
| Freienbach | 206,059 | 99.0 % | 1.7 % |
| Baden | 183,317 | 99.0 % | 3.1 % |
| Zürich | 1,906,725 | 98.9 % | 1.7 % |
| Biel/Bienne | 191,495 | 98.8 % | 2.9 % |
| Olten | 220,727 | 98.5 % | 2.4 % |
| Zug | 234,452 | 98.4 % | 3.3 % |
| St. Gallen | 495,364 | 98.3 % | 0.6 % |
| Kloten | 154,623 | 98.2 % | 8.1 % |
| Lausanne | 260,258 | 97.9 % | 2.7 % |
| Genève | 280,705 | 97.1 % | 3.3 % |
| Basel | 227,855 | 95.8 % | 6.5 % |
| Montreux | 353,108 | 95.5 % | 1.8 % |
| Aigle | 166,981 | 95.2 % | 1.7 % |
A city is the municipality of the station. On time = under 6 minutes late (our rule), cancelled = share of all stops. The values can be too favourable (see above).
Period: November 2025 to June 2026 (the source archive ends in June 2026). Based on published actual data, not SBB's own measurement.
Data: opentransportdata.swiss (actual data, source: opentransportdata.swiss), the terms of use of the platform apply. Places and cantons: service-point list (SBB, original data: Federal Office of Transport FOT). Analysed and summarised by us, published under our name. Independent project, not affiliated with SBB or opentransportdata.swiss.