Learn more about routes

 Routes describe how agencies communicate their services to passengers. Define routes in the routes.txt file, which has the following structure:

Required fields

route_id,route_short_name,route_long_name,route_type

Optional fields

agency_id,route_desc,route_url,route_color,route_text_color

routes.txt file structure

Review our routes.txt file file for a description of the fields it contains.

The following example shows a simple routes.txt file:

route_id,route_short_name,route_long_name,route_desc,route_type

17,A,Mission,"The ""A"" route travels from lower Mission to Downtown.",3

Learn how to model routes

Important: Improperly-modeled routes can impair features such as the ability to search for a specific route.

Organize routes.txt entries in the same way that you communicate physical routes or lines to your passengers. For example, group your timetables by route in routes.txt, just as you would when presenting them on a website or in a printed booklet. The structure of your routes.txt file must correspond directly to the timetable routes.

Follow these best practices when modeling routes:

  • route_colorThe route_color and route_text_color fields help users to identify a route.
    • The route color must be a six-character hexadecimal number (for example, 00FFFF). If no color is specified, the default route color is white (FFFFFF).
    • Your selected route colors must be consistent with the colors in schedules, maps, signage, or labels on vehicles.
    • Use contrasting colors for the route_color and route_text_color fields. The system uses these fields as text and background colors when displaying route names.
    • If your agency does not use colors, leave these fields empty.
  • route_urlSet the route_url to a webpage that provides information about the route.
  • route_descEnter a route description in the route_desc field.

Name routes

Routes in your GTFS feed must use the same naming as the physical routes or lines communicated by your agency. City networks often use numbers, letters, or colors to distinguish between different lines and routes. However, intercity trains, long-distance buses, or ferry services are often identified by their type or by the name of the operator. In this case, use those identifiers as route names. Do not include words such as "line" or "route" in route names.

Route_short_name and Route_long_name fields

The value of the route_short_name field must be a number or short identifier. Don’t duplicate this value in the route_long_name field since they're generally shown next to each other. If the route does not have both a route_long_name and a route_short_name, leave one field empty.

We recommend that you display the route_short_name. If the route_long_name contains the name used for communication, then leave route_short_name empty.

Understand the difference between "routes" & "trips"

Keep in mind that a "trip" occurs at a specific time and a "route" is time-independent. Do not break a physical route into multiple entries in routes.txt to represent different route options such as direction of travel. Instead, use trips.txt features to model those options (as shown in the example routes below). Multiple entries in routes.txt with the same route_short_name or route_long_name show that routes have been unnecessarily subdivided. Learn about trips.txt field names and what they mean.

Example routes

The following sections contain example route models. The first correctly models the routes with trip variations.

Example 1 (correct)
File routes.txt
route_id,route_short_name,route_long_name,route_type
R10,10,Airport - Downtown,3
R20,20,University - Downtown,3


File trips.txt
route_id,service_id,trip_id,trip_headsign,direction_id
R10,WD,T-10-1,Airport,0
R10,WE,T-10-2,Downtown,1
R20,WD,T-20-1,University,0
R20,WE,T20-2,Downtown,1

Example 2 (incorrect)

File routes.txt
route_id,route_short_name,route_long_name,route_type
R10-in,10,To Downtown,3
R10-out,10,To Airport,3
R20-in,20,To Downtown,3
R20-out,20,To University,3

Route modeling scenarios

Scenario 1

Bus line 1 operates between stops A - B - C - D - E - F. Some trips only operate between A and D, and some trips skip B, C, and E. This route is modeled as one route (“1”) in the feed, including trips from A to F.

File stops.txt
stop_id,stop_name,stop_lat,stop_lon
stopA,Stop A,-21.213049,-159.825975
stopB,Stop B,-21.227892,-159.828051
stopC,Stop C,-21.252230,-159.821118
stopD,Stop D,-21.260588,-159.800071
stopE,Stop E,-21.271595,-159.757365
stopF,Stop F,-21.269228,-159.739851

File routes.txt
route_id,route_short_name,route_long_name,route_type
BusLine1,1,,3

File trips.txt
route_id,service_id,trip_id
BusLine1,0,tripABCDEF
BusLine1,0,tripABCD
BusLine1,0,tripADF

