Train NS 2831 Rotterdam Centraal – Utrecht Centraal

Rotterdam Centraal 09:20 → Utrecht Centraal 09:57 Daily 0 h 37 min · 4 stops NS (Nederlandse Spoorwegen)

✓ Today’s run finished

Today, last fix heading to Gouda at 09:58 0 min

  1. Rotterdam Centraal09:20
  2. Rotterdam Alexander09:28
  3. Gouda09:38
  4. Utrecht Centraal09:57

Next service: tomorrow 09:20 from Rotterdam Centraal · Fri 6 Nov

Next departure 09:20 tomorrow · Rotterdam Centraal
On-time · 30 days
95%
18/19 runs under 3 min
RT coverage: 13 full · 6 partial · 2 no data
On-time · 90 days
95%
19/20 runs under 3 min
RT coverage: 14 full · 6 partial · 45 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 Utrecht 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 7 Oct Max en route +13 min · last fix heading to Gouda +13 min

Distribution · 90 days

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

  • Early 0% · 0
  • On time 95% · 19
  • 3–10 min 0% · 0
  • 10–30 min 5% · 1
  • 30+ min 0% · 0

On-time by weekday

  • 100% M n=3
  • 100% T n=3
  • 75% W n=4
  • 100% T n=4
  • 100% F n=2
  • 100% S n=2
  • 100% S n=2

Stops and timetable

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

Last 90 days, 20 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
09:20on time on time
09:28≈ on time ≈ on time
09:38 / 09:39≈ on time ≈ +1 min
09:57on time +2 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
Thu 5 NovGouda 09:58Partial coverage0 min—
Wed 4 NovGouda 09:59+2 min+2 min
Tue 3 NovGouda 10:07No data—
Mon 2 NovGouda 09:53Partial coverage0 min—
Sun 1 NovGouda 10:210 min—
Sat 31 OctGouda 10:00+1 min+1 min
Fri 30 OctGouda 09:58No data—
Thu 29 OctGouda 09:58Partial coverage0 min—
Wed 28 OctGouda 09:580 min—
Tue 27 OctGouda 09:590 min—
Mon 26 OctGouda 09:58Partial coverage0 min—
Fri 16 OctGouda 09:580 min—
Thu 15 OctRotterdam Centraal 10:580 min—
Wed 14 OctGouda 09:580 min—
Tue 13 OctGouda 10:000 min—
Mon 12 OctGouda 09:59Partial coverage0 min—
Sun 11 OctGouda 11:480 min—
Sat 10 OctGouda 09:580 min—
Fri 9 OctGouda 09:590 min—
Thu 8 OctGouda 09:58Partial coverage0 min—
Wed 7 OctGouda 10:21+13 min+13 min
Tue 6 OctGouda 09:590 min—
Mon 5 OctGouda 09:55No data—
Sun 4 OctGouda 09:53No data—
Sat 3 OctGouda 09:53No data—
Fri 2 OctGouda 09:53No data—
Thu 1 OctGouda 09:53No data—
Wed 30 SeptGouda 09:54No data—
Tue 29 SeptGouda 09:53No data—
Mon 28 SeptGouda 09:53No data—