[GTFS Digest] March 2025 - Community Weighs In on Governance Proposal & Validator Release: Flex + Rider Categories¶
The March 2025 GTFS Digest highlights the community review of the GTFS Schedule Governance Proposal and the release of GTFS Validator v7.0, now supporting full Flex validation rules and Rider Categories for GTFS-Fares v2. Two votes are underway: updates to demand-responsive transit (DRT) and deprecating TripUpdate.schedule_relationship = ADDED. Active proposals include cEMV contactless payment support and car ferry allowances.
π Contributor Shoutouts¶
Felix GΓΌndling
Thank you for your impactful contributions to specification discussions and for joining the Fares v2 working group meetings!
Niko Rekhviashvili
Welcome to the GTFS community. We are glad to have you with us.
Andrew Byrd, Guillaume Campagna, Paul Schwartz, Weston Shippy, Adriana Ceric, & Mike Gilligan
We would like to extend the sincere gratitude to all of you that have taken the time to review the GTFS Schedule Governance proposal.
π³οΈ Currently Voting¶
Clarification on continuous pickup/dropoff value and field Type in booking_rules.txt #528
This PR introduces clarifications specifically for demand-responsive transportation (DRT) services, allowing a value of 1 for continuous_pickup/continuous_drop_off when start_pickup_drop_off_window/end_pickup_drop_off_window are indicated.
Deprecate TripUpdate.schedule_relationship = ADDED, add TripUpdate.schedule_relationship = NEW / REPLACEMENT to specify new / replaced trips which do not run on a schedule from the GTFS static. #504
The updated proposal focuses on deprecating TripUpdate.schedule_relationship = ADDED in GTFS Realtime and using TripUpdate.schedule_relationship = NEW and TripUpdate.schedule_relationship = REPLACEMENT to indicate a trip not found in GTFS Schedule, with the new value flagged as experimental.
π Active Proposals¶
Add cars_allowed field to trips.txt #547
This PR proposes adding a cars_allowed field to trips.txt. There was a lot of discussion in issue #466 about how to add car information for ferries to GTFS. The discussion was centered around whether to use an approach with stop_times.txt or trips.txt.
Add communication_period and impact_period #546
This proposal introduces two new fields: communication_period specifying the time that alerts should be displayed and impact_period to specify the time when the services are affected by the disruption. Additionally, it establishes rules to ensure these new fields are mutually exclusive with active_period for consistency.
Add cemv_support field in agency.txt and routes.txt #545
This proposal introduces a new cemv_support field in agency.txt and routes.txt to indicate if riders can use cEMV (contactless Europay, Mastercard, and Visa) to access a transit service under a specific agency or route.
[Governance] New GTFS Schedule Governance Proposal #544
MobilityData is proposing an update to the current GTFS governance process based on two years of community feedback. Key improvements include clearer documentation, structured proposal phases, and revised voting requirements. Now, weβre inviting final discussions before calling a vote to adopt these changes.
- The discussion and review period should last until mid-april.
More clarifications on trip modifications #542
This proposal adds further clarification to trip modifications in GTFS Realtime regarding shapes, the use of IDs, and entity linking. It also aligns the definition of shape_id in TripProperties between the reference and the proto for consistency.
Enhancing GTFS Schedule and Realtime with original_trip_id #534
Davidr1234 suggests adopting original_trip_id
from the Google Transit extension in both GTFS Schedule and GTFS Realtime. This would allow for seamless referencing of trips between GTFS and other standards, such as SIRI and NeTEx, which have a similar concept.
Other open proposals:
- Fix typos in gtfs-realtime.proto #541
- Introduce boarding permissions to specify the carriage of vehicles at per-stop granularity #533
- Addition of event_based_trips.txt to specification #527
- Add stops.stop_access field #515
- Stop Time Events in the past should be kept #502
- [GTFS Fares v2] Add nonconsecutive_transfer_allowed field and clarify fare_transfer_type #498
- [GTFS Fares v2] Area Set matching predicates #483
- Clarification of CANCELED/SKIPPED TripUpdates VS NO_SERVICE Alerts #482
- [GTFS-Fares v2] Fare product/media transfer behavior #423
π₯ Most Active Conversations¶
Relax the requirement for in-seat transfer to allow attach / detaching vehicles in the middle of a trip #548
Michael questions the current requirement of in-seat transfers where carriages are attached / detached in the middle of a trip, which is common in the National Rail network. He proposes to relax the requirement of transfer_type = 4.
Best Practices: Reasonable lengths in unique ids #518
Stefan proposes to introduce a best practice that sets a recommended character limit for any ID used in a GTFS feed, triggering a validator warning if a value exceeds 36 bytes.
Pluralized field names? #536
Nina questions why fields with a "Many" cardinality in GTFS are given singular rather than pluralized names. A response explains that since each row in a CSV contains only a single foreign key reference, the column name applies to the individual row rather than representing a collection.
Slack conversations on #gtfs¶
Weston asked about the effect of including frequencies.txt in Google Maps
Radha Krishna requested tools that help with transitioning from custom data formats to GTFS
Felix asked about the best practices of using trip and route names in GTFS
Slack conversations on #gtfs-realtime¶
Adrien asked about the usage of tripUpdate messages to note network changes for the upcoming days
Arnljot inquired about the status of the enum ScheduleRelationship
Holger looked for recommendations about the latency of GTFS-RT feeds
Michael asked about the best ways of having high quality third-party open transit data when the bus companies do not cooperate
Zachary inquired about how GTFS-RT feed details are generated in the CAD program
Slack conversations on #gtfs-flex¶
Mike reached out to see if there are other providers who are publishing flex
Niko inquired about learnings on how GTFS Flex and GTFS Realtime work together
Clara looked for an example of a GTFS flex file with multiple zones
Slack conversations on #gtfs-fares¶
Felix announced that MOTIS started supporting fares v2 and asked questions about complex transfer rules and their optimization
Stephen shared an article highlighting Transit Appβs new Open-Loop Payment feature
Felix inquired about plans to support distance-based fares
Leonard asked about the relevance of three duration-related fields in fare_products.txt from an earlier Fares v2 implementation
π Upcoming Events¶
GTFS-Fares v2 β Monthly meetings | April 22, 2025 @ 11 am EST
Topics : GTFS-Fares v2 extension Working Group Meeting
π οΈ Tools update¶
New GTFS Schedule Validator Release: Rider Categories and All Flex Rules**
The GTFS Schedule Validator 7.0 release has
- π§ π΅ π¨ Rules for rider categories in GTFS-Fares. Rider Categories are groups of passengers, like adults, children, seniors, or students, who may get different fare pricing based on their age, status, or needs.
- ππ Full list of Flex rules. GTFS Flex is a proposal that ensures riders can discover demand responsive services and how to book them. Flex was officially adopted into GTFS last year. With this validator release, we offer a full list of validation rules for Flex.
Share your questions and feedback on the discussion thread here.
π¬ Join the GTFS Community¶
GitHub: google/transit: Share your ideas with the community! Join the official GTFS GitHub repository.
GTFS-changes: Get updates as soon as they happen, join the GTFS-changes google groups to get information about new pull requests and votes.
GTFS-realtime: Talk everything Realtime and stay up to date. This group is discussing the GTFS Realtime, asking questions, and proposing changes.
GTFS.org: The official GTFS documentation website. Here you will find frequently updated resources for your GTFS needs.
MobilityData Slack: Have a question about GTFS or need to connect with the community? Join in on GTFS slack conversations. This is a great place to have questions answered quickly by the over 1,300 mobility enthusiasts navigating our channels.
Thank you for reading this edition of the GTFS Digest! We look forward to bringing you the latest GTFS updates in 2025 and beyond.