S9 18960 Uster – Schaffhausen
Alerts for train 18960
Alerts are saved per line, not per trip id, so they keep working when the operator changes the timetable. This train runs on line S9.
Running now · updated 16:10
Between Zürich Hardbrücke and Zürich Oerlikon 0 min
Estimated arrival at Schaffhausen 17:04 · 46 km/h
- Uster15:40
- Stettbach15:54
- Zürich Hardbrücke16:09
- Zürich Oerlikon16:14
- Oberglatt ZH16:24
- Eglisau16:39
- Schaffhausen17:04
Today it is running no worse than usual: typical arrival delay is 0 min; 100% of the last 13 runs arrived on time.
Last 30 days
Arrival delay at Schaffhausen, in minutes. One bar per run.
- On time (<3 min)
- 3–10 min
- 10–30 min
- 30+ min
- Partial coverage
- No data
Distribution · 90 days
26 runs with a known final delay. On time = under 3 min, the same cut the map uses.
- Early 8% · 2
- On time 92% · 24
- 3–10 min 0% · 0
- 10–30 min 0% · 0
- 30+ min 0% · 0
On-time by weekday
- 100% M n=3
- 100% T n=5
- 100% W n=3
- 100% T n=4
- 100% F n=4
- 100% S n=5
- 100% S n=2
Stops and timetable
Timetable of the latest run from the operator’s GTFS (23 stops).
| Stop | Sched. | Today |
|---|---|---|
| 15:40 | Passed | |
| 15:43 | Passed | |
| 15:46 / 15:47 | Passed | |
| 15:50 | Passed | |
| 15:54 | Passed | |
| 15:58 / 15:59 | Passed | |
| 16:02 / 16:07 | Passed | |
| 16:09 | Passed | |
| 16:14 / 16:15 | ||
| 16:17 / 16:18 | ||
| 16:21 | ||
| 16:24 / 16:25 | ||
| 16:27 | ||
| 16:32 | ||
| 16:35 | ||
| 16:39 | ||
| 16:42 | ||
| 16:45 / 16:46 | ||
| 16:49 | ||
| 16:53 | ||
| 16:57 | ||
| 17:00 | ||
| 17:04 |
Each run is closed into train_runs (country, train number, service day) from the live positions. Final delay = last delay seen. Partial coverage: the feed stopped before the final stop (last value used, hatched in the chart). No data: a run without any valid delay; counts as neither on time nor late. Data collected since 11 July 2026.
Recent runs
| Date | Last stop | Final | Max |
|---|---|---|---|
| Fri 9 Oct | Zürich Oerlikon 16:09Partial coverage | 0 min | — |
| Thu 8 Oct | Le Châtelard-Frontière 17:59 | 0 min | — |
| Wed 7 Oct | Le Châtelard-Frontière 18:00 | 0 min | — |
| Tue 6 Oct | Le Châtelard-Frontière 17:59 | +1 min | — |
| Mon 5 Oct | Le Châtelard-Frontière 17:59 | 0 min | — |
| Sun 4 Oct | Le Châtelard-Frontière 17:59 | −1 min | — |
| Sat 3 Oct | Schaffhausen 17:03 | 0 min | +2 min |
| Thu 1 Oct | Schaffhausen 23:03 | 0 min | — |
| Wed 23 Sept | Le Châtelard-Frontière 00:05 | 0 min | +2 min |
| Mon 21 Sept | Schaffhausen 17:33 | 0 min | +1 min |
| Sat 12 Sept | Schaffhausen 20:03 | 0 min | — |
| Fri 11 Sept | Schaffhausen 20:03 | 0 min | — |
| Thu 10 Sept | Schaffhausen 16:33 | 0 min | — |
| Sat 5 Sept | Schaffhausen 09:03 | 0 min | — |
| Fri 4 Sept | Le Châtelard-Frontière 00:58 | 0 min | +2 min |
| Tue 25 Aug | Schaffhausen 21:03 | +1 min | — |
| Sat 22 Aug | Le Châtelard-Frontière 00:58 | 0 min | +3 min |
| Thu 20 Aug | Schaffhausen 22:03 | −2 min | — |
| Wed 19 Aug | Schaffhausen 22:03 | 0 min | — |
| Tue 18 Aug | Schaffhausen 22:03 | −1 min | +4 min |
| Mon 17 Aug | Schaffhausen 00:03 | No data | — |
| Sun 16 Aug | Schaffhausen 00:03 | −1 min | — |
| Sat 15 Aug | Le Châtelard-Frontière 00:58 | 0 min | +4 min |
| Fri 14 Aug | Schaffhausen 00:03 | +1 min | +1 min |
| Tue 28 Jul | Schaffhausen 00:34 | −1 min | — |
| Thu 23 Jul | Neuhausen 23:59 | No data | — |
| Wed 22 Jul | Neuhausen 00:00 | No data | — |
| Tue 21 Jul | Neuhausen 23:59 | 0 min | — |
| Mon 20 Jul | Neuhausen 23:59 | 0 min | — |
| Sun 19 Jul | Neuhausen 23:59 | No data | — |