Train NS 6012 Utrecht Centraal – Den Haag Centraal

Utrecht Centraal 05:39 → Den Haag Centraal 06:47 Mon, Tue, Wed, Thu, Fri 1 h 08 min · 13 stops NS (Nederlandse Spoorwegen)

✓ Today’s run finished

Today, last fix heading to Voorburg at 06:58 0 min

  1. Utrecht Centraal05:39
  2. Utrecht Terwijde05:45
  3. Woerden05:55
  4. Gouda06:08
  5. Zoetermeer Oost06:32
  6. Voorburg06:43
  7. Den Haag Centraal06:47

Next service: tomorrow 05:39 from Utrecht Centraal · Tue 27 Oct

Next departure 05:39 tomorrow · Utrecht Centraal
On-time · 30 days
95%
18/19 runs under 3 min
RT coverage: 10 full · 9 partial · 2 no data
On-time · 90 days
95%
39/41 runs under 3 min
RT coverage: 32 full · 9 partial · 21 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 Den Haag 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

  • Thu 17 Sept Max en route +8 min · last fix heading to Zoetermeer +8 min
  • Fri 2 Oct Max en route +9 min · last fix heading to Zoetermeer +6 min

Distribution · 90 days

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

  • Early 37% · 15
  • On time 59% · 24
  • 3–10 min 5% · 2
  • 10–30 min 0% · 0
  • 30+ min 0% · 0

On-time by weekday

  • 100% M n=8
  • 100% T n=8
  • 100% W n=8
  • 89% T n=9
  • 88% F n=8
  • — S n=0
  • — S n=0

Stops and timetable

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

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
Mon 26 OctVoorburg 06:58Partial coverage0 min—
Fri 23 OctVoorburg 06:570 min—
Thu 22 OctVoorburg 06:58+1 min—
Wed 21 OctVoorburg 06:580 min—
Tue 20 OctVoorburg 06:58+1 min+1 min
Mon 19 OctVoorburg 06:59+1 min+1 min
Fri 16 OctVoorburg 06:57Partial coverage0 min—
Thu 15 OctVoorburg 06:58Partial coverage+1 min—
Wed 14 OctVoorburg 06:58Partial coverage0 min—
Tue 13 OctVoorburg 07:00Partial coverage+2 min+2 min
Mon 12 OctVoorburg 06:58Partial coverage0 min—
Fri 9 OctVoorburg 06:58Partial coverage0 min—
Thu 8 OctVoorburg 06:57No data—
Wed 7 OctVoorburg 06:57Partial coverage0 min—
Tue 6 OctVoorburg 06:58Partial coverage0 min—
Mon 5 OctVoorburg 06:59No data—
Fri 2 OctZoetermeer 17:39+6 min+9 min
Thu 1 OctZoetermeer Oost 00:21−2 min+7 min
Wed 30 SeptZoetermeer Oost 00:21−2 min+52 min
Tue 29 SeptZoetermeer Oost 00:22−1 min+51 min
Mon 28 SeptZoetermeer 23:52−2 min+42 min
Fri 25 SeptZoetermeer 00:20−4 min+2 min
Thu 24 SeptZoetermeer Oost 00:21−2 min+52 min
Wed 23 SeptZoetermeer Oost 23:50−2 min+1 min
Tue 22 SeptLansingerland-Zoetermeer 00:00−3 min+3 min
Mon 21 SeptLansingerland-Zoetermeer 00:02−2 min+4 min
Fri 18 SeptZoetermeer Oost 23:51−1 min+2 min
Thu 17 SeptZoetermeer 17:09+8 min+8 min
Wed 16 SeptZoetermeer 22:12−2 min+3 min
Tue 15 SeptZoetermeer 17:010 min+3 min