TransitAI Core

Sample datasets, one month, one agency

Field by field.

The classification applied to the four sample files. Filter by criticality or sensitivity, or pick a regional product to see which fields it depends on.

Showing all 57 field groups.

Impact matrix.

Critical fields each product depends on, per dataset. Changing one of them breaks the product. Click a product to filter the tables.

Vehicle location (AVL)

26 columns, no header row, semicolon-delimited. One row per trip per stop.

FieldCriticalitySensitivityWhy, and what depends on itProducts
CALENDAR_IDCriticalInternalDate key (1YYYYMMDD). Every join, every daily product.7
TIME_TABLE_VERSION_NAMEImportantInternalBoard period; ties rows to the GTFS service in force.2
BLOCK_ABBRImportantInternalVehicle block. Vehicle-level products only.2
TRIP_IDCriticalInternalJoins AVL to APC. Must map to the GTFS trip; today it does not.5
ROUTE_ABBRCriticalInternalRoute key. Regional ETA, on-time performance, forecasting.5
ROUTE_DIRECTION_ABBRImportantInternalDirection. ETA and origin–destination by direction.2
VARIANTInformationalInternalPattern letter shown on the bus.0
GEO_NODE_ABBRCriticalInternalStop key; equals GTFS stop_code. Every stop-level product.4
GEO_NAMEInformationalInternalSequence plus stop name, for display.0
START_TERMINAL, END_TERMINALInformationalInternalDisplay.0
TRIP_EDGEImportantInternalFirst, middle or last stop. Needed to compute trip duration correctly.1
TIME_POINT_ID, _ABBR, _NAMEImportantInternalTimepoint reference; NULL between timepoints.1
SERVICE_ABBRImportantInternalWeekday, Saturday, Sunday, holiday.2
SCHED_TRIP_START, _END, _DURATIONImportantInternalDerivable from GTFS.0
SCHED_TIME_PER_STOPCriticalInternalThe plan at this stop. Adherence is measured against it.3
ACTUAL_ARRIVAL_TIMECriticalInternalRegional ETA, on-time performance, digital twin.4
ACTUAL_DEPARTURE_TIMECriticalInternalSame, plus dwell.4
ACTUAL_TRIP_DURATION, DWELLING_TIMEImportantInternalDerivable; recompute regionally.1
ADHERENCE_IN_SECSImportantInternalDerivable. The file's sign is the reverse of the dictionary's; recompute from the critical fields.1
KPIInformationalInternalVendor's On-Time / Early / Late label. Thresholds differ by agency; never shared as-is.0

Passenger counting (APC)

18 columns, no header row. The first two columns are in the opposite order to AVL.

FieldCriticalitySensitivityWhy, and what depends on itProducts
TIME_TABLE_VERSION_NAMEImportantInternalBoard period.1
CALENDAR_IDCriticalInternalDate key.5
BLOCK_ABBRImportantInternalVehicle block.1
TRIP_IDCriticalInternalJoins to AVL.3
ROUTE_ABBRCriticalInternalRoute key.4
ROUTE_DIRECTION_ABBRImportantInternalDirection.1
VARIANTInformationalInternalPattern letter.0
PATTERN_STOP_SEQUENCEImportantInternalStop order along the trip. Origin–destination chains.1
STOP_NUMBERCriticalInternalStop key; equals GTFS stop_code.4
STOP_NAMEInformationalInternalDisplay.0
TOTAL_CAPACITY, SEATING_CAPACITYImportantInternalCrowding ratios.1
BOARDCriticalInternalDemand forecasting, origin–destination, crowding.5
ALIGHTCriticalInternalSame.4
DEPARTURE_LOADImportantInternalDerivable; sensors drift, so recompute and reconcile.1
SERVICE_ABBRImportantInternalService day type.1
TRIP_BEGIN_TIME, TRIP_END_TIMEImportantInternalSeconds past midnight. The only time in this file.2

Fare transactions (AFC)

18 columns, comma-delimited, with a header. The only file that can point to a person.

FieldCriticalitySensitivityWhy, and what depends on itProducts
GSNCriticalRestrictedCard serial. Links taps into a person's trail over time. Never crosses raw; pseudonymised per agreement or clean room only.2
Date, TimeCriticalInternalWhen. With GSN it becomes a trail, so the pair is governed together.4
TransactionIDImportantInternalDe-duplication.1
UniversalClass, SpecificClassImportantRestrictedFare class can reveal a concession: senior, student, low income.1
TrxTypeIDImportantInternalTap type.2
TransitAuthority_IDCriticalInternalWhich agency. Regional revenue split.1
CashFare, oppaymentamountImportantInternalRevenue reporting.1
ServiceProviderCriticalInternalOperator of this tap.3
TransferServiceProviderID, _NameCriticalInternalThe transfer from another operator. The one field that links two parties' legs of a journey; the core of regional origin–destination.3
ProductOwnerIDImportantInternalWho sold the product.1
TrxStatusImportantInternalAccepted or declined.2
ProductIDImportantRestrictedProduct can reveal a concession.1
TrxLocationIDCriticalInternalDevice or stop. Joins to stops.2
LineIDCriticalInternalRoute.3

Timetable (GTFS)

Eight files in a zip. The only one of the four that is already an open standard, and already public.

FieldCriticalitySensitivityWhy, and what depends on itProducts
stops: stop_id, stop_code, stop_lat, stop_lonCriticalPublicWhere. Every map, every join from AVL and APC.5
routes: route_id, route_short_nameCriticalPublicRoute key.5
trips: trip_id, service_id, direction_idCriticalPublicTrip key; the one operations data must map to.4
stop_times: arrival, departure, stop_sequenceCriticalPublicThe plan. ETA and adherence are measured against it.4
calendar_datesCriticalPublicWhich days service runs. This feed has no calendar.txt.3
shapes, shape_idImportantPublicRoute geometry for maps and distance.2
trip_headsign, stop_desc, URLsInformationalPublicDisplay.0

Four things the tables make visible. Vendor labels (KPI, ADHERENCE, DEPARTURE_LOAD) are derivable and are recomputed regionally from critical fields, so every party is measured the same way. Fare data has three restricted columns, and one of its critical columns (TransferServiceProvider) is exactly the cross-agency link the region exists to use. The trip identifier is critical in three files and does not yet match across them. And nothing in the operations files is public, while all of GTFS is.

The same classification is published as field-classification.json, the seed of the governance framework's data catalogue.

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