S16 19694 Rapperswil SG – Zürich HB
Alerts for train 19694
Alerts are saved per line, not per trip id, so they keep working when the operator changes the timetable. This train runs on line S16.
✓ Today’s run finished
Today it reached Zürich HB at 00:57 −1 min
- Rapperswil SG00:09
- Uerikon00:19
- Männedorf00:26
- Herrliberg-Feldmeilen00:36
- Küsnacht ZH00:44
- Zollikon00:47
- Zürich HB00:57
Next service: tomorrow 00:09 from Rapperswil SG · Thu 8 Oct
Last 30 days
Arrival delay at Zürich HB, 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
32 runs with a known final delay. On time = under 3 min, the same cut the map uses.
- Early 13% · 4
- On time 88% · 28
- 3–10 min 0% · 0
- 10–30 min 0% · 0
- 30+ min 0% · 0
On-time by weekday
- 100% M n=2
- 100% T n=5
- 100% W n=7
- 100% T n=6
- 100% F n=2
- 100% S n=3
- 100% S n=7
Stops and timetable
Timetable of the latest run from the operator’s GTFS (17 stops).
| Stop | Sched. |
|---|---|
| 00:09 | |
| 00:12 | |
| 00:15 / 00:16 | |
| 00:19 | |
| 00:22 / 00:23 | |
| 00:26 | |
| 00:28 / 00:29 | |
| 00:32 / 00:33 | |
| 00:36 / 00:37 | |
| 00:39 | |
| 00:41 | |
| 00:44 | |
| 00:45 | |
| 00:47 | |
| 00:50 | |
| 00:54 | |
| 00:57 |
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 |
|---|---|---|---|
| Wed 7 Oct | Zürich HB 00:57 | −1 min | — |
| Tue 6 Oct | Zürich HB 00:59 | +1 min | +3 min |
| Mon 5 Oct | Zürich HB 00:58 | 0 min | — |
| Thu 1 Oct | Zürich HB 00:58 | +2 min | +2 min |
| Wed 30 Sept | Zürich HB 00:57 | 0 min | +3 min |
| Sun 13 Sept | Zürich HB 00:56 | 0 min | +2 min |
| Thu 10 Sept | Zürich HB 00:56 | 0 min | +2 min |
| Wed 9 Sept | Zürich HB 00:56 | −1 min | +2 min |
| Tue 8 Sept | Zürich HB 00:57 | +1 min | +6 min |
| Thu 3 Sept | Zürich HB 01:08 | 0 min | +3 min |
| Wed 2 Sept | Zürich HB 01:08 | +1 min | +3 min |
| Tue 1 Sept | Zürich HB 00:56 | 0 min | +2 min |
| Mon 31 Aug | Zürich HB 00:56 | 0 min | +1 min |
| Sun 30 Aug | Zürich HB 01:08 | 0 min | — |
| Thu 27 Aug | Zürich HB 00:56 | −1 min | — |
| Wed 26 Aug | Zürich HB 00:56 | −1 min | +1 min |
| Tue 25 Aug | Zürich HB 00:56 | −1 min | — |
| Sun 23 Aug | Zürich HB 01:09 | −1 min | +1 min |
| Sat 22 Aug | Zürich HB 01:08 | 0 min | — |
| Fri 21 Aug | Zürich HB 01:08 | +1 min | +5 min |
| Thu 20 Aug | Zürich HB 00:56 | −1 min | +1 min |
| Wed 19 Aug | Zürich HB 00:56 | −1 min | +2 min |
| Tue 18 Aug | Zürich HB 00:56 | −1 min | +3 min |
| Sun 16 Aug | Zürich HB 00:56 | +1 min | +3 min |
| Sun 9 Aug | Zürich HB 00:56 | −1 min | +1 min |
| Sun 2 Aug | Zürich HB 00:56 | −1 min | +2 min |
| Thu 30 Jul | Zürich HB 00:56 | −3 min | +2 min |
| Wed 29 Jul | Zürich HB 00:56 | 0 min | +2 min |
| Sun 26 Jul | Zürich HB 01:12 | +1 min | +1 min |
| Sat 25 Jul | Zürich HB 01:08 | 0 min | — |