Types of GTFS stops

The word "stop" in a public transport network is commonly used to describe a wide range of things, including stations, platforms, shelters, poles, and more.

The GTFS definition of a stop is just as broad, but it can be more precise when the gtfs.txt file contains two optional columns: location_type and parent_station.

Location type

There are five valid location types defined by the keys 0, 1, 2, 3 and 4.

  • 0 (or blank) is a STOP or PLATFORM. Both represent a location where travellers can (un)board a vehicle, such as a tram shelter or a train platform. The difference between the two is whether they have a parent stop or not. A STOP does not: it's a single, independent location (like an isolated pole on the street). A PLATFORM does, it belongs to a STATION.

  • 1 is a STATION. It represents a structure that contains one or more PLATFORMS, such as a train or subway station.

  • 2 is an ENTRANCE/EXIT of a STATION, i.e. a place where travellers can access a station from the street.

  • 3 is a GENERIC location inside a STATION that doesn't match any other type.

  • 4 is a BOARDING AREA, which is a section of a PLATFORM with some special boarding feature, such as a ramp for wheelchair accessibility.

So GTFS stops basically fall into one or two of two categories:

  • locations where vehicles physically stop to pick up and/or drop off travellers (= STOPS, PLATFORMS and BOARDING AREAS)

  • locations that represent a (part of a) STATION (= all types except STOP).

Parent station

The parent_station property is required when a stop represents anything other than an independent STOP or an encompassing STATION.

It must contain a valid stop_id matching:

  • a STATION for stops representing a PLATFORM, ENTRANCE/EXIT, or GENERIC location.

  • a PLATFORM for stops representing a BOARDING AREA.

Example

There is a major square in the city of Brussels named Place De Brouckère, which is considered by many locals to be the central point of Brussels. Many stops located in and around this square are listed in STIB/MIVB's (i.e. the city's public transport operator) stops.txt GTFS file, from which this sample was taken:

stop_id,stop_name,stop_lat,stop_lon,location_type,parent_station
1820,"DE BROUCKERE",50.850478,4.351300,0,
2070,"DE BROUCKERE",50.853120,4.353578,0,
2594,"DE BROUCKERE",50.850734,4.352937,0,
2595,"DE BROUCKERE",50.850504,4.353890,0,
2596,"DE BROUCKERE",50.849654,4.352651,0,
3465,"DE BROUCKERE",50.852420,4.351157,0,
0010106,"4 - Boulevard Anspach",50.850262,4.351740,2,6
0010206,"2 - Place De Brouckère",50.851997,4.353216,2,6
0010306,"3 - Place De Brouckère",50.851161,4.352890,2,6
0010406,"1 - Place De Brouckère",50.851404,4.352492,2,6
6,"DE BROUCKERE",50.849821,4.352486,1,
0501,"DE BROUCKERE",50.851494,4.352876,0,6
0506,"DE BROUCKERE",50.851746,4.353415,0,6
8011,"DE BROUCKERE",50.850095,4.352165,0,6
8012,"DE BROUCKERE",50.849821,4.352486,0,6

This sample illustrates 4 of the 6 stop types:

De Brouckère bus stop

The first 6 rows represent individual bus poles at street level, i.e. the STOP type given by location_type:0 + parent_station:(blank).

De Brouckère metro entrance/exit

The next 4 rows represent a metro station's access points, as specified by location_type:2 + parent_station:6 ("6" being the station's stop_id). One entrance/exit is located on the boulevard that crosses the square, the other three on the Place De Brouckère.

De Brouckère metro station

The 7th row is the metro STATION as a whole, as described by location_type:1 + parent_station:(blank).

De Brouckère metro platform

This station is served by two lines, both running in two directions, so the station has four PLATFORMS described in the final 4 rows with location_type:0 + parent_station:6.