Train NS 4209 Haarlem – Leiden Centraal

Haarlem 05:29 → Leiden Centraal 05:52 Mon, Tue, Wed, Thu, Fri 0 h 23 min · 5 stops NS (Nederlandse Spoorwegen)

It does not run today

Last recorded run: Friday 6 November No data

Next service: Monday 05:29 from Haarlem · Mon 9 Nov

Next departure 05:29 Monday · Haarlem
On-time · 30 days
94%
17/18 runs under 3 min
RT coverage: 17 full · 1 partial · 2 no data
On-time · 90 days
98%
40/41 runs under 3 min
RT coverage: 40 full · 1 partial · 22 no data
Typical delay
0min
Median at arrival, 90 days
30 days: 0 min
P90
+1min
9 in 10 runs arrive with less than this
30 days: +1 min

Last 30 days

Arrival delay at Leiden Centraal, 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 28 Oct Max en route +15 min · last fix heading to Voorhout +15 min

Distribution · 90 days

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

  • Early 0% · 0
  • On time 98% · 40
  • 3–10 min 0% · 0
  • 10–30 min 2% · 1
  • 30+ min 0% · 0

On-time by weekday

  • 100% M n=6
  • 100% T n=8
  • 88% W n=8
  • 100% T n=11
  • 100% F n=8
  • — S n=0
  • — S n=0

Stops and timetable

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

Last 90 days, 41 runs. At intermediate stops it is an estimate from the delay at origin and destination. Delays over 2 h count as “> 2 h”: our data does not measure them exactly.

StopSched.Usually 9 days in 10
05:29on time on time
05:34≈ on time ≈ on time
05:39≈ on time ≈ on time
05:46≈ on time ≈ +1 min
05:52on time +1 min

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.

Will I make my connection?

Pick where you get off and how many minutes you have until your next train. We work it out from what this train did over the last 90 days.

Include the time to change platforms. It is an estimate from past data, not a guarantee. Days more than 2 h late count as a missed connection.

Recent runs

DateLast stopFinalMax
Fri 6 NovVoorhout 06:04No data—
Thu 5 NovVoorhout 06:02Partial coverage+1 min—
Wed 4 NovVoorhout 05:49+2 min+2 min
Tue 3 NovVoorhout 05:490 min—
Mon 2 NovVoorhout 05:490 min—
Fri 30 OctVoorhout 06:01No data—
Thu 29 OctVoorhout 06:03+1 min+1 min
Wed 28 OctVoorhout 05:57+15 min+15 min
Tue 27 OctVoorhout 05:510 min—
Mon 26 OctVoorhout 05:490 min—
Fri 23 OctVoorhout 06:010 min—
Thu 22 OctVoorhout 06:020 min—
Wed 21 OctVoorhout 05:490 min—
Tue 20 OctVoorhout 05:490 min—
Mon 19 OctVoorhout 05:490 min—
Fri 16 OctVoorhout 06:010 min—
Thu 15 OctVoorhout 06:02+1 min—
Wed 14 OctVoorhout 05:500 min—
Tue 13 OctVoorhout 05:50+1 min+1 min
Fri 9 OctVoorhout 06:020 min—
Thu 8 OctVoorhout 06:000 min—
Wed 7 OctVoorhout 05:490 min—
Tue 6 OctVoorhout 05:500 min—
Mon 5 OctVoorhout 05:49No data—
Fri 2 OctVoorhout 06:02No data—
Thu 1 OctVoorhout 06:02No data—
Wed 30 SeptVoorhout 05:49No data—
Tue 29 SeptVoorhout 05:50No data—
Mon 28 SeptVoorhout 05:50No data—
Fri 25 SeptHaarlem 18:220 min—