Regional Data Exchange
What the region holds.
Contracts, APIs, semantics, policy, identity and audit. Not a regional lake, and never a raw copy of anyone's operations.
- Contracts
- Versioned shapes every party publishes to: GTFS for the plan, GTFS-Realtime for now, TIDES for what happened; GBFS and MDS for the mobility providers. Every field carries a classification.
- Semantics
- Shared identifiers so a stop, a zone, a mode and a moment mean the same thing to every party. Where vendors disagree, the adapter maps; the region does not guess.
- APIs and events
- Request/response for history and reference data; events for positions, disruptions and alerts. One policy enforcement point. Parties never call each other directly.
- Policy
- Data-sharing agreements written as policy: who, which contract, which fields, for what purpose, for how long. Restricted fields cross only aggregated or pseudonymised.
- Identity
- Each party keeps its own identity provider. The region trusts them through federation and short-lived roles; services use mutual TLS.
- Audit
- An immutable, cross-party record of every access and every contract change, plus one incident playbook with a named responder per party.
Why semantics is its own box.
From the sample data: one agency, four files, and the keys do not line up.
The AVL and APC files share a TRIP_ID (for example 3451682), but that number does not appear in the GTFS trips.txt from the same month. The board period 24AU05 turns up inside GTFS service_id values instead, and the AVL stop number matches the GTFS stop_code, not stop_id.
Within one agency that is a known quirk. Across seven parties it is the whole problem. The contract has to say which identifier is the identifier, and the adapter has to produce it.