Countries compared
How punctual are trains in the countries we cover? Every country on the same rule. Inside one table, all countries use the same period.
On time = under 6 minutes late, counted over the stops that ran. Cancelled = share of all stops.
Newer months, without Switzerland
January to August 2026, without July. July is left out because the German raw data has too many gaps in that month. Switzerland is missing here because its archive ends in June.
Long distance
| # | Country | On time (under 6 min) | Cancelled |
|---|---|---|---|
| 1 | Netherlands | 93.9 % | 11.4 % |
| 2 | Belgium | 91.6 % | not in the source |
| 3 | Germany | 55.5 % | 7.4 % |
Regional
| # | Country | On time (under 6 min) | Cancelled |
|---|---|---|---|
| 1 | Netherlands | 97.2 % | 5.0 % |
| 2 | Belgium | 95.2 % | not in the source |
| 3 | Germany | 82.7 % | 3.4 % |
Read with care: the networks differ. Dutch long-distance trains run short distances at a dense frequency, German ones often run long distances. And the Netherlands cancels more stops, which a ranking by punctuality alone does not show. That is why both values sit side by side.
Belgium: the source (Infrabel) lists only trains that ran and has no information on cancellations. That is why the “Cancelled” column is empty, and why the Belgian punctuality values look better than they can be for travellers if many trains are cancelled. They are not directly comparable with the other countries.
The Swiss source sometimes delivers the last forecast received as the actual time, so the Swiss values can be too favourable.
Based on public timetable and train archive data, not the railway companies' own measurement. Sources and licences are on the method page.
One day, three countries
Wednesday 19 August 2026 in Germany, the Netherlands and Belgium on one map. Every filled dot is a passenger train that ran that day, on its track and coloured by its delay: white = on time (under 6 minutes), yellow to pink = increasingly late. Rings are cancelled trains on their planned path (Germany and the Netherlands only; they are not counted). The counters show how many trains are in service in each country and what share of them is running 6 or more minutes late at that moment.
Share of the trains in service running 6 or more minutes late at 5:45 pm: Germany 27.8 % of 2,179 trains, the Netherlands 2.9 % of 346, Belgium 11.8 % of 304. At 8 am: 23.3 %, 2.5 % and 3.1 %.
The counters are a snapshot of the trains on the move at one minute, all train types together. The tables above count stops over several months, so the percentages do not compare directly. It was a normal Wednesday: in Germany 83.0 % of the stops that ran were under 6 minutes late that day, on the other August Wednesdays 82.3 to 84.2 %. Cancelled trains are not in the shares, and the Belgian data has none at all. The sources record delays differently, so compare with care.
Data: Deutsche Bahn timetable data (CC BY 4.0), collected by Piet Brömmel (piebro/deutsche-bahn-data), Rijden de Treinen (CC BY 4.0), Infrabel (CC0). Stations: DB Station&Service (CC BY 4.0), Rijden de Treinen / NS (CC0), Infrabel (CC0). Tracks: DB InfraGO (CC BY 4.0), ProRail (CC0), Infrabel (CC0). Map: Natural Earth. Analysed by delay.world.