Canceled vs suppressed trips

Skip to first unread message

Ivan Volosyuk

Nov 23, 2021, 9:40:57 PM11/23/21
1. We plan to add a custom extension of the trip relationship enum to
distinguish two types of the trip cancelation.
The current CANCELED trip relationship is good to represent trip
cancellation where there are expectations about the schedule to be
stable and generally represent truth.
We are thinking about adding the (currently private) SUPPRESSED trip
relationship to silently suppress trips and optionally replace them
with ADDED trips which are very different from the original ones. This
to be used for an agency where trip replacement is a common practice.

2. As it is not part of standard and has a chance of conflict with
potential other custom extensions, we are not quite sure what value to
use for that. I'm leaning towards using some large number
enum TripRelationship {
// Private extension, silent version of CANCELED to be used in
combination with ADDED
SUPPRESSED = 591235; // leek speak for SPRES

What do you think? Is there a better way? Any interest in making it
part of the standard?

Stefan de Konink

Nov 24, 2021, 4:30:41 AM11/24/21
On Wednesday, November 24, 2021 3:40:41 AM CET, 'Ivan Volosyuk' via
GTFS-realtime wrote:
> What do you think? Is there a better way? Any interest in making it
> part of the standard?

I don't think this is technically a possibility, I doubt ENUM's can be
extended without directly impacting the parser. I therefore suggest to add
either a boolean extension with suppressed, and use "ADDED" to be
"compatible" with the current protobuf.


Paul Swartz

Nov 24, 2021, 9:00:25 AM11/24/21
Cancelling a trip and replacing it with a new trip sounds like a use case for the TripProperties.trip_id field. For example, if you are cancelling/suppressing trip A and replacing it with trip B, you could have:

1) TripUpdate for trip A, schedule_relationship: CANCELLED
2) TripUpdate for trip A, schedule_relationship: DUPLICATED, TripProperties.trip_id: B

I'm not sure whether any consumers support this, but that's also the case if you added a new enum to ScheduleRelationship.

This also assumes that trip B is a replacement for trip A. If it's not a replacement for trip A, I'd be curious why you'd want to show it without explicitly showing that trip A isn't running.


You received this message because you are subscribed to the Google Groups "GTFS-realtime" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
To view this discussion on the web visit

Ivan Volosyuk

Nov 25, 2021, 12:31:38 AM11/25/21
Thank you for the replies.

Stefan has a good point. We'll go ahead with the TripDescriptor
extension together with the CANCELED schedule relationship and plain
ADDED trips. This will have good compatibility with existing

DUPLICATED schedule relationship is a bit cumbersome for us to use as
it requires stateful processing with common state between VP and TU
feeds. We will keep an eye on the experiment.
> To view this discussion on the web visit

Тролейбусен Транспорт Плевен - ЕООД

Dec 24, 2021, 9:30:59 AM12/24/21
to GTFS-realtime
Hello people,

I am 18 years old and I am a big fan of the transport. Due to this fact I decided I could be helpful for the transport in my city - I contacted with the manager of our city transport company and he authorized me to provide timetables on the Static Feed on Google Maps last year. The feed has been working for about 1 year. By the way, you can check the transport system in my city - find Pleven, Bulgaria on Google Maps. So, since the feed is working I am wondering how I can provide the Live Feed on Transit section. I read a lot but I have no acquaintances in programming and I even don't know how to start. The thing I want to do is to provide the Feed with information about the accurate position of the vehicles and the delays or earlier arrivals. If somebody from this group can help me, I will be really thankful. I need info about the program I can work with and if possible one exact example which would be like a base for the other stuff. I will probably ask a lot of questions.

If somebody is interested in helping me, please contact with me on the following emails:

Best regards,
Kaloyan Todorov

Reply all
Reply to author
0 new messages