S9 21931 Lenzburg – Luzern

View line S9

Lenzburg 08:04 → Luzern 09:28 Daily 1 h 24 min · 21 stops SBB CFF FFS

✓ Today’s run finished

Today it reached Luzern at 09:30 +2 min

  1. Lenzburg08:04
  2. Hallwil08:15
  3. Mosen08:31
  4. Gelfingen08:45
  5. Hochdorf08:56
  6. Waldibrücke09:12
  7. Luzern09:28

Next service: tomorrow 08:04 from Lenzburg · Wed 21 Oct

Next departure 08:04 tomorrow · Lenzburg
On-time · 30 days
89%
17/19 runs under 3 min
RT coverage: 19 full · 0 partial · 0 no data
On-time · 90 days
93%
39/42 runs under 3 min
RT coverage: 42 full · 0 partial · 0 no data
Typical delay
0min
Median at arrival, 90 days
30 days: +1 min
P90
+2min
9 in 10 runs arrive with less than this
30 days: +3 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

  • Mon 31 Aug Max en route +8 min · last fix heading to Emmenbrücke +8 min
  • Fri 9 Oct Max en route +3 min · last fix heading to Beinwil am See +3 min
  • Thu 8 Oct Max en route +3 min · last fix heading to Beinwil am See +3 min

Distribution · 90 days

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

  • Early 2% · 1
  • On time 90% · 38
  • 3–10 min 7% · 3
  • 10–30 min 0% · 0
  • 30+ min 0% · 0

On-time by weekday

  • 83% M n=6
  • 100% T n=8
  • 100% W n=5
  • 80% T n=5
  • 80% F n=5
  • 100% S n=6
  • 100% S n=7

Stops and timetable

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

StopSched.
08:04
08:09
08:11
08:15
08:18
08:23
08:27 / 08:28
08:31
08:35
08:39 / 08:43
08:45
08:50
08:52
08:56 / 08:59
09:00
09:03
09:07
09:12 / 09:13
09:18
09:20
09:28

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
Tue 20 OctLuzern 09:31+2 min+2 min
Mon 19 OctLuzern 09:30+1 min+1 min
Sun 18 OctLuzern 09:29+1 min—
Sat 17 OctLuzern 09:32+3 min+3 min
Fri 16 OctLuzern 09:290 min—
Thu 15 OctLuzern 09:300 min—
Wed 14 OctLuzern 09:290 min—
Tue 13 OctLuzern 09:29−1 min—
Mon 12 OctLuzern 09:31+2 min+2 min
Sun 11 OctLuzern 09:290 min—
Sat 10 OctLuzern 09:31+1 min+1 min
Fri 9 OctBeinwil am See 08:31+3 min+3 min
Thu 8 OctBeinwil am See 08:31+3 min+3 min
Wed 7 OctBeinwil am See 08:280 min—
Tue 6 OctBeinwil am See 08:30+2 min+2 min
Mon 5 OctBeinwil am See 08:280 min—
Sun 4 OctLuzern 09:290 min—
Sun 27 SeptLuzern 18:27+1 min—
Mon 21 SeptLuzern 21:27+3 min+3 min
Sun 20 SeptLuzern 12:27−1 min—
Sat 19 SeptLuzern 12:27−1 min—
Fri 18 SeptLuzern 15:26+2 min+2 min
Thu 17 SeptLuzern 21:270 min—
Wed 16 SeptLuzern 11:270 min—
Tue 15 SeptLuzern 11:27+1 min—
Thu 10 SeptLuzern 17:270 min+1 min
Wed 9 SeptLuzern 17:28−1 min—
Tue 8 SeptLuzern 17:270 min+1 min
Thu 3 SeptLuzern 17:27+1 min+1 min
Tue 1 SeptLuzern 17:27+1 min+3 min