File stop_times.txt
trip_id,arrival_time,departure_time,stop_id,stop_sequence
tripABCDEF,06:00:00,06:00:00,stopA,1
tripABCDEF,06:10:00,06:12:00,stopB,2
tripABCDEF,06:20:00,06:22:00,stopC,3
tripABCDEF,06:30:00,06:32:00,stopD,4
tripABCDEF,06:40:00,06:42:00,stopE,5
tripABCDEF,06:50:00,06:50:00,stopF,6
tripABCD,08:00:00,08:00:00,stopA,1
tripABCD,08:10:00,08:12:00,stopB,2
tripABCD,08:20:00,08:22:00,stopC,3
tripABCD,08:30:00,08:30:00,stopD,4
tripADF,10:00:00,10:00:00,stopA,1
tripADF,10:30:00,10:32:00,stopD,2
tripADF,10:50:00,10:50:00,stopF,3

Scenario 2

With the same setup as the previous scenario the trips that skip B, C, and E are communicated to users in schedules as a separate line ("1 Express"). This scenario requires you to model maps and signage as a separate route ("1 Express") in the feed.

File stops.txt
stop_id,stop_name,stop_lat,stop_lon
stopA,Stop A,-21.213049,-159.825975
stopB,Stop B,-21.227892,-159.828051
stopC,Stop C,-21.252230,-159.821118
stopD,Stop D,-21.260588,-159.800071
stopE,Stop E,-21.271595,-159.757365
stopF,Stop F,-21.269228,-159.739851

File routes.txt
route_id,route_short_name,route_long_name,route_type
BusLine1,1,,3
BusLine1Express,1 Express,,3

File trips.txt
route_id,service_id,trip_id
BusLine1,0,tripABCDEF
BusLine1,0,tripABCD
BusLine1Express,0,tripADF

File stop_times.txt
trip_id,arrival_time,departure_time,stop_id,stop_sequence
tripABCDEF,06:00:00,06:00:00,stopA,1
tripABCDEF,06:10:00,06:12:00,stopB,2
tripABCDEF,06:20:00,06:22:00,stopC,3
tripABCDEF,06:30:00,06:32:00,stopD,4
tripABCDEF,06:40:00,06:42:00,stopE,5
tripABCDEF,06:50:00,06:50:00,stopF,6
tripABCD,08:00:00,08:00:00,stopA,1
tripABCD,08:10:00,08:12:00,stopB,2
tripABCD,08:20:00,08:22:00,stopC,3
tripABCD,08:30:00,08:30:00,stopD,4
tripADF,10:00:00,10:00:00,stopA,1
tripADF,10:10:00,10:12:00,stopD,2
tripADF,10:20:00,10:20:00,stopF,3

Examples of route naming

  1. The Zürich tram network uses numbers and colors to identify the different lines.

    • 13 (route logo) Zürich, Albisgütli
      [route_short_name: “13”, route_long_name: “”, trip_headsign: “Zürich, Albisgütli, route_color: "FFCC00", route_text_color: "000000"]

    • 6 Zürich, Zoo
      [route_short_name: “6”, route_long_name: “”, trip_headsign: “Zürich, Zoo”, route_color: "CA7D3C", route_text_color: "FFFFFF"]

  2. National rail services in Great Britain use the name of the operator.

    • South West Trains logo London Waterloo
      [route_short_name: “South West Trains”, route_long_name: “”, trip_headsign: “London Waterloo”]

    • Southern Brighton
      [route_short_name: “Southern”, route_long_name: “”, trip_headsign: “Brighton”]

  3. National rail services in Europe use the type of train (specified in this example with field route_short_name).

    • ICE 801 Berlin Südkreuz
      [route_short_name: “ICE”, route_long_name: “”, trip_headsign: “Berlin Südkreuz”, trip_short_name: 801]

    • Interlaken logo Interlaken Ost
      [route_short_name: “IC”, route_long_name: “”, trip_headsign: “Interlaken Ost”]

  4. Long distance buses in Argentina use the name of the operator.

    • Mercobus logo Cordoba
      [route_short_name: “Mercobus”, route_long_name: “”, trip_headsign: “Cordoba”]

    • Rutatlantica logo Rafael Castillo
      [route_short_name: “Rutatlantica”, route_long_name: “”, trip_headsign: “Rafael Castillo”]

Need more help?

Try these next steps:

Is there something we can help you with?

Chat with a member of Transit team

Search
Clear search
Close search
Google apps
Main menu
7043280641580229217
true
Search Help Center
true
true
true
true
true
82656
false
false