This page describes the major differences between the official GTFS Schedule and Google Transit's implementation of the specification in the following areas:
-
Ignored official specifications:These fields are part of the official GTFS. Google Transit ingests this data without error but doesn't proactively use the data.
-
Different interpretation:These fields include the parts of the official GTFS that Google Transit interprets differently than the GTFS definition of those parts.
-
Experimental support:These fields are experimental in Google Transit’s implementation. If you want to implement a new experimental field, contact the Google Transit team .
-
Google Transit-supported extension:This extension is not part of the official GTFS. The Transit-supported extension includes both public extensions and Google Transit-specific extensions. Any partner can send this information to Transit in their feed.
Static transit
The following sections document the major differences between the official GTFS and Google Transit's implementation of the static feed.
Ignored official specifications in static feeds
Some official specifications that are ignored by Transit are experimental. To learn more, go to gtfs.org .
Table 1 lists GTFS files that aren't supported by Transit in static feeds. Also, none of the fields that are defined in these files are supported by Transit.
areas.txt
|
---|
fare_leg_rules.txt
|
fare_products.txt
|
fare_transfer_rules.txt
|
levels.txt
|
stop_areas.txt
|
Table 2 lists all the GTFS-defined fields that are ignored by Transit in the static feeds.
Filename | Ignored field defined in the GTFS | Field type |
---|---|---|
payment_method
|
Enum | |
default_lang
|
Language code | |
feed_publisher_name
|
Text | |
max_slope
|
Float | |
continuous_drop_off
|
Enum | |
continuous_pickup
|
Enum | |
network_id
|
ID | |
route_desc
|
Text | |
route_sort_order
|
Non-negative integer | |
level_id
|
ID | |
stop_desc
|
Text | |
stop_url
|
URL | |
tts_stop_name
|
Text | |
bikes_allowed
|
Enum |
Different interpretation in static feeds
Although Transit accepts certain GTFS-defined fields, Transit interprets them differently than the GTFS.
Table 3 shows the fields in static feeds that Transit implements differently than as described in the GTFS.
Filename | Field defined in the GTFS | Field type | Required by Google Transit? | Google Transit implementation details |
---|---|---|---|---|
transfers
|
Enum | Required | Google Transit extension. The public GTFS limits values to a range from Use this field to set the maximum number of allowable transfers with
the fare. This doesn't include block transfers, also known as in-seat
transfers. If you don't want to set limits on the number of transfers for
a fare, leave the |
|
pathway_mode
|
Enum | Optional | When the pathway_mode
field is specified, if it's left
empty, Google Transit accepts it and treats it as unknown. |
|
arrival_time
|
Time | Conditionally required | Hours are restricted to values from 00
to 99
, which is more than enough for three-day trips. |
|
transfer_type
|
Enum | Required | Values of Google Transit supports values of |
|
block_id
|
ID | Optional | To learn more, see Block transfer example . |
Experimental support in static feeds
If you need support to integrate new experimental fields in this category, contact Google Transit .
Google Transit-supported extensions in static feeds
Table 4 provides information about Google Transit extensions . These fields aren't part of the official GTFS.
ic_price
This Google Transit extension is available only for partners in Japan.
The ic_price
field represents the discounted amount of
money to be paid for this fare with a smart card. If no discounts are
provided for this fare, or the smart card isn't supported, the ic_price
field's value needs to be -1
.
contains_route_id
Google Transit extension.
This fare applies only to travel that visits an exact set of routes
identified by the route_id
value in all rows for this
combination of the fare_id
, origin_id
, and destination_id
columns.
If the contains_route_id
column is missing, or all its
values for this fare are null, then the fare isn't restricted in this
parameter. If the contains_route_id
field is given for a
fare, then the route_id
field must be empty.
checkin_duration
Google Transit extension.
The checkin_duration
field specifies how many seconds
early a passenger is advised to arrive before the scheduled departure in
order to check in and board.
If the passenger connects to the departure by a transfer, then any
defined transfer time overrides the checkin_duration
value.
The checkin_duration
value is only a recommendation that's
usually provided by the transit operator. It might not reflect the absolute
last possible moment that a passenger can arrive and still board the
vehicle.
route_type
Google Transit extension.
To learn how Google Transit extends the GTFS‑accepted route_type
value options, see Extended GTFS route types
.
stop_direction_name
Google Transit extension.
The stop_direction_name
field identifies a trip's
direction to passengers. The direction is stored as the direction_name
value of the departure from this stop.
If the stop_direction_name
field is empty, then the
Transit-supported trip_direction_name
field is used instead.
If the trip_direction_name
and stop_direction_name
fields are both empty, then the transit importer leaves them empty. In
that case, partners can use the stop_headsign
or trip_headsign
value instead. The values of the stop_direction_name
field are case normalized.
signposted_as
Google Transit extension.
The signposted_as
field contains the verbatim text written
on the signboard for the platform. Examples are "Towards Central" and
"East side & Brooklyn."
The GTFS platform_code
field and the Transit-supported signposted_as
field can be set simultaneously.
Differences between the platform_code
and signposted_as
fields include the following:
- Length.
The
platform_code
field usually contains a number or letter like 2 or C . - Language.
The
platform_code
field doesn't have a language, butsignposted_as
values can have translations. - Stability.
The
platform_code
field changes much less often than thesignposted_as
field.
vehicle_type
Google Transit extension.
The vehicle_type
field specifies the type of vehicles that
are used at a stop. This field accepts hierarchical vehicle type (HVT)
route types. The HVT values are derived from the European Transport
Protocol Experts Group (TPEG) standard.
ticketing_deep_link_id
Google Transit ticketing extension.
In the agency.txt
file, the ticketing_deep_link_id
field represents the deep link that's used to ticket the trips of this
agency.
ticketing_deep_link_id
Google Transit ticketing extension.
In the routes.txt
file, the ticketing_deep_link_id
field represents the deep link that's used to ticket the trips of this
route.
ticketing_stop_time_id
Google Transit ticketing extension.
If present in the stop_times.txt
file, the ticketing_stop_time_id
field overrides the identifier that represents the stop time for ticketing
with deep links.
ticketing_type
Google Transit ticketing extension.
The ticketing_type
field specifies the type of ticketing
that applies to this stop time.
Google Transit accepts the following values:
-
Empty
. Default—as defined by the trip. -
0
. Available only if the agency or route has a ticketing deep link that's enabled. -
1
. Unavailable.
android_intent_uri
Google Transit ticketing extension.
The android_intent_uri
field represents the intent URI
that's used for deep linking on Android.
ios_universal_link_url
Google Transit ticketing extension.
The ios_universal_link_url
field represents the universal
link URL that's used for deep linking on iOS.
ticketing_deep_link_id
Google Transit ticketing extension.
The ticketing_deep_link_id
field represents the identifier
of the deep link.
web_url
Google Transit ticketing extension.
The web_url
field represents the URL that's used for deep
linking on the web.
agency_id
Google Transit ticketing extension.
To specify the agency of the stop that the default ticketing_stop_id
field is defined for, the agency_id
field contains the ID
from the GTFS agency.txt
file.
stop_id
Google Transit ticketing extension.
To specify the stop that the default ticketing_stop_id
field is defined for, the stop_id
field contains the ID from
the GTFS stops.txt
file.
ticketing_stop_id
Google Transit ticketing extension.
The ticketing_stop_id
field contains the ticketing ID that
is applied to the stop. Optionally, an agency qualifies the ID.
trips.txt
exceptional
This field indicates exceptional trips. They operate outside of the regular schedule or are diverted from the usual route due to special events or planned disruptions (such as trackwork, etc).
Google accepts the following value options:
-
0
. Regular services -
1
. Service exception. For example, services that are added due to special events or services diverted away from the usual route due to planned disruptions.
Google Transit ticketing extension.
If the ticketing_trip_id
field is present, its value
overrides the trip_id
field to identify the trip for
ticketing with deep links.
Google Transit ticketing extension.
The ticketing_type
field specifies the type of ticketing that applies to this trip.
Google Transit accepts the following values:
-
0
. Default. Available only if the agency or route has a ticketing deep link that's enabled. -
1
. Unavailable.
lang
Google Transit extension.
The lang
field isn't part of the official GTFS, but Google
Transit uses this value when it’s present.
To specify the translation of a phrase, use the lang
field. Its value must not
be empty or und
(an
undefined language).
trans_id
Google Transit extension.
The trans_id
field isn't part of the official GTFS, but
Google Transit uses this value when it’s present.
To specify the ID token of the phrase that the translation is provided
for, use the trans_id
field. Each row of the translations.txt
table means that in
the language lang
, the phrase trans_id
translates to translation
.
original_trip_id
Google Transit extension.
If it's present in the trips.txt
file, the original_trip_id
value
overrides the trip_id
value for use by other systems. An
example is realtime matching.
trip_direction_name
Google Transit extension.
The trip_direction_name
field identifies a trip's
direction to passengers. The value in this field is stored as the direction_name
value of each trip.
If the stop_direction_name
value in the stop_times
table changes along the trip, it might override the trip_direction_name
value.
Values in the trip_direction_name
field are case
normalized.
vehicle_category_id
Google Transit extension.
In the trips.txt
file, the vehicle_category_id
field identifies the vehicle that's allotted to this trip. When this
field is in the trips.txt
file, its value overrides the vehicle_category_id
value in the routes.txt
file.
vehicle_categories.txt
vehicle_category_id
Google Transit extension.
Identifies a vehicle category.
vehicle_categories.txt
vehicle_amenity_id
Google Transit extension.
Identifies a set of amenities available to all passengers in the
vehicle category. Alternatively, see vehicle_category_amenities.txt
for when different amenity sets are available in the same vehicle
category.
vehicle_amenities.txt
vehicle_amenity_id
Google Transit extension.
Identifies a set of amenities.
vehicle_amenities.txt
ac_availability
Google Transit extension.
Defines if air conditioning is available.
Google accepts the following values:
-
0
. Default. Unknown. -
1
. Available anywhere, anytime. -
2
. Not available.
vehicle_amenities.txt
wifi_availability
Google Transit extension.
Defines if Wifi is available onboard.
Google accepts the following values:
-
0
. Default. Unknown. -
1
. Available anywhere, anytime. -
2
. Not available.
vehicle_amenities.txt
toilet_availability
Google Transit extension.
Defines if a toilet is available inside the vehicle.
Google accepts the following values:
-
0
. Default. Unknown. -
1
. Available anywhere, anytime. -
2
. Not available.
vehicle_amenities.txt
gender_accessibility
Google Transit extension.
Defines if gender restrictions apply.
Google accepts the following values:
-
0
. Default. Unknown. -
1
. No gender restrictions. -
2
. Restricted to women only. -
3
. Restricted to men only.
vehicle_amenities.txt
seat_type
Google Transit extension.
Defines the type of seat.
Google accepts the following values:
-
0
. Default. Seat (not foldable, may be reclining). -
1
. Fixed bed (cannot be reclined back as seat). -
2
. Reclining seat.
vehicle_amenities.txt
service_class
Google Transit extension.
Defines the class of the seat.
Google accepts the following values:
-
0
. Default. Unknown. -
1
. First class. -
2
. Second class. -
3
. Third class. -
4
. Business. -
5
. Premium Economy. -
6
. Economy.
vehicle_amenities.txt
service_class_code
Google Transit extension.
Defines a short form class code (e.g. 1A for Air-Conditioned First Class). This field is a more specific version of the class field, where the classes not available in the class enum can be specified.
vehicle_amenities.txt
seat_plug
Google Transit extension.
Defines if either an electric or usb plug (of any type) is available at the seat.
Google accepts the following values:
-
0
. Default. Unknown. -
1
. Available at all seats. -
2
. Not available.
vehicle_amenities.txt
row_layout_summary
Google Transit extension.
Defines the number of seats or beds in one row of the vehicle. Some examples are: "2" (2 seats in a row, but whether they are separated or next to each other is unknown), "1+1" (2 individual seats in a row), "2+2" (4 seats in a row with a separation in the middle).
vehicle_amenities.txt
row_leg_space
Google Transit extension.
Defines if rows have additional leg space.
Google accepts the following values:
-
0
. Default. Unknown / Not applicable. -
1
. Standard leg space. -
2
. Additional leg space.
vehicle_category_amenities.txt
vehicle_category_id
Google Transit extension.
Identifies the vehicle category. The same vehicle category can have numerous amenity sets by repeating the value of this field in multiple rows. This is typically helpful when a vehicle category has various classes of service.
vehicle_category_amenities.txt
vehicle_amenity_id
Google Transit extension.
Identifies a set of amenities available to all passengers in the vehicle category.