AI-generated Key Takeaways
- 
          Google Transit deviates from the official GTFS by ignoring specific files and fields, and interpreting some fields differently. 
- 
          Google Transit introduces extensions to enhance functionality, such as ticketing deep links and route type classifications. 
- 
          Google Transit supports extensions for richer information like agency branding, fare details, and trip-specific directions. 
- 
          While generally aligning with GTFS, Google Transit's implementation includes deviations and extensions to optimize its services. 
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 | 
|---|---|---|
| fare_attributes.txt | payment_method | Enum | 
| feed_info.txt | default_lang | Language code | 
| feed_info.txt | feed_publisher_name | Text | 
| pathways.txt | max_slope | Float | 
| routes.txt | continuous_drop_off | Enum | 
| routes.txt | continuous_pickup | Enum | 
| routes.txt | network_id | ID | 
| routes.txt | route_desc | Text | 
| routes.txt | route_sort_order | Non-negative integer | 
| stops.txt | level_id | ID | 
| stops.txt | stop_desc | Text | 
| stops.txt | stop_url | URL | 
| stops.txt | tts_stop_name | Text | 
| trips.txt | 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 | 
|---|---|---|---|---|
| fare_attributes.txt | 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  | 
| pathways.txt | pathway_mode | Enum | Optional | When the pathway_modefield is specified, if it's left
      empty, Google Transit accepts it and treats it as unknown. | 
| stop_times.txt | arrival_time | Time | Conditionally required | Hours are restricted to values from 00to99, which is more than enough for three-day trips. | 
| transfers.txt | transfer_type | Enum | Required | Values of  Google Transit supports values of  | 
| trips.txt | 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.
| Filename | Field | Field type | Required by Google Transit? | Google Transit implementation details | 
|---|---|---|---|---|
| fare_attributes.txt | ic_price | Float | Optional | This Google Transit extension is available only for partners in Japan. The  | 
| fare_rules.txt | contains_route_id | ID | Optional | Google Transit extension. This fare applies only to travel that visits an exact set of routes
      identified by the  If the  | 
| routes.txt | checkin_duration | Integer | Optional | Google Transit extension. The  If the passenger connects to the departure by a transfer, then any
      defined transfer time overrides the  The  | 
| routes.txt | route_type | Enum | Required | Google Transit extension. To learn how Google Transit extends the GTFS‑accepted  | 
| stop_times.txt | stop_direction_name | Text | Optional | Google Transit extension. The  If the  | 
| stops.txt | signposted_as | Text | Optional | Google Transit extension. The  The GTFS  Differences between the  
 | 
| stops.txt | vehicle_type | Integer | Optional | Google Transit extension. The  | 
| agency.txt | ticketing_deep_link_id | ID | Optional | Google Transit ticketing extension. In the 
       | 
| routes.txt | ticketing_deep_link_id | ID | Optional | Google Transit ticketing extension. In the 
       | 
| stop_times.txt | ticketing_stop_time_id | ID | Optional | Google Transit ticketing extension. If present in the 
       | 
| stop_times.txt | ticketing_type | Enum | Optional | Google Transit ticketing extension. The  Google Transit accepts the following values: 
 | 
| ticketing_deep_links.txt | android_intent_uri | URI | Optional | Google Transit ticketing extension. The  | 
| ticketing_deep_links.txt | ios_universal_link_url | URL | Optional | Google Transit ticketing extension. The  | 
| ticketing_deep_links.txt | ticketing_deep_link_id | ID | Required | Google Transit ticketing extension. The  | 
| ticketing_deep_links.txt | web_url | URL | Optional | Google Transit ticketing extension. The  | 
| ticketing_identifiers.txt | agency_id | ID | Required | Google Transit ticketing extension. To specify the agency of the stop that the default  | 
| ticketing_identifiers.txt | stop_id | ID | Required | Google Transit ticketing extension. To specify the stop that the default  | 
| ticketing_identifiers.txt | ticketing_stop_id | ID | Required | Google Transit ticketing extension. The  | 
| trips.txt | exceptional | Enum | Optional | 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: 
 | 
| trips.txt | ticketing_trip_id | ID | Optional | Google Transit ticketing extension. If the  | 
| trips.txt | ticketing_type | Enum | Optional | Google Transit ticketing extension. The  Google Transit accepts the following values: 
 | 
| translations.txt | lang | Language Code | Optional | Google Transit extension. The  To specify the translation of a phrase, use the  | 
| translations.txt | trans_id | ID | Optional | Google Transit extension. The  To specify the ID token of the phrase that the translation is provided
      for, use the  | 
| trips.txt | original_trip_id | ID | Optional | Google Transit extension. If it's present in the 
       | 
| trips.txt | trip_direction_name | Text | Optional | Google Transit extension. The  If the  Values in the  | 
| trips.txt | vehicle_category_id | ID | Optional | Google Transit extension. In the 
       | 
| vehicle_categories.txt | vehicle_category_id | ID | Required | Google Transit extension. Identifies a vehicle category. | 
| vehicle_categories.txt | vehicle_amenity_id | ID | Optional | Google Transit extension. Identifies a set of amenities available to all passengers in the
      vehicle category. Alternatively, see  | 
| vehicle_amenities.txt | vehicle_amenity_id | ID | Required | Google Transit extension. Identifies a set of amenities. | 
| vehicle_amenities.txt | ac_availability | Enum | Optional | Google Transit extension. Defines if air conditioning is available. Google accepts the following values: 
 | 
| vehicle_amenities.txt | wifi_availability | Enum | Optional | Google Transit extension. Defines if Wifi is available onboard. Google accepts the following values: 
 | 
| vehicle_amenities.txt | toilet_availability | Enum | Optional | Google Transit extension. Defines if a toilet is available inside the vehicle. Google accepts the following values: 
 | 
| vehicle_amenities.txt | gender_accessibility | Enum | Optional | Google Transit extension. Defines if gender restrictions apply. Google accepts the following values: 
 | 
| vehicle_amenities.txt | seat_type | Enum | Optional | Google Transit extension. Defines the type of seat. Google accepts the following values: 
 | 
| vehicle_amenities.txt | service_class | Enum | Optional | Google Transit extension. Defines the class of the seat. Google accepts the following values: 
 | 
| vehicle_amenities.txt | service_class_code | String | Optional | 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 | Enum | Optional | Google Transit extension. Defines if either an electric or usb plug (of any type) is available at the seat. Google accepts the following values: 
 | 
| vehicle_amenities.txt | row_layout_summary | String | Optional | 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 | Enum | Optional | Google Transit extension. Defines if rows have additional leg space. Google accepts the following values: 
 | 
| vehicle_category_amenities.txt | vehicle_category_id | ID | Required | 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 | ID | Required | Google Transit extension. Identifies a set of amenities available to all passengers in the vehicle category. |