latetrains.pkLate, on record44 live
Guides/Reading a Pakistan Railways timetable: a plain guide

Reading a Pakistan Railways timetable: a plain guide

Late Trainsabout 7 min readtimetableshow-tobasics

Published 5 September 2026. Not revised since.

A Pakistan Railways timetable is a dense little document, and most of the confusion it causes comes from three or four conventions that nobody ever explains. None of them are complicated. Once you can see them, a stop table stops being a wall of numbers and becomes a fairly precise description of what the train is meant to do.

This guide walks through the parts that trip people up: the two time columns, the UP and DN labels, what a train number is actually telling you, how a service that runs past midnight is written down, and the difference between a time that was planned and a time that was observed.

The two time columns

Every stop table has two clock columns, and they are not interchangeable. One is when the train is booked to arrive at that station. The other is when it is booked to leave.

At the origin there is no arrival, because the journey has not started yet. At the final station there is no departure, because it ends there. In between, both are filled in, and the gap between them is the booked halt: the time the train is scheduled to stand at the platform. A stop with a two minute gap is a quick set down. A stop with a much longer one is usually a place where something operational happens, such as a crew change or a locomotive attaching or detaching.

The practical consequence is the one people get wrong at the station. If you are boarding, the column you care about is departure. If you are meeting someone, it is arrival. Reading the arrival time as your boarding time is the single most common way to watch a train leave without you, and it is a much bigger risk at the busy intermediate stops where the halt is short.

UP and DN

Pakistan Railways labels a working UP or DN. You will see it written directly into the train's name, so a service appears on the roster as something like 335up in one direction and 336dn in the other. The two numbers usually sit next to each other, which is a useful clue when you are scanning a list.

The important thing is what the label attaches to. UP and DN describe the working, not the route. One physical route carries two workings, one in each direction, and they are separate trains for every purpose that matters to a passenger. They have separate timetables, separate stop lists, and separate punctuality records. A route can be reliably on time in one direction and habitually late in the other, and that is not a contradiction: they are different trains running at different times of day over the same rails.

So do not try to reason from the compass. The reliable way to pick the right service is to look at the origin and the destination on the stop table itself and check that they are the way round you want. The direction label is how the railway names the working internally; the stop list is what tells you where it goes.

A train number is a direction

Following from that: a train number identifies a direction, not just a service. Two numbers, one name, two workings.

This is why searching for a train by name alone can leave you looking at the wrong half of the service. The name is shared. The number is not. When you tell someone which train you are on, the number is the part that removes the ambiguity, and it is the part worth writing down.

It matters for punctuality too. When this site reports how late a train usually runs, it reports it per working, because that is the only honest unit. Averaging the two directions together would blur a genuine difference into a number that describes neither of them.

Trains that run past midnight

Long distance services routinely leave on one calendar day and arrive on another, and the timetable has to say so without printing dates.

The convention is an offset. Departure is on day zero, the day the train starts. An arrival printed with an offset of one happens on the following calendar day. An offset of two means the day after that. So a train booked out at 22:00 with an arrival at 06:00 and an offset of one is not arriving eight hours before it left. It is running for eight hours across midnight.

Two things follow, and both catch people out.

First, the day of your journey is the departure day. A ticket for a train that leaves late in the evening is a ticket for that evening, even though most of the ride happens the next morning. If you are meeting the train at the far end, the arrival is tomorrow's business, not today's.

Second, a delay near midnight can look strange if you forget the offset. A train that should have arrived at 23:50 and actually arrives at 00:30 is forty minutes late, not twenty three hours early. This is exactly the arithmetic the offsets exist to make unambiguous, and it is why every run recorded here is filed under the date the train departed rather than the date it happened to be crossing a station.

Scheduled time and recorded time

The last distinction is the one this whole site is built around, so it is worth being explicit.

A scheduled time is a plan. It is what the published timetable says the train should do, and it does not change because a particular day went badly. Timetables also get revised, and when that happens the old one does not stop being true of the days it was in force for. That is why schedules here are kept as versions: a change to today's timetable does not silently rewrite what counted as on time last month.

A recorded time is an observation. It is what actually happened at a station on a particular date, and it comes from one of two places. Some arrivals are reported by Pakistan Railways' own systems, and those are stored as given. Others are worked out from the train's GPS trail, by noticing when it entered a station's location. The GPS feed goes quiet from time to time, which is not something we can fix from this end, and when it does the gaps stay gaps rather than being filled with an estimate.

Every recorded time on this site says which of those two it is. A delay is simply the difference between the two kinds of time, for one train, at one station, on one date.

A short checklist

When you are looking at a stop table and want to be sure you have read it correctly:

  1. Find your station and read the departure column, not the arrival one.
  2. Check the origin and destination match the direction you want, rather than trusting UP or DN.
  3. Note the train number, not just the name.
  4. If the journey crosses midnight, confirm the day offset on the arrival, and remember the ticket belongs to the departure day.
  5. When comparing a published time against something you saw or were told, ask which one is the schedule and which one is the observation.

None of this makes a train run on time. It does mean that when a train is late, you can say by how much, against what, and on which day, which is the beginning of every useful conversation about the railway.

See it in the data

  • All trains — every passenger service we hold a timetable for
  • All stations — every station on the passenger timetable