Train NS 3452 Haarlem – Alkmaar

Haarlem 17:12 → Alkmaar 17:41 Mon, Tue, Wed, Thu 0 h 29 min · 5 stops NS (Nederlandse Spoorwegen)

It has not run yet today

Last recorded run: Tuesday 10 November +1 min

Next service: today 17:12 from Haarlem · Wed 11 Nov

Next departure 17:12 today · Haarlem
On-time · 30 days
100%
8/8 runs under 3 min
RT coverage: 3 full · 5 partial · 5 no data
On-time · 90 days
92%
11/12 runs under 3 min
RT coverage: 4 full · 8 partial · 33 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 Alkmaar, in minutes. One bar per run.

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

Worst days

  • Thu 8 Oct Max en route +6 min · last fix heading to Castricum +6 min

Distribution · 90 days

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

  • Early 0% · 0
  • On time 92% · 11
  • 3–10 min 8% · 1
  • 10–30 min 0% · 0
  • 30+ min 0% · 0

On-time by weekday

  • 100% M n=4
  • 100% T n=3
  • 100% W n=2
  • 67% T n=3
  • — F n=0
  • — S n=0
  • — S n=0

Stops and timetable

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

Last 90 days, 12 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
17:12on time on time
17:22— —
17:30— —
17:36— —
17:41— —

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
Tue 10 NovHeiloo 17:49Partial coverage+1 min—
Mon 9 NovHeiloo 17:49Partial coverage+1 min—
Thu 29 OctHeiloo 17:50No data—
Wed 28 OctHeiloo 17:50Partial coverage0 min—
Tue 27 OctHeiloo 17:50No data—
Mon 26 OctHeiloo 17:500 min—
Thu 22 OctHeiloo 17:51Partial coverage0 min—
Wed 21 OctHeiloo 18:25No data—
Tue 20 OctHeiloo 17:51Partial coverage0 min—
Mon 19 OctHeiloo 17:50No data—
Thu 15 OctHeiloo 17:590 min—
Wed 14 OctHeiloo 17:59No data—
Tue 13 OctHeiloo 18:070 min—
Mon 12 OctHeiloo 17:590 min—
Thu 8 OctCastricum 17:55Partial coverage+6 min+6 min
Wed 7 OctHeiloo 17:50Partial coverage0 min—
Tue 6 Oct— 17:16No data—
Mon 5 OctHeiloo 17:50Partial coverage0 min—
Thu 1 OctHeiloo 17:50No data—
Wed 30 SeptHeiloo 17:50No data—
Tue 29 SeptHeiloo 17:50No data—
Mon 28 SeptHeiloo 17:50No data—
Thu 24 SeptHeiloo 17:46No data—
Wed 23 SeptHeiloo 17:48No data—
Tue 22 SeptHeiloo 17:50No data—
Mon 21 SeptHeiloo 17:50No data—
Thu 17 SeptHeiloo 17:50No data—
Wed 16 SeptHeiloo 17:50No data—
Tue 15 SeptHeiloo 17:50No data—
Mon 14 SeptHeiloo 17:50No data—