v2.0.27: GTFS Fares V2
What's Changed
- Split ODM rides at median by @mority in #760
- Fix duration of ODM journeys by @mority in #762
- GTFS Fares v2 by @felixguendling in #766
Fares support ticket options:
Fares support transfer costs:
Test configuration:
timetable:
datasets:
test:
path: |
# fare_media.txt
fare_media_id,fare_media_name,fare_media_type
paper-card,Paper Card,1
app,App,4
# fare_products.txt
fare_product_id,fare_product_name,fare_media_id,amount,currency
offpeak-pink-oneway-paper-card,Offpeak Pink Paper Card,paper-card,3.00,EUR
offpeak-pink-oneway-app,Offpeak Pink App,app,2.50,EUR
offpeak-pink-day-app,Offpeak Pink Daypass,app,4.00,EUR
offpeak-pink-week-app,Offpeak Pink Weekpass,app,10.00,EUR
offpeak-blue-oneway-paper-card,Offpeak Blue Paper Card,paper-card,3.00,EUR
offpeak-blue-oneway-app,Offpeak Blue App,app,2.50,EUR
offpeak-blue-day-app,Offpeak Blue Daypass,app,4.00,EUR
offpeak-blue-week-app,Offpeak Blue Weekpass,app,10.00,EUR
offpeak-full-oneway-paper-card,Offpeak Full Paper Card,paper-card,4.00,EUR
offpeak-full-oneway-app,Offpeak Full App,app,3.50,EUR
offpeak-full-day-app,Offpeak Full Daypass,app,5.00,EUR
offpeak-full-week-app,Offpeak Full Weekpass,app,12.00,EUR
peak-pink-oneway-paper-card,Peak Pink Paper Card,paper-card,6.00,EUR
peak-pink-oneway-app,Peak Pink App,app,5.00,EUR
peak-pink-day-app,Peak Pink Daypass,app,8.00,EUR
peak-pink-week-app,Peak Pink Weekpass,app,20.00,EUR
peak-blue-oneway-paper-card,Peak Blue Paper Card,paper-card,6.00,EUR
peak-blue-oneway-app,Peak Blue App,app,5.00,EUR
peak-blue-day-app,Peak Blue Daypass,app,8.00,EUR
peak-blue-week-app,Peak Blue Weekpass,app,20.00,EUR
peak-full-oneway-paper-card,Peak Full Paper Card,paper-card,8.00,EUR
peak-full-oneway-app,Peak Full App,app,7.00,EUR
peak-full-day-app,Peak Full Daypass,app,10.00,EUR
peak-full-week-app,Peak Full Weekpass,app,24.00,EUR
airport-card,Airport Card,paper-card,10.00,EUR
peak-full-airport-ext,Airport Extension Card,paper-card,5.00,EUR
# calendar.txt
service_id,monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date
weekday,1,1,1,1,1,0,0,20250101,20350101
weekend,0,0,0,0,0,1,1,20250101,20350101
everyday,1,1,1,1,1,1,1,20250101,20350101
# timeframes.txt
timeframe_group_id,start_time,end_time,service_id
offpeak,00:00:00,05:00:00,weekday
peak,5:00:00,9:30:00,weekday
offpeak,9:30:00,15:00:00,weekday
peak,15:00:00,19:00:00,weekday
offpeak,19:00:00,24:00:00,weekday
offpeak,,,weekend
# areas.txt
area_id,area_name
1,Area 1
2,Area 2
# stop_areas.txt
area_id,stop_id
1,A
1,I
1,B
1,C
2,C
2,D
# networks.txt
network_id,network_name
blue,Blue Network
pink,Pink Network
air,Airport Shuttle
# fare_leg_join_rules.txt
from_network_id,to_network_id,from_stop_id,to_stop_id
pink,pink,,
pink,blue,,
# fare_leg_rules.txt
leg_group_id,network_id,from_area_id,to_area_id,from_timeframe_group_id,fare_product_id
core,,1,1,offpeak,offpeak-pink-oneway-paper-card
core,,1,1,offpeak,offpeak-pink-oneway-app
core,,1,1,offpeak,offpeak-pink-day-app
core,,1,1,offpeak,offpeak-pink-week-app
core,,1,1,peak,peak-pink-oneway-paper-card
core,,1,1,peak,peak-pink-oneway-app
core,,1,1,peak,peak-pink-day-app
core,,1,1,peak,peak-pink-week-app
core,,2,2,offpeak,offpeak-blue-oneway-paper-card
core,,2,2,offpeak,offpeak-blue-oneway-app
core,,2,2,offpeak,offpeak-blue-day-app
core,,2,2,offpeak,offpeak-blue-week-app
core,,2,2,peak,peak-blue-oneway-paper-card
core,,2,2,peak,peak-blue-oneway-app
core,,2,2,peak,peak-blue-day-app
core,,2,2,peak,peak-blue-week-app
core,,1,2,offpeak,offpeak-full-oneway-paper-card
core,,1,2,offpeak,offpeak-full-oneway-app
core,,1,2,offpeak,offpeak-full-day-app
core,,1,2,offpeak,offpeak-full-week-app
core,,1,2,peak,peak-full-oneway-paper-card
core,,1,2,peak,peak-full-oneway-app
core,,1,2,peak,peak-full-day-app
core,,1,2,peak,peak-full-week-app
air,air,,,,airport-card
# fare_transfer_rules.txt
from_leg_group_id,to_leg_group_id,transfer_count,duration_limit,duration_limit_type,fare_transfer_type,fare_product_id
core,air,1,10800,1,0,peak-full-airport-ext
# route_networks.txt
network_id,route_id
pink,line1
pink,line2
blue,line3
air,air
# agency.txt
agency_id,agency_name,agency_url,agency_timezone
DB,Deutsche Bahn,https://deutschebahn.com,Europe/Berlin
# stops.txt
stop_id,stop_name,stop_desc,stop_lat,stop_lon,stop_url,location_type,parent_station
A,Station A,,0.0,1.0,,
I,Station I,,0.5,1.5,,
B,Station B,,2.0,3.0,,
C,Station C,,4.0,5.0,,
D,Station D,,6.0,7.0,,
E,Station E,,8.0,9.0,,
# routes.txt
route_id,agency_id,route_short_name,route_long_name,route_desc,route_type
line1,DB,Line 1,,,3
line2,DB,Line 2,,,3
line3,DB,Line 3,,,3
air,DB,Line 4,,,3
# trips.txt
route_id,service_id,trip_id,trip_headsign,block_id
line1,everyday,T1,T1,
line2,everyday,T2,T2,
line3,everyday,T3,T3,
air,everyday,T4,T4,
# stop_times.txt
trip_id,arrival_time,departure_time,stop_id,stop_sequence,pickup_type,drop_off_type
T1,00:00:00,00:00:00,A,1,0,0
T1,00:15:00,00:15:00,I,2,0,0
T1,00:30:00,00:30:00,B,3,0,0
T2,00:35:00,00:35:00,B,1,0,0
T2,01:00:00,01:00:00,C,2,0,0
T3,01:05:00,01:05:00,C,1,0,0
T3,02:00:00,02:00:00,D,2,0,0
T4,02:05:00,02:05:00,D,1,0,0
T4,02:30:00,02:30:00,E,2,0,0
# frequencies.txt
trip_id,start_time,end_time,headway_secs
T1,00:00:00,24:00:00,3600
T2,00:35:00,24:35:00,3600
T3,01:05:00,25:05:00,3600
T4,02:05:00,26:05:00,3600
geocoding: true
Full Changelog: v2.0.26...v2.0.27