Map

Traffic Statistics

All countries · Live and recent days. Every figure says how many trains it is based on.

Data: 6 Oct 2026, 18:23 CEST

One coverage rule across the page. A train "has data" when its realtime feed reports a valid delay (between −60 and +120 min). Punctuality is computed over those trains only: trains without data never count as on time. A country enters a ranking when at least 30% of its trains have data and there are 20 or more; a station, with 10 or more. On time = under 3 min late.

Current punctuality (<3 min)

Current punctuality Fair
75%
based on 9,479 of 12,281 trains with RT data
Punctual = less than 3 min late. The 2,802 trains without data do not count.
Average delay
2.9min
mean over the 9,479 trains with data
Includes on-time (0) and early (negative) trains. It is the only definition of “average delay” on this page.
% of trains delayed
25.2%
2,385 of 9,479 trains with data are 3 min or more late
The complement of punctuality: 75 % + 25 % = 100 % of trains with data.
Average delay of delayed trains
11.2min
mean over the 2,385 trains 3 min or more late only
Measures severity when there is a delay. Not comparable with the overall “average delay”. Maximum now: 113.0 min.

Punctuality league · now

Trains running right now. Sortable by column. The vertical line on each bar marks the 30 % threshold.

Rank
1🇦🇺 Australia 96 / 151 98 %0.4 min
2🇨🇭 Switzerland 838 / 956 95 %0.5 min
3🇫🇮 Finland 112 / 125 91 %0.9 min
4🇳🇱 Netherlands 437 / 469 90 %1.0 min
5🇫🇷 France 1,255 / 1,287 82 %2.4 min
6🇸🇪 Sweden 86 / 89 80 %1.4 min
7🇳🇴 Norway 85 / 85 78 %2.1 min
8🇬🇧 United Kingdom 1,958 / 1,971 76 %1.8 min
9🇩🇪 Germany 2,583 / 2,882 74 %3.0 min
10🇵🇱 Poland 707 / 720 71 %4.7 min
11🇺🇸 United States 323 / 368 62 %4.8 min
12🇮🇪 Ireland 71 / 97 61 %2.2 min
13🇮🇹 Italy 269 / 269 41 %6.5 min
14🇪🇸 Spain 496 / 604 39 %8.8 min

Not enough data · 16 countries outside the ranking

With fewer than 30 % of trains reporting data, punctuality describes a minority that need not resemble the rest (e.g. one operator only). They are not ranked and their percentage is not shown as if it were the country's. Their 2,208 trains do appear on the map.

CountryTrains with data / totalCoverageReason
🇨🇦 Canada18 / 45 Small sample (18 < 20)
🇨🇿 Czechia145 / 645 Only 22.4% of trains with data (minimum 30%)

No realtime delay feed (14):

Trend · 30 days

Daily punctuality, weighted by services (source: daily_stats).

70 %75 %80 %85 %07/0914/0921/0928/0905/1029-day mean: 75.6 %

2,470,889 services with data over 29 days. 13–18 countries per day.

Delay Distribution · now

Over the 9,479 trains with RT data (not the 12,281 on the map).

  • Early or on time 57.2 %
  • < 3 min 17.6 %
  • 3-5 min 7.4 %
  • 5-10 min 8.7 %
  • 10-20 min 5.3 %
  • > 20 min 3.8 %
Punctual (< 3 min) 3–10 min 10-20 min > 20 min

Historical Punctuality

Weighted by services: a day with 4,000 trains weighs more than one with 400.

RankCountryServicesDays with dataPunctualityAverage delay
1🇯🇵 Japan 78,14229 / 29 95.6 %0.4 min
2🇨🇭 Switzerland 109,44829 / 29 95.4 %0.4 min
3🇫🇮 Finland 30,13729 / 29 90.0 %1.0 min
4🇦🇺 Australia 173,83329 / 29 88.0 %1.3 min
5🇸🇪 Sweden 18,07429 / 29 86.3 %1.0 min
6🇳🇴 Norway 11,37429 / 29 82.3 %1.8 min
7🇩🇪 Germany 1,082,38125 / 29 78.9 %2.0 min
8🇫🇷 France 108,81329 / 29 78.7 %3.1 min
9🇺🇸 United States 68,70329 / 29 74.1 %2.9 min
10🇬🇧 United Kingdom 637,98629 / 29 73.6 %2.1 min
11🇨🇿 Czechia 244,66029 / 29 73.6 %2.2 min
12🇮🇪 Ireland 23,64929 / 29 60.4 %4.1 min
13🇵🇱 Poland 168,54826 / 29 55.9 %5.0 min
14🇮🇹 Italy 11,07429 / 29 48.7 %4.3 min
15🇪🇸 Spain 134,49229 / 29 41.6 %8.9 min

