For a route you plan around a timetable, punctuality and cancelled trips matter most. For a frequent service where you arrive without checking a schedule, regular spacing and excess waiting time are more useful.
This distinction is used in Department for Transport reporting. Our figures are unofficial estimates from Thunder Bay Transit's public feeds. They are not an agency audit or a passenger survey.
We classify each reported departure at a scheduled timepoint: early is more than one minute before schedule; on time is one minute early through five minutes late; late is more than five minutes after schedule. Final destinations are excluded from departure punctuality.
Each timepoint counts separately. Being early at one stop cannot cancel out being late at another. We sum the on-time observations and divide by all observations with a delay value. We use reported departure delay, falling back to arrival delay when needed.
These are the last delay values retained from the trip-update feed. They can be predictions rather than confirmed departures. There is no universal agency OTP threshold, and this percentage should not be compared directly with a differently measured agency score.
The cancellation rate divides distinct trips reported cancelled by the trips in the archived timetable for that service date. Repeated feed messages count once. A missing vehicle alone is not a cancellation: it could be missing telemetry. Unreported missed trips are outside this measure.
Notice is measured from the first cancellation message to the scheduled departure. Less than 15 minutes is our short-notice threshold, including messages received after departure time. It is an editorial threshold, not an industry standard.
For someone arriving at random, long gaps are more likely to be encountered than short gaps. With complete intervals, average wait is the sum of squared headways divided by twice their total duration. Scheduled wait uses the same calculation: half the mean gap is only correct for an evenly spaced timetable.
We compare observed and scheduled forward waits over the same bounded interval at one interior timepoint, in one direction and time band. Excess waiting time is observed wait minus scheduled wait. Negative values are retained when spacing produces a shorter wait than the timetable.
Route values weight these complete windows by their duration. The system value averages the contributing routes equally. We have no passenger counts, so this is not a passenger-weighted estimate. On low-frequency routes it is a diagnostic of spacing, not a prediction of how a timetable-aware rider waits.
CV is the standard deviation of observed gaps divided by their mean. Zero means even spacing. We calculate it within each stop, direction, day and time band before combining windows. Pooling an every-15-minute morning with an every-30-minute evening would create variation even if both services ran perfectly.
CV measures spacing, not timetable adherence. An evenly spaced service can still be infrequent, late or missing half its trips. Read it alongside punctuality, cancellations and coverage.
Historical visits are reconstructed from the retained GPS positions and archived timetables. A short GPS segment must pass within 35 metres of the scheduled stop and be corroborated by the feed's stop status or progression. Segments over 30 seconds or implying a speed over 35 metres per second are rejected.
Terminals, endpoints, repeated stops, ambiguous visits, vehicle changes and backwards stop order are excluded. These rules screen observations; they do not establish a guaranteed timing accuracy. Older records use feed timestamps because vehicle measurement timestamps were not retained.
Every scheduled passage in a regularity window must be observed or explicitly reported cancelled. Otherwise the entire window is excluded. Very short gaps and very long gaps are retained when the observation is valid. Missing data never becomes zero excess wait or perfect regularity.
The exported data includes counts of complete and candidate windows. The surviving windows can be an unrepresentative sample. A trend that changes alongside its coverage needs investigation before being attributed to service improvement.
The light series shows daily readings. The heavier series recomputes the metric from 30 calendar days of counts and matched windows, rather than averaging daily percentages. It requires readings for at least 70% of the selected day type and a reading on the final day. This is a completeness rule, not a confidence interval.
The trend includes all days and service from 6 am to midnight. Use the route selector to follow the same route across periods. The default month is the most recent completed calendar month; the historical chart ends with the selected month and excludes the unfinished service day.
Seasonality and timetable changes affect comparisons. TfL compares quarters with the same quarter a year earlier. Until a full year is available, our month-to-month changes describe the observed period and cannot establish a seasonally adjusted trend.
Vehicle positions are polled every 6s, trip updates every 1m, and alerts every 1m. Position and cancellation histories are retained; delay rows retain the latest reported values for each trip, stop and service day.
The export includes metric counts, screened passages, timepoint delays, cancellations and the archived timetable used for each date. GPS source record IDs and timetable hashes make the derived observations traceable. Service times follow the GTFS specification, including times after midnight and daylight-saving transitions.