Skip to content

Commit fc371f8

Browse files
committed
Add carriage_positions.txt specification
Defines optimal carriage positioning for transfers and platform exits. Enables trip planners to recommend which carriage to board for minimal walking time at destinations. Fields: - from_stop_id: boarding platform - to_stop_id: destination stop/facility - recommended_carriage: 1-indexed from front - carriage_count: total positions (can be logical) - front_car_position: left/right platform side - facility_type: elevator/escalator/stairs (optional) Placed after pathways.txt as it complements station navigation.
1 parent e62ea02 commit fc371f8

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

gtfs/spec/en/reference.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ This document defines the format and structure of the files that comprise a GTFS
3535
- [frequencies.txt](#frequenciestxt)
3636
- [transfers.txt](#transferstxt)
3737
- [pathways.txt](#pathwaystxt)
38+
- [carriage_positions.txt](#carriage_positionstxt)
3839
- [levels.txt](#levelstxt)
3940
- [location_groups.txt](#location_groupstxt)
4041
- [location_group_stops.txt](#location_group_stopstxt)
@@ -139,6 +140,7 @@ This specification defines the following files:
139140
| [frequencies.txt](#frequenciestxt) | Optional | Headway (time between trips) for headway-based service or a compressed representation of fixed-schedule service. |
140141
| [transfers.txt](#transferstxt) | Optional | Rules for making connections at transfer points between routes. |
141142
| [pathways.txt](#pathwaystxt) | Optional | Pathways linking together locations within stations. |
143+
| [carriage_positions.txt](#carriage_positionstxt) | Optional | Optimal carriage positioning for transfers and platform exits. |
142144
| [levels.txt](#levelstxt) | **Conditionally Required** | Levels within stations.<br><br>Conditionally Required:<br>- **Required** when describing pathways with elevators (`pathway_mode=5`).<br>- Optional otherwise. |
143145
| [location_groups.txt](#location_groupstxt) | Optional | A group of stops that together indicate locations where a rider may request pickup or drop off. |
144146
| [location_group_stops.txt](#location_group_stopstxt) | Optional | Rules to assign stops to location groups. |
@@ -747,6 +749,27 @@ Pathways are intended to exhaustively define the internal access graph of a stat
747749
| `signposted_as` | Text | Optional | Public facing text from physical signage that is visible to riders.<br><br> May be used to provide text directions to riders, such as 'follow signs to '. The text in `singposted_as` should appear exactly how it is printed on the signs.<br><br>When the physical signage is multilingual, this field may be populated and translated following the example of `stops.stop_name` in the field definition of `feed_info.feed_lang`.|
748750
| `reversed_signposted_as` | Text | Optional | Same as `signposted_as`, but when the pathway is used from the `to_stop_id` to the `from_stop_id`.|
749751

752+
### carriage_positions.txt
753+
754+
File: **Optional**
755+
756+
Primary key (`from_stop_id`, `to_stop_id`, `facility_type`)
757+
758+
Defines optimal carriage positioning for transfers and platform exit access. Enables trip planners to recommend which carriage passengers should board to minimize walking time at their destination.
759+
760+
While [pathways.txt](#pathwaystxt) handles navigation within stations, it does not address where to stand on the platform before boarding. This file complements pathways by providing carriage-level boarding recommendations.
761+
762+
Producers MAY use logical carriage divisions when exact carriage positions are unavailable. For example, `carriage_count=3` with `recommended_carriage=1` indicates "board near the front" regardless of actual vehicle length.
763+
764+
| Field Name | Type | Presence | Description |
765+
| ------ | ------ | ------ | ------ |
766+
| `from_stop_id` | Foreign ID referencing `stops.stop_id` | **Required** | Identifies the platform where the passenger boards. Must reference a stop with `location_type=0`. |
767+
| `to_stop_id` | Foreign ID referencing `stops.stop_id` | **Required** | Identifies the destination platform. Must reference a stop with `location_type=0`. |
768+
| `recommended_carriage` | Non-negative integer | **Required** | The recommended carriage to board, 1-indexed from the front of the vehicle. May represent a logical position rather than exact carriage number. Must be less than or equal to `carriage_count`. |
769+
| `carriage_count` | Non-negative integer | **Required** | Number of carriage positions in this configuration. May represent logical divisions (e.g., 3 for front/middle/back) rather than actual carriage count. |
770+
| `front_car_position` | Enum | **Required** | Platform side where the front carriage (carriage 1) stops, from the perspective of a passenger facing the track. Valid options are:<br><br>`left` - Front carriage stops on the left side of the platform.<br>`right` - Front carriage stops on the right side of the platform. |
771+
| `facility_type` | Enum | Optional | Type of facility at the destination. Valid options are:<br><br>`elevator` - Elevator access.<br>`escalator` - Escalator access.<br>`stairs` - Stair access.<br><br>May be empty if the destination is another platform or general exit. |
772+
750773
### levels.txt
751774

752775
File: **Conditionally Required**

0 commit comments

Comments
 (0)