Describe the problem
TIDES currently captures individual boarding and alighting events (passenger_events) and fare transactions (fare_transactions), but lacks a native way to represent a complete passenger journey spanning multiple trips or transfers.
This gap limits several analysis use cases identified by @JuanM2 (Juan Matute, UCLA Institute of Transportation Studies) in the context of regional integration performance measurement:
- Transfer activity volume
- What proportion of trips involve transfers? Higher transfer tolerance may indicate better isochronic access. Transfers introduce uncertainty and risk, so passengers' willingness to transfer reflects system utility and reliability.
- Interagency transfer wait time
- Combined with TIDES vehicle positioning or GTFS-RT, linked trip data could enable inference of actual wait times at transfer points. Passenger-weighted interagency transfer wait time could serve as a KPI for coordination performance.
- Linked vs. unlinked trip counts
- Distinguishing between unlinked trips (boardings) and linked trips (complete journeys) for ridership analysis and reporting.
GTFS-Ride addresses this with a rider_id field in rider_trip.txt. TIDES has partial support via the optional token_id field in fare_transactions and fare_action values like Transfer entrance / Transfer exit, but these describe fare policy outcomes rather than journey-level linkage; and token_id requires inference logic and doesn't cover APC-only or cash-based data.
Possible Solutions
- Add optional
journey_id to fare_transactions
- link multiple transactions within a single passenger journey
- Add optional
journey_id to passenger_events
- link boarding/alighting events across trips
- Create new
passenger_journeys table
- summary table for complete journeys (origin, destination, transfers [observed or inferred])
- Formalize
token_id usage with guidance
- document how to infer journeys from
token_id + temporal proximity
In at least one TIDES implementation, a journey_id field is already available from the fare system, and used internally to derive fare_action values, but is not currently surfaced in the final TIDES output. This suggests adding an optional journey_id field could be relatively low-friction for agencies with supporting fare systems.
For agencies relying primarily on APC data without fare linkage, journey inference would require ODX modeling or other inference approaches. The specification should accommodate both direct capture (where available) and inferred/modeled journey data.
Privacy considerations
- Any journey-level identifier introduces re-identification risk, particularly on low-frequency routes. Guidance should address minimum aggregation thresholds, temporal retention limits, and appropriate use cases for disaggregate journey data.
Additional context
Describe the problem
TIDES currently captures individual boarding and alighting events (
passenger_events) and fare transactions (fare_transactions), but lacks a native way to represent a complete passenger journey spanning multiple trips or transfers.This gap limits several analysis use cases identified by @JuanM2 (Juan Matute, UCLA Institute of Transportation Studies) in the context of regional integration performance measurement:
GTFS-Ride addresses this with a
rider_idfield inrider_trip.txt. TIDES has partial support via the optionaltoken_idfield infare_transactionsandfare_actionvalues likeTransfer entrance/Transfer exit, but these describe fare policy outcomes rather than journey-level linkage; andtoken_idrequires inference logic and doesn't cover APC-only or cash-based data.Possible Solutions
journey_idtofare_transactionsjourney_idtopassenger_eventspassenger_journeystabletoken_idusage with guidancetoken_id+ temporal proximityIn at least one TIDES implementation, a
journey_idfield is already available from the fare system, and used internally to derivefare_actionvalues, but is not currently surfaced in the final TIDES output. This suggests adding an optionaljourney_idfield could be relatively low-friction for agencies with supporting fare systems.For agencies relying primarily on APC data without fare linkage, journey inference would require ODX modeling or other inference approaches. The specification should accommodate both direct capture (where available) and inferred/modeled journey data.
Privacy considerations
Additional context
linked_transaction_idfield for linkingpassenger_eventsβfare_transactions(currently under consideration in issue ππ βΒ Modify passenger_events table to accommodate fare gate and station-based eventsΒ #241 )