TransitAI Core

Automatic Vehicle Location · AVL

Where every bus is, and how late.

The sample is not raw GPS. It is the vendor's stop-level record: for every trip, every stop, when the bus was due and when it actually left.

One-minute buckets, clipped at 10 minutes early and 25 minutes late. Negative is early. Most departures sit a minute or two behind the plan.
Median lateness by scheduled hour, with the band from the 10th to the 90th percentile. Hours past midnight belong to the previous service day.
Share of stop events the vendor marked on time, late or early; the rest have no actual time. The window is the vendor's: on time means up to one minute early or five minutes late. Thresholds differ by agency, so the region recomputes from the raw times.
Routes with at least 5,000 stop events in the month.
Weekends run closer to plan. Thirty service days.

Two things worth knowing before trusting the file. The ADHERENCE column has the opposite sign to its data dictionary: in the file, negative means late. And of rows have no actual departure time at all. Both are the kind of vendor quirk the adapter exists to absorb.

Location is also the key that unlocks other data. A fare tap or a door count has no stop attached until it is matched to where the bus was at that second.

Rows
One per trip per stop, 26 columns, no header
Days
to
Dwell
Median s at a stop; 90th percentile s
Shared as
GTFS-Realtime vehicle positions and TIDES vehicle locations
Feeds
Delay prediction, regional ETA, on-time performance

↑ ↓ to move · ↵ to open · esc to close