Period 7 Sept – 5 Oct. 29 days with data in the system. ⚑ = the country has data on fewer than 50 % of those days (15); none in this period. Average delay = mean over all trains with data, weighted by services.

Stations · now

Next stop of running trains, from worst to best punctuality. Only stations with 10 or more trains with data; n = trains with data.

StationnPunctualityAverage delay
Barcelona-Sants12 / 19 8 %10.8 min
Madrid-Puerta de Atocha-Almudena Grandes12 17 %16.9 min
Dortmund Hbf12 / 13 17 %12.4 min
München Hbf12 / 13 50 %9.1 min
Stuttgart Hbf12 / 13 50 %6.5 min
Erfurt Hbf10 / 11 50 %5.6 min
Nürnberg Hbf20 / 22 50 %4.5 min
Frankfurt(Main)Hbf10 / 14 50 %3.7 min
Madrid-Chamartín-Clara Campoamor20 / 21 55 %4.7 min
Nantes12 58 %11.3 min
Hannover Hbf16 / 17 63 %5.3 min
Köln Hbf11 / 12 64 %8.8 min
Paris Montparnasse Hall 1 - 212 67 %8.3 min
Paris Gare de Lyon Hall 1 - 211 73 %2.3 min
Penn Station11 91 %−0.6 min
Leppington Station Platform 210 100 %0.0 min

Only 16 of the 7,978 stations with trains approaching meet the minimum right now. With n = 10, a single train moves punctuality by 10 points: that is why n is always shown.

Punctuality by hour

Last 7 days, each country's local time (source: line_delay_hourly). The units are position readings, not trains: a train counts once per reading.

60 %70 %80 %90 %0h6h12h18h23h
70–90 % fair Axis from 60 to 90 %

Filters

Punctuality by Type

Click on a bar to filter by that type

1 / 2

Worst Lines

  1. 1 LDES Euromed 0.0 % 16.4 min
  2. 2 VIA RailCA ic 11.1 % 17.9 min
  3. 3 LDES ALVIA 15.0 % 16.8 min
  4. 4 R90PL Regional 16.7 % 28.7 min
  5. 5 MEX12DE Regional Expr. 16.7 % 25.8 min
  6. 6 Empire ServiceUS ic 16.7 % 23.3 min
  7. 7 AVLOES AVLO 20.0 % 23.2 min
  8. 8 MEX18DE Regional Expr. 33.3 % 32.5 min
  9. 9 180AFR ic 37.5 % 22.5 min
  10. 10 ICE 10DE ice 38.5 % 19.5 min

More data by country

Active Services by Country

CountryServicesDelayedAverage delayRT Data
🇩🇪 Germany2,8826663.0 minYes
🇬🇧 United Kingdom1,9714651.8 minYes
🇫🇷 France1,2872292.4 minYes
🇨🇭 Switzerland956430.5 minYes
🇵🇱 Poland7202034.7 minYes
🇨🇿 Czechia645——No
🇪🇸 Spain6043018.8 minYes
🇳🇱 Netherlands469441.0 minYes
🇧🇪 Belgium372——No
🇺🇸 United States3681234.8 minYes
🇮🇹 Italy2691606.5 minYes
🇩🇰 Denmark257——No
🇷🇴 Romania217——No
🇸🇰 Slovakia173——No
🇦🇺 Australia15120.4 minYes
🇫🇮 Finland125100.9 minYes
🇵🇹 Portugal106——No
🇮🇪 Ireland97282.2 minYes
🇸🇪 Sweden89171.4 minYes
🇳🇴 Norway85192.1 minYes
🇧🇬 Bulgaria75——No
🇲🇾 Malaysia74——No
🇮🇱 Israel66——No
🇱🇺 Luxembourg50——No
🇭🇷 Croatia50——No
🇨🇦 Canada45——No
🇸🇮 Slovenia43——No
🇱🇻 Latvia24——No
🇪🇪 Estonia10——No
🇯🇵 Japan1——No

How late are the late trains (only trains with any delay, ≤2h; countries with ≥30% coverage)

