Where the network loses time, measured link by link from live vehicle positions. A link is one stop to the next; its run time is timed from the bus leaving the first to arriving at the second, so waiting at either stop is excluded and what is left is time on the road. Each link is scored against its own quiet-hour run, weighted by how many buses are scheduled across it.
Every link a bus has completed in the last 90 minutes, compared against what that same link normally takes at this hour, on this kind of day — not against a daily average, which would call every corridor congested at 8am and clear at 11pm whether or not anything was wrong. A link is flagged when its typical bus right now is doing worse than an unlucky bus normally does on it, a threshold taken from each link’s own spread rather than a flat percentage.
1 − quiet run ÷ observed run.
A link taking twice as long as it should scores 0.5. Averaged across the day,
weighted by how many buses were on it in each hour, so a link that is dreadful for one hour and
deserted for the rest does not outrank one that is bad all day with buses on it throughout.
90th percentile ÷ median − 1: how much worse an unlucky bus does than a
typical one. The 10 + is a damping constant — it means variability moves the
factor by a few per cent rather than dominating it. An unreliable link is worse than a uniformly
slow one, but not ten times worse.