S9 21961 Lenzburg – Luzern

View line S9

Lenzburg 15:38 → Luzern 16:58 Daily 1 h 20 min · 21 stops SBB CFF FFS

Running now · updated 16:11

Between Ermensee and Hitzkirch −1 min

Estimated arrival at Luzern 16:58 · 7 km/h

  1. Lenzburg15:38
  2. Hallwil15:49
  3. Mosen16:05
  4. Ermensee16:09
  5. Hitzkirch16:12
  6. Gelfingen16:15
  7. Luzern16:58

Today it is running no worse than usual: typical arrival delay is −1 min; 100% of the last 15 runs arrived on time.

On-time · 30 days
100%
15/15 runs under 3 min
RT coverage: 14 full · 1 partial · 0 no data
On-time · 90 days
96%
25/26 runs under 3 min
RT coverage: 25 full · 1 partial · 0 no data
Typical delay
0min
Median at arrival, 90 days
30 days: −1 min
P90
0min
9 in 10 runs arrive with less than this
30 days: 0 min

Last 30 days

Arrival delay at Luzern, in minutes. One bar per run.

  • On time (<3 min)
  • 3–10 min
  • 10–30 min
  • 30+ min
  • Partial coverage
  • No data

Worst days

  • Wed 19 Aug Max en route +4 min · last fix heading to Luzern +4 min

Distribution · 90 days

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

  • Early 12% · 3
  • On time 85% · 22
  • 3–10 min 4% · 1
  • 10–30 min 0% · 0
  • 30+ min 0% · 0

On-time by weekday

  • 100% M n=2
  • 100% T n=5
  • 80% W n=5
  • 100% T n=5
  • 100% F n=3
  • 100% S n=3
  • 100% S n=3

Stops and timetable

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

StopSched.Today
15:38Passed
15:43Passed
15:45 / 15:46Passed
15:49Passed
15:52Passed
15:57Passed
16:01 / 16:02Passed
16:05Passed
16:09Passed
16:12 / 16:13Next
16:15
16:19
16:21
16:25 / 16:28
16:29
16:32
16:36 / 16:37
16:42 / 16:43
16:48
16:50
16:58

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
Sat 17 OctHitzkirch 16:09Partial coverage−1 min—
Fri 16 OctLuzern 17:000 min—
Thu 15 OctLuzern 16:58−1 min—
Wed 14 OctLuzern 16:58−1 min—
Tue 13 OctLuzern 16:58−1 min—
Mon 12 OctLuzern 16:58−1 min—
Sun 11 OctLuzern 16:590 min—
Sat 10 OctLuzern 16:58−1 min—
Sun 4 OctLuzern 16:590 min—
Fri 2 OctLuzern 16:570 min+1 min
Thu 1 OctLuzern 14:58−1 min—
Wed 30 SeptLuzern 14:570 min—
Mon 28 SeptLuzern 08:57+1 min—
Sun 27 SeptLuzern 08:58−2 min—
Tue 22 SeptLuzern 20:57−1 min—
Thu 27 AugLuzern 23:270 min+17 min
Wed 26 AugLuzern 23:270 min—
Tue 25 AugLuzern 23:270 min+4 min
Thu 20 AugLuzern 13:27+1 min—
Wed 19 AugLuzern 13:27+4 min+4 min
Tue 18 AugLuzern 13:270 min—
Fri 14 AugLuzern 11:57−1 min—
Sat 8 AugLuzern 19:57−1 min+1 min
Thu 30 JulLuzern 16:270 min+1 min
Wed 29 JulLuzern 16:270 min—
Tue 28 JulLuzern 16:28−1 min—