Kurzbeschreibung
Was ist GTFS-Flex?
Eine genaue Beschreibung der übergeordneten General Transit Feed Specification (GTFS(-Static)) findet sich hier. GTFS beschreibt im Grunde die Fahrpläne des öffentlichen Personenverkehrs und dazugehörigen geografischen Informationen, wie z.B. Standorte von Haltestellen.
Im Laufe der Zeit wurden diverse Erweiterungen definiert. Eine der Erweiterungen ist GTFS-Flex. GTFS-Flex sollte entsprechend als Teil von GTFS-Static genutzt werden.
Wer steckt dahinter?
GTFS-Flex erleichtert die Auffindbarkeit von bedarfsgesteuerten (auch On-Demand genannten) Transportdiensten.
Mit seiner Abnahme am 18.03.2024 wechselte GTFS-Flex von einem “Proposal” zu einer offiziellen Erweiterung von GTFS-Static.
Warum bietet die Open Data-Plattform das an?
Die Geschäftsstelle Systemaufgaben Kundeninformation Plus (SKI+) stellt im Auftrag des Bundesamt für Verkehr (BAV) möglichst viele relevante Mobilitätsdaten bereit.
Neben GTFS-Flex bieten wir die On-Demand Angebote auch als NeTEx an.
Fachliche Beschreibung
Welche Informationen bilden wir mit GTFS-Flex ab? (Umfang)
GTFS-Flex erweitert GTFS als das es erlaubt die verschiedenen Formen der On-Demand Angebote darzustellen. Dazu zählen: On-Demand Linienverkehr, On-Demand Korridorverkehr, und On-Demand Flächenverkehr. Mehr dazu im Fachkonzept On-Demand (s. weiterführenden Angaben).
Ausserdem erlaubt es die Erweiterung die für die Flächenverkehre wichtigen Bediengebiete (geographische Flächen) abzubilden, sowie Bedienungen als Zeitfenster (anstatt fester Abfahrts- und Ankunftszeiten) abzubilden.
Wie sind die Informationen aufgebaut? (Modell)
GTFS-Flex ist wie GTFS aus mehreren Dateien aufgebaut. Den Standard haben wir zudem um einige für die Schweiz relevante Aspekte angepasst und in einem Schweizer Profil zusammengefasst (s. weiterführende Angaben).

