ICE 103 Basel Bad Bf – Zürich HB

View line ICE

Basel Bad Bf 12:41 → Zürich HB 14:03 Daily 1 h 22 min · 3 stops SBB CFF FFS

✓ Today’s run finished

Today it reached Zürich HB at 14:03 0 min

  1. Basel Bad Bf12:41
  2. Basel SBB12:48
  3. Zürich HB14:03

Next service: tomorrow 12:41 from Basel Bad Bf · Mon 19 Oct

Next departure 12:41 tomorrow · Basel Bad Bf
On-time · 30 days
90%
19/21 runs under 3 min
RT coverage: 21 full · 0 partial · 0 no data
On-time · 90 days
87%
46/53 runs under 3 min
RT coverage: 53 full · 0 partial · 2 no data
Typical delay
0min
Median at arrival, 90 days
30 days: +1 min
P90
+3min
9 in 10 runs arrive with less than this
30 days: +2 min

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

Worst days

  • Tue 25 Aug Max en route +5 min · last fix heading to La Chèvrerie-Monterêt +5 min
  • Wed 2 Sept Max en route +5 min · last fix heading to La Chèvrerie-Monterêt +5 min
  • Wed 5 Aug Max en route +4 min · last fix heading to St-Cergue +4 min
  • Tue 4 Aug Max en route +4 min · last fix heading to St-Cergue +4 min
  • Fri 14 Aug Max en route +3 min · last fix heading to St-Cergue +3 min

Distribution · 90 days

53 runs with a known final delay. On time = under 3 min, the same cut the map uses.

  • Early 2% · 1
  • On time 85% · 45
  • 3–10 min 13% · 7
  • 10–30 min 0% · 0
  • 30+ min 0% · 0

On-time by weekday

  • 100% M n=9
  • 57% T n=7
  • 80% W n=10
  • 100% T n=7
  • 88% F n=8
  • 100% S n=6
  • 83% S n=6

Stops and timetable

Timetable of the latest run from the operator’s GTFS (3 stops).

StopSched.
12:41
12:48 / 13:04
14:03

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

DateLast stopFinalMax
Sun 18 OctZürich HB 14:040 min—
Sat 17 OctZürich HB 14:040 min—
Fri 16 OctBasel SBB 12:49+1 min—
Thu 15 OctBasel SBB 12:49+1 min+1 min
Wed 14 OctBasel SBB 12:49+1 min+1 min
Tue 13 OctBasel SBB 12:500 min+2 min
Mon 12 OctBasel SBB 12:49+1 min+1 min
Sun 11 OctZermatt 18:49+1 min+1 min
Sat 10 OctZermatt 18:490 min+1 min
Fri 9 OctZermatt 18:50+1 min+7 min
Thu 8 OctZermatt 18:480 min+3 min
Wed 7 OctZermatt 18:50+1 min+3 min
Tue 6 OctZermatt 18:51+3 min+5 min
Mon 5 OctZermatt 18:490 min+28 min
Sun 4 OctZermatt 18:51+3 min+4 min
Thu 1 OctNyon 22:410 min—
Tue 29 SeptPonte Tresa 00:34+1 min+3 min
Mon 28 SeptPonte Tresa 00:35+2 min+3 min
Thu 24 SeptBasel SBB 01:09−4 min+2 min
Wed 23 SeptBasel SBB 01:10−1 min+15 min
Mon 21 SeptBière 23:240 min+3 min
Fri 18 SeptPonte Tresa 01:540 min+3 min
Thu 17 SeptGenolier 18:300 min—
Wed 16 SeptSt-Cergue 17:32+2 min+3 min
Tue 15 SeptPonte Tresa 00:04+2 min+3 min
Mon 14 SeptPonte Tresa 23:050 min+1 min
Wed 9 SeptSt-Cergue 21:03+2 min+4 min
Sun 6 SeptPonte Tresa 00:040 min—
Sat 5 SeptBasel SBB 01:090 min+2 min
Fri 4 SeptLa Chèvrerie-Monterêt 01:59+1 min+10 min