Basically, for a bunch of specific stops & routes, capture the real-time display values for each service that passes through it, as appears at www.maxx.co.nz and the AT mobile app. This is a dump of historic (Jan->May) data.
Raw JSON query which it's capturing looks like:
See also Maxx RealTime Data - Tracked Services. You'll want both.
This is a table of real-time results for as long as each service appeared on the display, queried every minute for the hour leading up to scheduled arrival, and past it if it was late.
As with the API, "Actual" times are the scheduled times, and "Expected" times are the prediction times. Not all buses are "monitored" (unmonitored buses seem to just echo the schedule), and I have no idea what the InCongestion flag means.
Buses seem to disappear when it passes the stop - so the last-update time of early buses will be before the scheduled time.
Known issue - this table won't currently download as DBF/shapefile. Download as CSV instead.
|Columns||id, service_id, maxx_ActualArrivalTime, maxx_ActualDepartureTime, maxx_ArrivalStatus, maxx_ExpectedArrivalTime, maxx_ExpectedDepartureTime, maxx_InCongestion, maxx_Monitored, maxx_TimeStamp, created_at|
|Services||Web Feature Service (WFS)|
|Added||23 May 2014|
|Last updated||23 May 2014|
|Revisions||7 - Browse all revisions|
|Current revision||Imported on May 24, 2014 from CSV .|