latetrains.pkLate, on record44 live
Guides/Why a train can be late at one station and on time at the next

Why a train can be late at one station and on time at the next

Late Trainsabout 5 min readmethodologydelaystimetables

Published 5 September 2026. Not revised since.

People talk about a train being late as though lateness were something the train has, like a number painted on the side. It is more useful to think of it as something that gets measured, at a particular station, at a particular moment, and that can be a completely different number an hour later at the next one.

This sounds like a technicality. It is not. Almost every argument about whether a service is punctual comes down to two people quoting figures measured at different points and assuming they are talking about the same thing.

Delay is measured at a place

A stop table gives a booked time for each station a train calls at. When the train reaches one of those stations, the difference between the booked time and the actual time is the delay at that station. That is the whole definition.

Which immediately raises the question the definition does not answer: which station?

A long distance train might call at twenty or more. It has a delay figure at every one of them, and there is no rule that says they have to be similar. A train that leaves its origin twenty minutes down can arrive at its destination on time. A train that leaves on time can arrive four hours down. Both happen, regularly.

Time can be lost, and it can be made up

Two mechanisms, pulling in opposite directions along the route.

Time is lost for the reasons you would expect. Waiting for a signal or for a line to clear. A longer stop than booked because more people are boarding than the stop was written for. Running below the booked speed over a stretch of track. Waiting at a crossing point for an opposing service that is itself late. Each adds a few minutes, and they accumulate.

Time is made up because timetables are not written to the fastest the train can go. Working timetables usually carry some slack: a little extra running time on some sections, a stop booked slightly longer than it needs. It exists exactly so a service that falls behind has somewhere to catch up rather than carrying its lateness to the end and passing it on to everything behind it.

So a train that is thirty minutes down at one station is not necessarily thirty minutes down at the next. It might be forty. It might be twenty. Whether it goes up or down depends on the stretch of railway between them and how much room the timetable left there.

Reading the leg figure

This is why route pages here carry a figure that catches people out at first: how much delay a train tends to gain or lose over that specific leg.

It is a change, not a level. A train can run late through its entire journey and still show no change at all over one leg, because it arrived at both ends of that leg equally late. That is a train with a problem that started somewhere else and a leg that is behaving exactly as booked.

Conversely a train with an excellent overall record can show a large gain over one particular stretch, if that stretch is where its problems concentrate.

Two consequences follow, and both are easy to get backwards.

A large gain over a leg is not the same as a train that arrives late. It says this stretch tends to cost this service time. What that means for you depends on whether you are boarding before it or after it.

A large making up over a leg does not mean the train ran early. Trains do not run early in any meaningful sense. It means the train arrived at the far end less late than it arrived at the near end, which usually says more about the timetable on that stretch than about the train. If several different services all recover time over the same leg, the useful conclusion is about the leg.

Why we difference two measurements from the same run

There is a reason the leg figure is built the way it is, and it is a good illustration of a general problem with railway data.

The obvious way to rank services would be by which arrives closest to its booked time. The trouble is that this ranks partly by how accurate our copy of the timetable is. Where our booked time for a station is wrong, every delay we calculate at that station is wrong by the same amount, in the same direction, permanently.

Differencing two observations from the same run cancels that. If our timetable is off by a constant amount for a train, that error is present at both ends of the leg and subtracts away. What survives is the change between two stations, which is a real thing that happened on a real run, and it is much harder for a bad timetable cell to fake.

That is why the leg figure exists and why it is a difference rather than a level. It is the measurement that survives contact with imperfect source data.

What to do with all this

When you see a punctuality figure anywhere, the useful question is not whether the number is big. It is: measured where, and against what.

A whole journey figure tells you about the service overall and is dominated by wherever that service tends to come apart. A figure at a station tells you about arriving there, which is what you want if that is your station. A leg figure tells you what a stretch of railway does to a train, which is what you want when you are deciding whether the delay you can already see is likely to grow before it reaches you.

They are three different numbers. None of them is the delay. Each is a delay, measured somewhere, and knowing which is which is most of what it takes to read the data honestly.

See it in the data

  • The archive — what we collect, and the dataset itself
  • Punctuality rankings — every tracked service, ranked by how often it arrives within 15 minutes
  • The daily record — the most recent complete day of recorded arrivals, worst first
  • All trains — every passenger service we hold a timetable for