Skip to content

πŸ›πŸ“„ – Add support for linked trips / passenger journeysΒ #243

@chrisyamas

Description

@chrisyamas

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    πŸ› bugSomething isn't working – in spec or codeπŸ“„ specPertains to the specification itself

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions