delay.world
Netherlands

Netherlands

How punctual have Dutch trains been since 2019? On long distance, the share of on-time stops fell from 96.3 % (2019) to 93.9 % (2025). Regional trains stayed steadier.

How to read the map

  • on time (under 6 min)
  • 6 to 14 min late
  • 15 to 29 min late
  • 30 to 59 min late
  • 60+ min late
  • cancelled

One day as a video

Replay of the Dutch train traffic on Wednesday, August 19, 2026: every dot is a train on its real track (tracks: ProRail, CC0). White = on time (under 6 minutes), yellow to pink = increasingly late, ring = cancelled. Based on public train archive data, not NS's own measurement.

The numbers

YearLong distanceRegional
On time (under 6 min)CancelledOn time (under 6 min)Cancelled
201996.3 %4.0 %98.2 %2.1 %
202097.2 %15.3 %98.5 %6.8 %
202197.0 %7.0 %98.4 %4.1 %
202295.4 %9.8 %97.8 %6.6 %
202393.3 %8.8 %97.0 %5.5 %
202493.1 %8.3 %96.8 %3.7 %
202593.9 %10.2 %97.4 %4.6 %
2026 *94.1 %11.4 %97.3 %4.9 %

* 2026: January to August only

The trend since 2019

Line chart: share of on-time and cancelled stops in the Netherlands, long distance and regional, 2019 to August 2026

Download the chart as an image

Provinces compared

How punctual are trains in each province? We count stops at stations in the province, separately for long distance and regional.

Long distance

ProvinceStopsOn timeCancelled
Groningen21,75296.3 %7.0 %
Fryslân43,23396.2 %6.4 %
Zeeland199,25495.7 %13.4 %
Drenthe43,61895.1 %7.0 %
Zuid-Holland775,51794.6 %11.3 %
Utrecht312,84094.4 %12.1 %
Gelderland280,46894.4 %11.2 %
Overijssel288,79694.2 %8.6 %
Noord-Holland1,155,54693.9 %10.7 %
Limburg215,83193.7 %12.8 %
Noord-Brabant437,72593.4 %14.5 %
Flevoland88,28793.3 %8.2 %

Regional

ProvinceStopsOn timeCancelled
Groningen818,76698.3 %3.7 %
Overijssel901,96898.2 %3.0 %
Limburg949,43297.7 %4.3 %
Fryslân466,97897.7 %3.2 %
Gelderland1,735,59297.6 %3.9 %
Drenthe195,62797.6 %2.7 %
Utrecht1,268,22897.5 %5.2 %
Flevoland332,09797.4 %5.0 %
Zuid-Holland1,840,33397.2 %5.4 %
Noord-Holland2,177,18897.0 %5.8 %
Noord-Brabant834,97796.8 %5.6 %
Zeeland13,01096.6 %5.7 %

Period: November 2025 to August 2026 without July. On time = under 6 minutes late, counted over the stops that ran. Cancelled = share of all stops. Stops at stations abroad are not included. Few stops (Zeeland, regional) make a value less certain. Based on public train archive data, not NS's own measurement. Boundaries: Kadaster (CC BY 4.0).

The 30 biggest rail cities

The 30 cities with the most train stops that also have long-distance service, ordered by punctuality (all train classes together).

CityStopsOn timeCancelled
Enschede136,00498.4 %3.4 %
Groningen293,19998.0 %4.5 %
Heerlen126,72197.8 %5.3 %
Zwolle217,13497.7 %4.7 %
Haarlem153,55797.7 %5.2 %
Sittard-Geleen125,25497.7 %5.5 %
Maastricht156,47997.6 %6.5 %
Leeuwarden159,11697.3 %4.0 %
Leiden233,57397.2 %7.6 %
Ede149,49897.2 %5.7 %
Den Haag481,26097.0 %7.8 %
Nijmegen258,20497.0 %7.8 %
Utrecht672,47296.9 %7.3 %
Gouda197,25396.8 %7.6 %
Almere340,03896.7 %5.5 %
Dordrecht221,51596.5 %6.9 %
Amersfoort285,53496.4 %6.7 %
Arnhem277,96896.3 %6.5 %
Delft158,87396.0 %7.9 %
Haarlemmermeer (incl. Schiphol)413,70195.9 %6.4 %
Tilburg147,76495.9 %10.0 %
Eindhoven164,45695.8 %8.8 %
Hengelo124,09795.7 %5.1 %
Amsterdam1,258,27395.5 %8.6 %
Zaanstad241,83295.5 %8.9 %
Hilversum170,63095.3 %5.1 %
's-Hertogenbosch191,25595.1 %12.5 %
Rotterdam482,80694.9 %8.8 %
Venlo122,70194.1 %7.3 %
Breda114,03094.0 %11.7 %

Period: November 2025 to August 2026 without July. A city is the municipality of the station; Schiphol belongs to Haarlemmermeer. Municipalities with regional trains only are not included. Based on public train archive data, not NS's own measurement.

On time = under 6 minutes late, counted over the stops that ran. Cancelled = share of all stops. This is our 6-minute rule; NS itself counts from 3 minutes. Based on public train archive data, not NS's own measurement.

Data: Rijden de Treinen, train archive (rijdendetreinen.nl/en/open-data/train-archive), from NS real-time data, licence CC BY 4.0. Analysed and summarised by us. Independent project, not affiliated with NS or Rijden de Treinen.

How we calculate