Incorrect GTFS-R metadata

While poking around the GTFS-R feeds I’ve noticed that the Metro feed quite often shows per-carriage features that don’t exist - toilets, quiet carriages and luggage racks.

Curiously, while all of those features are potentially present in the new Mariyung sets they are never shown - in fact all of the associated metadata just doesn’t exist. I assume this is because the Mariyung trains share the /v2/gtfs/vehiclepos/sydneytrains/ feed and the feed itself doesn’t know how to present those fields?

Sydney Metro GTFS-R example

id: “0/2026-09-12T03:38:52Z/RS019”
vehicle {
trip {
trip_id: “M1-O-SYD_UP-CUD_UP-1-20260912-024706:X”
start_time: “12:47:06”
start_date: “20260912”
schedule_relationship: ADDED
route_id: “SMNW_M1”
direction_id: 0
}
position {
latitude: -33.7145195
longitude: 150.935776
bearing: 337.38
speed: 14
}
current_stop_sequence: 18
current_status: IN_TRANSIT_TO
timestamp: 1789184332
congestion_level: RUNNING_SMOOTHLY
stop_id: “2153403”
vehicle {
id: “RS019”
label: “RS019”
license_plate: “RS019”
[transit_realtime.tfnsw_vehicle_descriptor] {
air_conditioned: true
wheelchair_accessible: 1
vehicle_model: “Alstom Metropolis”
special_vehicle_attributes: 0
}
}
occupancy_status: MANY_SEATS_AVAILABLE
[transit_realtime.consist] {
name: “DTC1”
position_in_consist: 0
occupancy_status: MANY_SEATS_AVAILABLE
quiet_carriage: false
toilet: NONE
luggage_rack: false
}
[transit_realtime.consist] {
name: “MPC1”
position_in_consist: 0
occupancy_status: MANY_SEATS_AVAILABLE
quiet_carriage: true
toilet: NONE
luggage_rack: false
}
[transit_realtime.consist] {
name: “MC1”
position_in_consist: 0
occupancy_status: FEW_SEATS_AVAILABLE
quiet_carriage: false
toilet: NORMAL
luggage_rack: false
}
[transit_realtime.consist] {
name: “MC2”
position_in_consist: 0
occupancy_status: FEW_SEATS_AVAILABLE
quiet_carriage: false
toilet: NONE
luggage_rack: true
}
[transit_realtime.consist] {
name: “MPC2”
position_in_consist: 0
occupancy_status: FEW_SEATS_AVAILABLE
quiet_carriage: true <---- incorrect
toilet: NORMAL <---- incorrect
luggage_rack: true <---- incorrect
}
[transit_realtime.consist] {
name: “DTC2”
position_in_consist: 0
occupancy_status: MANY_SEATS_AVAILABLE
quiet_carriage: true
toilet: NONE
luggage_rack: true
}
}

Sydney Trains GTFS-R example (Mariyung)

id: “186”
vehicle {
trip {
trip_id: “W754.1399.147.130.D.6.91096162”
schedule_relationship: SCHEDULED
route_id: “BMT_2”
}
position {
latitude: -33.7096977
longitude: 150.316299 <---- No speed, bearing
}
timestamp: 1789184305
congestion_level: UNKNOWN_CONGESTION_LEVEL
stop_id: “Mountains.KT8 Loc”
vehicle {
id: “7829.9068.8722.1591.2399.1381”
label: "12:04 Lithgow Station to Blacktown Station "
[transit_realtime.tfnsw_vehicle_descriptor] {
vehicle_model: “D”
}
}
occupancy_status: MANY_SEATS_AVAILABLE
[transit_realtime.consist] {
position_in_consist: 1
occupancy_status: MANY_SEATS_AVAILABLE <---- No quiet carriage, toilet, luggage rack
}
[transit_realtime.consist] {
position_in_consist: 2
occupancy_status: MANY_SEATS_AVAILABLE
}
[transit_realtime.consist] {
position_in_consist: 3
occupancy_status: MANY_SEATS_AVAILABLE
}
[transit_realtime.consist] {
position_in_consist: 4
occupancy_status: MANY_SEATS_AVAILABLE
}
[transit_realtime.consist] {
position_in_consist: 5
occupancy_status: MANY_SEATS_AVAILABLE
}
[transit_realtime.consist] {
position_in_consist: 6
occupancy_status: MANY_SEATS_AVAILABLE
}
}

Best regards,
Andy

Hey @andy.stewart ,

thanks for your message - two very good points!!

  1. For the metro, yes this has been raised before. As these features are part of the Transport GTFS specs, they remain in the feed but will be false and NONE.

  2. Addition of Mariyung carriage information in the Sydney Trains feed is under consideration but I don’t have any timeframes at this stage. There have been other projects that are a priority. Once we know more we will share!

Cheers!
Marcela

1 Like

Great, thanks for the update Marcela :slight_smile:

1 Like