Technische Beschreibung
Die folgende Tabelle ist aus dem Schweizer GTFS-Profil entnommen. Das Profildokument bleibt der Master.
| No | Filename | Required | Definition |
|---|---|---|---|
| 1 | agency.txt | Required | Transit agencies with service represented in this dataset |
| 2 | stops.txt | Required | Stops where vehicles pick up or drop off riders. Also defines stations and station entrances. |
| 3 | routes.txt | Required | Transit routes. A route is a group of trips that are displayed to riders as a single service |
| 4 | trips.txt | Required | Trips for each route. A trip is a sequence of two or more stops that occur during a specific time period. |
| 5 | stop_times.txt | Required | Extended and modified file to include time-windows that a vehicle picks up and drops off at stops or location groups/areas. |
| 6 | calendar.txt | Conditionally Required | Service dates specified using a weekly schedule with start and end dates. This file is required unless all dates of service are defined in calendar.txt |
| 7 | calendar_dates.txt | Conditionally Required | Exceptions for the services defined in the calendar.txt. If calendar.txt is omitted, then calendar_dates.txt is required and must contain all dates of service. |
| 8 | transfers.txt | Optional | When calculating an itinerary, GTFS-consuming applications interpolate transfers based on allowable time and stop proximity |
| 9 | feed_info.txt | Optional | This file contains information about the dataset itself, rather than the service the dataset describes |
| 10 | booking_rules.txt | Required | New file that defines the booking rules / requirements that must be met for a successful booking |
| 11 | locations.geojson | Required | New GeoJSON (and non-CSV) formatted file that allows defining Zones using Polygons and MultiPolygons (for Zones with “holes”). |
| 12 | location_groups | Required | New files to allow grouping of stops which allow predetermined groups of these features to be specified on individual rows of stop_times.txt.
This file specifically defines the group. |
| 13 | location_group_stops | Required | New files to allow grouping of stops which allow predetermined groups of these features to be specified on individual rows of stop_times.txt.
This file specifically defines the mapping of the groups from location_groups to stops. |
| 14 | booking_rules_additional_messages.txt | Optional | New file to allow publication of more than one booking rule. This file contains the message_type and message of a booking rule. |
Weiterführende Angaben
Einschränkungen
- GTFS-Flex bildet nicht alle Aspekte von On-Demand Diensten ab, weswegen derzeit eine Erweiterung von GTFS-Flex (somit eine Erweiterung der Erweiterung) angestrebt wird: GTFS-On-Demand
- GTFS-Flex bietet eine Fares-Erweiterung, welche wir aber nicht brauchen.
Weiterführende Angaben
- Fachkonzept On-Demand: https://www.öv-info.ch/sites/default/files/2024-02/fachkonzept_on-demand_v2.0_de.pdf
- Schweizer GTFS Profil, inkl. Sektion zu GTFS-Flex: https://www.öv-info.ch/sites/default/files/2024-04/gtfs_profil_switzerland_version_0_16.pdf
- Neues File booking_rules_additional_messages.txt:
booking_rules_additional_messages.txt
message_id,booking_rule_id,message_type,message
"message_booking_rule_j26_3_1","booking_rule_j26_3","Time interval","Reservationen nehmen wir täglich ab 20.00 Uhr bis zum Ende der Bedienzeiten über die Rufnummer +41 79 608 75 00 entgegen."
"message_booking_rule_j26_3_2","booking_rule_j26_3","Other","Bitte melden Sie den Bedarf «Rollstuhl» über die Rufnummer +41 79 608 75 00 an"
"message_booking_rule_j26_4_3","booking_rule_j26_4","Other","Rollstuhltransport mit Vorlaufzeit von 2 Stunden"
"message_booking_rule_j26_4_2","booking_rule_j26_4","Age limit","Kinder bis zum vollendeten 12. Lebensjahr werden nur in Begleitung einer erwachsenen Person befördert, zudem nur in einem Kindersitz (ausser sie sind grösser als 150 cm). Es stehen in beschränktem Masse Kindersitze in den Fahrzeugen zur Verfügung (Kindersitze sowie eine Sitzerhöhung). Für Kleinkinder unter einer Größe von 75 cm ist die Begleitperson zur Mitnahme einer geeigneten Babyschale verpflichtet, ansonsten kann das Kleinkind nicht befördert werden"
"message_booking_rule_j26_4_1","booking_rule_j26_4","Time interval",""
"message_booking_rule_j26_1_1","booking_rule_j26_1","Time interval",""
"message_booking_rule_j26_2_1","booking_rule_j26_2","Time interval",""
"message_booking_rule_j26_2_2","booking_rule_j26_2","Other","Reservation unter 0800 60 30 60 (Gratisnummer), 7 Tage die Woche, 6.00 bis 24.00 Uhr.
Reservation und Stornierung telefonisch bis eine Stunde vor Abfahrt (während Öffnungszeiten der Zentrale) möglich. Abfahrten vor 6 Uhr müssen am Vortag telefonisch bis spätestens eine Stunde vor Schliessung der Zentrale reserviert werden."
"message_booking_rule_j26_7_1","booking_rule_j26_7","Time interval",""
"message_booking_rule_j26_7_2","booking_rule_j26_7","Age limit","Fahrgäste unter 12 Jahren können nur in Begleitung von Erwachsenen mitfahren. Ausnahmeregelungen mit Einverständniserklärungen der Erziehungsberechtigter sind möglich. Wenden Sie sich bei Bedarf an info@mybuxi.ch"
"message_booking_rule_j26_7_3","booking_rule_j26_7","Other","Assistenzhunde mit Ausweis sind erlaubt."
"message_booking_rule_j26_14_2","booking_rule_j26_14","Other","Fahrgäste unter 12 Jahren können nur in Begleitung von Erwachsenen mitfahren. Ausnahmeregelungen mit Einverständniserklärungen der Erziehungsberechtigter sind möglich. Wenden Sie sich bei Bedarf an info@mybuxi.ch."
"message_booking_rule_j26_14_1","booking_rule_j26_14","Time interval",""
"message_booking_rule_j26_14_3","booking_rule_j26_14","Other","Assistenzhunde mit Ausweis sind erlaubt."
"message_booking_rule_j26_13_3","booking_rule_j26_13","Other","Buchung nur via App"
"message_booking_rule_j26_13_2","booking_rule_j26_13","Age limit","Fahrgäste unter 12 Jahren können nur in Begleitung von Erwachsenen mitfahren. Ausnahmeregelungen mit Einverständniserklärungen der Erziehungsberechtigter sind möglich. Wenden Sie sich bei Bedarf an info@mybuxi.ch."
"message_booking_rule_j26_13_4","booking_rule_j26_13","Other","Assistenzhunde mit Ausweis"
"message_booking_rule_j26_13_1","booking_rule_j26_13","Time interval","Buchungen nur via App möglich"
"message_booking_rule_j26_6_1","booking_rule_j26_6","Time interval",""
"message_booking_rule_j26_8_2","booking_rule_j26_8","Other","Buchung nur via App"
"message_booking_rule_j26_8_3","booking_rule_j26_8","Other","Assistenzhunde mit Ausweis"
"message_booking_rule_j26_8_1","booking_rule_j26_8","Time interval",""
"message_booking_rule_j26_9_1","booking_rule_j26_9","Time interval",""
"message_booking_rule_j26_10_1","booking_rule_j26_10","Time interval",""
"message_booking_rule_j26_12_2","booking_rule_j26_12","Age limit",""
"message_booking_rule_j26_12_1","booking_rule_j26_12","Time interval",""
"message_booking_rule_j26_12_3","booking_rule_j26_12","Inhabitants only","test ads"
"message_booking_rule_j26_12_4","booking_rule_j26_12","Members only","ATLAS_TTFNID_Buchsatzüberschriften"
