Skip to content

GTFS-Flex

GTFS Flex is a GTFS Schedule extension project that aims to facilitate the discoverability of Demand Responsive Transportation Services.

For the major part, it has been adopted in GTFS in Match 2024. Some examples can be found on this page showing what can be modeled using the officially adopted part of GTFS Flex.

🤔 Services like dial-a-ride are often brushed over by riders, who sometimes have no clue they even exist. This lack of accessibility is an issue for transit agencies, trip planners, and riders. Imagine a group of tourists arriving at your local airport who would like to reach a rural area that only offers an on-demand bus service. The tourists check their preferred trip planner app and do not find a viable public transportation option. They end up renting a car. Being tourists, they miss all of your paper flyers posted along the hallway announcing the on-demand service. Not only is your service underused, but it lacks the discoverability to meet current and future rider demand. This is where GTFS-Flex comes in. GTFS-Flex helps riders discover your service, so they enjoy the services you worked hard to promote.

GTFS-Flex User Journey

🔮 MobilityData expects GTFS-Flex to open the door to deeper standardization of demand responsive transportation, including expansion into transactional and real-time components using GTFS-OnDemand. We are preparing a suggested strategy to best handle the growing number of modes of transportation and complexity of concepts in this area.

See the full proposal

Latest Pull Request

This extension describes services that operate according to a schedule, but also include one or more flexible features, such as:

  • Dial-a-ride service: the vehicle serves a zone where pickups and drop offs are allowed during certain service hours.
  • Route deviation services: the vehicle serves a fixed route and ordered set of stops, and may detour to pick up or drop off a passenger between stops.
  • Point-to-zone service: the rider can board at a fixed stop such as a train station, and then alight anywhere within an area, or vice versa. Departures from some locations are scheduled or timed with other services.
  • Point deviation or checkpoint service: the rider can board at a fixed stop, and then alight anywhere among an unordered list of stops, or the opposite. The driver only serves stops at which a request is made.

For more information please see original proposal and issue#382(closed since we changed the scope).

In the working meeting on June 28th, there was an agreement among the group community to pursue an iteration that covers all fields currently produced and consumed. Therefore, all fields that appear as “in discussion” in the adoption tracker are included in this PR.

The changes in this PR are:

  • Modify file:
    • Modify stop_areas.txt to allow grouping of GeoJSON locations and/or stops which allow predetermined groups of these features to be specified on individual rows of stop_times.txt.
    • Modify stop_times.txt to clarify elements of the current specification necessary to inform data consumers of how to interpret the added and extended files and fields
  • Extend file:
    • Extend stop_times.txt with start_pickup_drop_off_window and end_pickup_drop_off_window to define the time that demand responsive transportation service becomes available/ends in a GeoJSON location, stop area or stop.
    • Extend stop_times.txt with pickup_booking_rule_id and drop_off_booking_rule_id to define links to booking rules
  • Add new file:
    • locations.geojson, to define zones (Polygon or Multipolygon) where riders can request either pickup or drop off.
    • booking_rules.txt, to define the booking rules that provide riders information about how to request service.

Here is a data example for RufBus in Angermünde and Gartzer, Germany. The image below is an example illustrating how the data could be presented in a trip planner:

Visit the Pull Request page to read the full post and contribute to the conversation.

See the Pull Request

Join #gtfs-flex on Slack

Early Implementations

Contact us to add your GTFS-Flex implementation to this page

Contact us

Adoption tracker

Current

Request a change Add your organization (consumers) Add your organization (producers)

History