CountryMedianAverageP90Maximum>5minTotal
🇫🇷 France10.0 min12.8 min29.5 min70.0 min125232
🇪🇸 Spain7.0 min12.3 min29.0 min111.0 min228361
🇮🇹 Italy6.0 min9.3 min22.2 min50.0 min105199
🇸🇪 Sweden5.0 min6.6 min14.8 min21.0 min1329
🇵🇱 Poland5.0 min11.6 min32.0 min100.0 min133299
🇩🇪 Germany4.0 min7.7 min17.0 min113.0 min3741,047
🇺🇸 United States3.8 min8.2 min20.0 min57.0 min88208
🇮🇪 Ireland3.0 min2.9 min6.0 min10.0 min754
🇳🇴 Norway2.4 min3.8 min5.6 min35.6 min748
🇬🇧 United Kingdom2.0 min4.1 min9.0 min89.0 min194979
🇳🇱 Netherlands1.7 min3.6 min8.1 min44.1 min24123
🇫🇮 Finland1.2 min2.6 min5.8 min20.8 min643
🇦🇺 Australia0.9 min3.6 min9.7 min20.6 min210
🇨🇭 Switzerland0.6 min1.7 min4.2 min44.9 min21309

Data Quality by Country

CountryMethodInterpolatedRecords
🇦🇺 Australiagtfs_timedYes18
🇦🇺 AustraliagpsNo133
🇧🇪 Belgiumgtfs_timedYes372
🇧🇬 Bulgariagtfs_timedYes75
🇨🇦 Canadagtfs_timedYes45
🇨🇭 Switzerlandgtfs_timedYes956
🇨🇿 Czechiagtfs_timedYes500
🇨🇿 CzechiagpsNo145
🇩🇪 Germanygtfs_timedYes2,882
🇩🇰 Denmarkgtfs_timedYes257
🇪🇪 Estoniagtfs_timedYes10
🇪🇸 SpaingpsNo604
🇫🇮 FinlandgpsNo125
🇫🇷 Francegtfs_timedYes1,287
🇬🇧 United KingdomgpsNo1,971
🇭🇷 Croatiagtfs_timedYes50
🇮🇪 IrelandgpsNo97
🇮🇱 Israelgtfs_timedYes66
🇮🇹 Italygtfs_timedYes269
🇯🇵 JapangpsNo1
🇱🇺 Luxembourggtfs_timedYes50
🇱🇻 Latviagtfs_timedYes24
🇲🇾 MalaysiagpsNo1
🇲🇾 Malaysiagtfs_timedYes73
🇳🇱 Netherlandsapi_timedYes119
🇳🇱 NetherlandsgpsNo350
🇳🇴 NorwaygpsNo85
🇵🇱 Polandgtfs_timedYes720
🇵🇹 Portugalgtfs_timedYes106
🇷🇴 Romaniagtfs_timedYes217
🇸🇪 SwedengpsNo89
🇸🇮 Sloveniagtfs_timedYes43
🇸🇰 Slovakiagtfs_timedYes173
🇺🇸 United StatesgpsNo368

Historical Data

