BUS

About this site

how the figures are worked out
← all routes

What this is

An independent record of how 27 Sydney bus routes are actually running, published as 53 boards — usually one for each direction of a route, so the run into town and the run home are judged separately. It is built from the public realtime feed and has no connection to the operator or to Transport for NSW.

Every trip on a tracked route gets a row, every day, showing how far ahead or behind the timetable the bus was at a handful of stops along the way. Nothing is averaged away: you can see the individual bus.

Where the data comes from

Two feeds published by Transport for NSW on the Open Data Hub, used under the Creative Commons Attribution 4.0 licence:

Both are Sydney‑wide. This site keeps only the routes it tracks.

How often it updates

The feed is read every 30 seconds. Pages are rewritten every 3 minutes, and refresh themselves in your browser every 60 seconds. A service day runs from 03:30 to 03:30, so buses running after midnight belong to the day they started.

What “late” means

The realtime feed reports each bus against its booked time at each stop. A cell shows that difference at one checkpoint: +2:30 is two and a half minutes behind, -1:00 is a minute early, on time is exactly to the second.

Colour runs from early through to very late, so a row can be read at a glance without reading the numbers.

Only what was actually observed

The feed also predicts times for stops the bus has not reached. Those predictions are not shown. A stop appears only once the bus has genuinely passed it — which is knowable because the feed drops a stop from a trip once it is behind the bus.

So a bus still on the road shows a partial row, filling in as it goes. That is by design, not missing data.

Which stops are shown

Five to seven per board, not every stop. They are taken from the timing points the timetable itself marks — the stations, interchanges and named stops it publishes real times for — and spread along the run so the row tells the story of the journey.

A blank cell on a completed trip usually means that trip did not serve that stop. Several routes run short workings that start or finish part way along, and they are shown on the same board as the full run rather than hidden.

The two percentages

On time counts only trips that finished, and asks whether the bus arrived within 3 minutes of its booked time at the stop that board is scored on — normally the last checkpoint the trip reaches, which is where its passengers get off.

On a few boards it is read one stop earlier, and deliberately so. A trip’s very last stop is the one place the feed can never confirm: the whole trip disappears when it finishes, rather than the stop dropping out, so the figure recorded there is the last prediction standing. Roughly one time in fifty that prediction is nonsense. Where the second‑last stop is close by, that is used instead.

No‑show is the share of trips that were due and never appeared, out of those whose fate is settled — no-shows ÷ (completed + no-shows). Trips still to come, or still running, are in neither half, so the figure does not swing about during the day.

What each status means

StatusMeaning
RANFinished. Seen at every checkpoint through to its last.
ACTIVEOut on the road now. Cells fill in as it passes each stop.
PARTIALSeen at some stops, then lost before the end — the feed stopped reporting it. What was observed is shown; the rest stays blank.
PENDINGNot due yet.
NO-SHOWDue, and no sign of it in the feed at any stop.
UNTRACKEDDue before this board started watching — a new board, or a gap in the tracking. Counted as neither run nor missed, because nobody was looking.

What it cannot tell you

← back to all routes

Data source. Built from realtime (GTFS‑Realtime trip updates and vehicle positions) and timetable data published by Transport for NSW via the Transport for NSW Open Data Hub, used under the Creative Commons Attribution 4.0 licence. This site is independent: it is not endorsed by, affiliated with, or produced by Transport for NSW.

Calculations. All lateness, crowding, on‑time and no‑show figures shown here are calculated by the site owner on a best‑efforts basis from those public feeds. They are not official Transport for NSW performance measures, may contain errors or gaps where the feeds are incomplete, and should not be relied on for travel decisions.

Actual observations only. A stop is shown only once a bus has reached or passed it. Stops still ahead of a running bus are left blank rather than filled with the feed’s predictions, so a trip in progress shows a partial row by design.