88 records
DateServicesPositionsPunctuality Average delay
Mon 05 Oct153,99916,056,796 77.6 % 2.4 min
Sun 04 Oct115,98512,375,758 81.8 % 1.9 min
Sat 03 Oct127,76415,375,336 77.1 % 2.2 min
Fri 02 Oct136,71717,124,526 75.6 % 2.4 min
Thu 01 Oct137,47416,838,843 75.5 % 2.4 min
Wed 30 Sept136,73917,336,837 76.5 % 2.4 min
Tue 29 Sept137,88317,545,397 77.1 % 2.3 min
Mon 28 Sept134,95117,015,261 77.9 % 2.2 min
Sun 27 Sept111,43514,957,353 78.0 % 2.2 min
Sat 26 Sept124,90516,279,191 75.8 % 2.2 min
Fri 25 Sept136,82917,073,752 74.9 % 2.5 min
Thu 24 Sept136,76617,500,820 75.3 % 2.4 min
Wed 23 Sept136,83617,537,411 74.0 % 2.6 min
Tue 22 Sept137,14617,566,133 74.4 % 2.5 min
Mon 21 Sept137,92817,480,242 74.8 % 2.5 min
Sun 20 Sept105,69313,514,794 78.6 % 2.1 min
Sat 19 Sept119,87214,927,587 74.6 % 2.7 min
Fri 18 Sept134,24116,324,696 72.7 % 2.7 min
Thu 17 Sept132,51816,465,081 73.2 % 2.8 min
Wed 16 Sept133,75216,902,488 72.2 % 2.9 min
Tue 15 Sept133,08116,737,777 75.4 % 2.4 min
Mon 14 Sept132,29716,422,246 75.3 % 2.5 min
Sun 13 Sept105,76013,505,724 78.5 % 2.1 min
Sat 12 Sept118,74315,021,367 75.1 % 2.5 min
Fri 11 Sept132,30716,251,637 73.2 % 2.8 min
Thu 10 Sept132,61716,585,010 74.4 % 2.5 min
Wed 09 Sept129,21515,886,085 73.6 % 2.8 min
Tue 08 Sept132,25216,704,662 74.5 % 2.5 min
Mon 07 Sept132,52316,420,645 75.7 % 2.4 min
Sun 06 Sept106,40513,572,621 78.9 % 2.1 min
Sat 05 Sept118,21014,926,226 74.2 % 2.8 min
Fri 04 Sept127,62515,244,162 72.7 % 2.9 min
Thu 03 Sept126,87315,202,375 75.1 % 2.5 min
Wed 02 Sept127,21915,278,935 76.8 % 5.8 min
Tue 01 Sept126,81315,165,243 75.5 % 6.7 min
Mon 31 Aug126,26615,158,283 77.6 % 6.6 min
Sun 30 Aug102,03811,976,226 81.2 % 6.4 min
Sat 29 Aug112,77413,424,281 81.4 % 4.9 min
Fri 28 Aug130,13415,291,735 74.2 % 6.3 min
Thu 27 Aug129,98215,529,526 74.8 % 6.4 min
Wed 26 Aug130,27715,512,515 75.7 % 5.9 min
Tue 25 Aug135,86215,812,163 76.7 % 6.5 min
Mon 24 Aug135,34715,900,811 74.6 % 7.2 min
Sun 23 Aug104,34212,449,325 78.7 % 6.3 min
Sat 22 Aug117,00213,789,668 78.2 % 6.2 min
Fri 21 Aug135,99515,783,295 74.8 % 7.5 min
Thu 20 Aug136,32615,914,899 74.4 % 7.1 min
Wed 19 Aug136,67615,772,911 75.6 % 6.7 min
Tue 18 Aug136,99115,879,733 75.8 % 6.9 min
Mon 17 Aug134,84615,853,329 74.9 % 7.1 min
Sun 16 Aug105,79212,555,009 77.3 % 7.1 min
Sat 15 Aug117,09713,793,402 69.6 % 7.5 min
Fri 14 Aug135,14815,747,649 72.5 % 8.2 min
Thu 13 Aug134,12215,742,163 73.7 % 8.0 min
Wed 12 Aug136,43716,003,180 74.9 % 6.9 min
Tue 11 Aug136,64015,966,402 76.7 % 6.4 min
Mon 10 Aug135,97415,953,168 76.2 % 6.8 min
Sun 09 Aug104,75512,362,363 77.9 % 6.6 min
Sat 08 Aug118,49213,712,296 72.8 % 7.1 min
Fri 07 Aug135,59015,794,038 74.5 % 7.5 min
Thu 06 Aug135,32715,815,212 76.1 % 6.7 min
Wed 05 Aug136,80515,990,623 76.1 % 6.7 min
Tue 04 Aug135,83015,779,108 74.9 % 7.3 min
Mon 03 Aug135,29715,857,510 75.7 % 7.6 min
Sun 02 Aug106,23212,621,173 78.3 % 6.3 min
Sat 01 Aug118,26613,823,903 79.9 % 5.9 min
Fri 31 Jul134,43715,757,015 74.8 % 7.2 min
Thu 30 Jul134,49215,802,565 74.9 % 7.7 min
Wed 29 Jul135,34015,852,459 75.3 % 7.3 min
Tue 28 Jul135,34515,772,390 77.1 % 6.6 min
Mon 27 Jul134,53215,841,114 78.4 % 6.7 min
Sun 26 Jul106,16213,031,939 77.8 % 6.9 min
Sat 25 Jul117,10715,002,769 72.6 % 7.0 min
Fri 24 Jul134,90516,626,837 76.7 % 6.7 min
Thu 23 Jul134,05216,490,821 78.3 % 6.4 min
Wed 22 Jul136,12716,911,040 77.6 % 6.7 min
Tue 21 Jul135,44516,774,967 76.9 % 6.7 min
Mon 20 Jul135,24716,720,497 76.9 % 7.0 min
Sun 19 Jul99,69412,993,783 72.3 % 7.8 min
Sat 18 Jul76,2452,695,528 69.0 % 8.3 min
Fri 17 Jul69,1461,352,311 72.3 % 8.0 min
Thu 16 Jul89,3621,989,455 73.7 % 7.9 min
Wed 15 Jul135,20916,702,333 71.4 % 7.7 min
Tue 14 Jul136,11316,917,784 70.2 % 7.9 min
Mon 13 Jul134,07416,653,511 70.2 % 8.5 min
Sun 12 Jul99,54212,897,985 71.9 % 8.3 min
Sat 11 Jul117,36113,454,987 75.7 % 7.4 min
Fri 10 Jul19,604834,252 72.4 % 9.7 min

Sources: current_positions, daily_stats and line_delay_hourly · 6 Oct 2026, 18:23 CEST