-
Notifications
You must be signed in to change notification settings - Fork 227
Clarify spec: Add definitions to Cause and Effect values and clarify Trip Update and Service Alerts usage for consumer routing decisions #648
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
85b781a
a547a6a
2021aa5
4745f61
6e758b0
7c2b612
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -12,6 +12,8 @@ updates would give a predicted arrival or departure for stops along the route. | |
| Trip updates can also provide for more complex scenarios where trips are | ||
| canceled, added to the schedule, or even re-routed. | ||
|
|
||
| Producers MUST ensure that Trip Updates are up-to-date and accurate in relation to the real-time situation in the transit network. | ||
|
|
||
| [More about Trip Updates...](trip-updates.md) | ||
|
|
||
| ## Service Alerts | ||
|
|
@@ -32,6 +34,21 @@ A service alert will usually consist of some text which will describe the | |
| problem, and we also allow for URLs for more information as well as more | ||
| structured information to help us understand who this service alert affects. | ||
|
|
||
| #### Usage of Trip Updates and Service Alerts | ||
|
|
||
| If producers provide both Trip Updates and Service Alerts, producers SHOULD be able update their service alerts independently from their TripUpdates. These two feeds should not fully depend on each other. | ||
|
|
||
| Producers MUST also ensure that there is no conflict between their Trip Updates and Service Alerts feeds. | ||
|
|
||
| Examples of conflicts include: | ||
|
|
||
| * A service alert informing of a stop closure while the trip updates for that stop are not set to `SKIPPED`. | ||
| * A service alert informing of a route closure while the trip updates for the cancelled trips are not set to `CANCELED`. | ||
| * A route closure spanning the whole day, for which the trip updates feed cancels trips over the next 90 minutes while no `NO_SERVICE` alert exists beyond those 90 minutes informing of the route closure. | ||
|
|
||
|
|
||
| Data consumers SHOULD use both Trip Updates and Service Alerts to make routing decisions, such as cancelling a trip or closing a stop. In case there is a conflict between Trip Updates and Service Alerts, consumers SHOULD inform the agency/producer of the issue, and SHOULD exercise caution when applying either feed to affect routing decisions. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. So, cancelling a route or agency recursively cancels all trips of that entity? I think this would be a very valuable clarification.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. My suggestion was more in the direction: there should be to cancellation flags. One from tripUpdates and one from ServiceAlerts. |
||
|
|
||
| [More about Service Alerts...](service-alerts.md) | ||
|
|
||
| ## Vehicle Positions | ||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -386,41 +386,41 @@ Cause of this alert. | |||||
|
|
||||||
| **Values** | ||||||
|
|
||||||
| | _**Value**_ | | ||||||
| |-------------| | ||||||
| | **UNKNOWN_CAUSE** | | ||||||
| | **OTHER_CAUSE** | | ||||||
| | **TECHNICAL_PROBLEM** | | ||||||
| | **STRIKE** | | ||||||
| | **DEMONSTRATION** | | ||||||
| | **ACCIDENT** | | ||||||
| | **HOLIDAY** | | ||||||
| | **WEATHER** | | ||||||
| | **MAINTENANCE** | | ||||||
| | **CONSTRUCTION** | | ||||||
| | **POLICE_ACTIVITY** | | ||||||
| | **MEDICAL_EMERGENCY** | | ||||||
| | **SPECIAL_EVENT** | | ||||||
| | _**Value**_ | _**Comment**_ | | ||||||
| |-------------|----------------| | ||||||
| | **UNKNOWN_CAUSE** | Used when the cause of the disruption is not known or has not been determined. Should be avoided if any more specific cause can be reasonably identified. | | ||||||
| | **OTHER_CAUSE** | Used for causes that do not represented by any of predefined options. | | ||||||
| | **TECHNICAL_PROBLEM** | Issues related to vehicles or infrastructure malfunctioning. Examples include mechanical failure and information system bugs. | | ||||||
| | **STRIKE** | Service disruptions caused by a labor strike involving the transit agency or operator. | | ||||||
| | **DEMONSTRATION** | Service disruptions caused by public demonstration, protest, or gathering. | | ||||||
| | **ACCIDENT** | Incidents such as collisions or derailments that disrupt services. | | ||||||
| | **HOLIDAY** | Any public holiday that might result in a change of service. | | ||||||
| | **WEATHER** | Disruptions caused by weather conditions such as snow, storms, flooding, etc. | | ||||||
| | **MAINTENANCE** | Planned maintenance related to the services. Examples include track maintenance, elevator maintenance and vehicle maintenance. | | ||||||
| | **CONSTRUCTION** | Any construction that affects the service, regardless whether it relates to the services or not. Examples include station construction and roadworks that affect bus routes. | | ||||||
| | **POLICE_ACTIVITY** | Disruptions due to law enforcement activity or security incidents. Examples include investigations or security threats. | | ||||||
| | **MEDICAL_EMERGENCY** | Incidents involving passenger or staff medical emergencies. Examples include an on-board medical problem that forces a train to stop. | | ||||||
| | **SPECIAL_EVENT** | A special one-time or recurring event such as a parade, festival, performance, farmers market, or sporting event. | | ||||||
|
|
||||||
| ## _enum_ Effect | ||||||
|
|
||||||
| The effect of this problem on the affected entity. | ||||||
|
|
||||||
| **Values** | ||||||
|
|
||||||
| | _**Value**_ | | ||||||
| |-------------| | ||||||
| | **NO_SERVICE** | | ||||||
| | **REDUCED_SERVICE** | | ||||||
| | **SIGNIFICANT_DELAYS** | | ||||||
| | **DETOUR** | | ||||||
| | **ADDITIONAL_SERVICE** | | ||||||
| | **MODIFIED_SERVICE** | | ||||||
| | **OTHER_EFFECT** | | ||||||
| | **UNKNOWN_EFFECT** | | ||||||
| | **STOP_MOVED** | | ||||||
| | **NO_EFFECT** | | ||||||
| | **ACCESSIBILITY_ISSUE** | | ||||||
| | _**Value**_ | _**Comment**_ | | ||||||
| |-------------|----------------| | ||||||
| | **NO_SERVICE** | No transit service to the specified entity(-ies).<br>- For stations or stops, the rider will not be able to board or alight.<br>- For routes, the route will not run.<br>- For trips, those specific trips are cancelled. | | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Was leaving out station entrances and pathway nodes done on purpose?
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @gcamp yes. The topic of allowing alerts for pathways, entrances, exits is something that has been talked about for a while and we are planning to start that conversation soon. Building one what was mentioned on issue#268, the intent was to clarify some things in the realtime spec (such as here and in #546 ), create documentation to help with implementation and how to deal with use-cases (such as the spec vs RT Guidance and the RT Alerts Guidance), then eventually get to "alerts on pathway data". That conversation can involve all |
||||||
| | **REDUCED_SERVICE** | The number or frequency of trips is reduced. | | ||||||
| | **SIGNIFICANT_DELAYS** | The route will consistently run late (insignificant delays should only be provided through [Trip updates](trip-updates.md)). | | ||||||
| | **DETOUR** | The route changes its shape, resulting in the route not serving one or multiple stops, or picking up/dropping off at other locations. | | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Detour doesn't mean stops are cancelled
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a previous comment from @ckraatz mentioning that if a detour does not change the behaviour at any stop, then it does not matter to the rider. And that can be communicated via a SIGNIFICANT_DELAYS alert. I like @gcamp's wording, but would like to discuss whether the DETOUR alert "may affect" or "will affect" pickup/drop off at some stops. One case I see for keeping "may" and including detours that only change the shape is in Montreal; where STM buses can drop people off at night between stops if they are traveling alone or with a child, for safety reasons. If a detour were to change the shape but keep the same behaviour at the stops, it would be valuable to communicate the disruption as a DETOUR alert to let people know that the itinerary changed and that their "between-stops" drop-off might not be done.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If we want to make a detour that doesn't affect stop SIGNIFICANT_DELAYS, that's probably ok, but we should be explicit in the spec. I think in most people's mind a detour is a detour, affecting stops or not. What you're referencing for the STM is more akin a deviated service than a detour. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would agree here that the use of the DETOUR status alone should not mean stops are cancelled. Perhaps language should be added here which states: "The route changes its shape. Routing must only be affected if TripModifications are also provided which detail the new shape of the route and any removed or replaced stops." |
||||||
| | **ADDITIONAL_SERVICE** | The number or frequency of trips is increased. For example, more buses are running to cover for a special event. | | ||||||
| | **MODIFIED_SERVICE** | Operations are different from what the rider would normally expect. An example is an alert that reminds riders of an upcoming holiday schedule that is different from normal service on that day of the week. | | ||||||
| | **OTHER_EFFECT** | Not represented by any of these options. | | ||||||
| | **UNKNOWN_EFFECT** | Used for alerts whose effect has not been identified yet. Do not use "Unknown effect" if the effect of the alert is known or can be deduced from the alert header or description. | | ||||||
| | **STOP_MOVED** | A stop location is changed temporarily or permanently (if known to be permanent, ensure the new location is reflected in the schedule data). | | ||||||
| | **NO_EFFECT** | The alert provides information to riders but does not affect operations. Examples include advertising public meetings and soliciting feedback via surveys. Unless necessary, it is advised not to use this effect. | | ||||||
| | **ACCESSIBILITY_ISSUE** | The alert provides information about accessibility issues that affect step-free access. Examples include an out of service elevator or movable ramps, a bus that is unable to kneel, or an exceptional service with trains that have a big platform gap. | | ||||||
|
|
||||||
| ## _enum_ SeverityLevel | ||||||
|
|
||||||
|
|
||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -32,32 +32,35 @@ If you would like to represent an alert that affects more than one entity (e.g. | |
|
|
||
| What is the cause of this alert? You may specify one of the following: | ||
|
|
||
| * Unknown cause | ||
| * Other cause (not represented by any of these options) | ||
| * Technical problem | ||
| * Strike | ||
| * Demonstration | ||
| * Accident | ||
| * Holiday | ||
| * Weather | ||
| * Maintenance | ||
| * Construction | ||
| * Police activity | ||
| * Medical emergency | ||
| * Special Event | ||
| * **Unknown cause**: Used when the cause of the disruption is not known or has not been determined. Should be avoided if any more specific cause can be reasonably identified. | ||
| * **Other cause**: Used for causes that do not represented by any of predefined options. | ||
| * **Technical problem**: Issues related to vehicles or infrastructure malfunctioning. Examples include mechanical failure and information system bugs. | ||
| * **Strike**: Service disruptions caused by a labor strike involving the transit agency or operator. | ||
| * **Demonstration**: Service disruptions caused by public demonstration, protest, or gathering. | ||
| * **Accident**: Incidents such as collisions or derailments that disrupt services. | ||
| * **Holiday**: Any public holiday that might result in a change of service. | ||
| * **Weather**: Disruptions caused by weather conditions such as snow, storms, flooding, etc. | ||
| * **Maintenance**: Planned maintenance related to the services. Examples include track maintenance, elevator maintenance and vehicle maintenance. | ||
| * **Construction**: Any construction that affects the service, regardless whether it relates to the services or not. Examples include station construction and roadworks that affect bus routes. | ||
| * **Police activity**: Disruptions due to law enforcement activity or security incidents. Examples include investigations or security threats. | ||
| * **Medical emergency**: Incidents involving passenger or staff medical emergencies. Examples include an on-board medical problem that forces a train to stop. | ||
| * **Special Event**: A special one-time or recurring event such as a parade, festival, performance, farmers market, or sporting event. | ||
|
|
||
| ## Effect | ||
|
|
||
| What effect does this problem have on the specified entity? You may specify one of the following: | ||
|
|
||
| * No service | ||
| * Reduced service | ||
| * Significant delays (insignificant delays should only be provided through [Trip updates](trip-updates.md)). | ||
| * Detour | ||
| * Additional service | ||
| * Modified service: Operations are different from what the rider would normally expect. An example is an alert that reminds riders of an upcoming holiday schedule that is different from normal service on that day of the week. | ||
| * Stop moved | ||
| * Other effect (not represented by any of these options) | ||
| * Unknown effect | ||
| * No effect: The alert provides information to riders but does not affect operations. Examples include advertising public meetings and soliciting feedback via surveys. | ||
| * Accessibility issue: The alert provides information about accessibility issues that affects step-free access. Examples include an out of service elevator or movable ramps. | ||
| * **No service**: No transit service to the specified entity(-ies). | ||
| * For stations or stops, the rider will not be able to board or alight. | ||
| * For routes, the route will not run. | ||
| * For trips, those specific trips are cancelled. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can you set an agency to NO_SERVICE? If yes, what happens then?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There is a strike :-) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would expect that setting an agency to NO_SERVICE would be equivalent to setting all of that agency's routes to NO_SERVICE. Aside from a labor strike, this might also be used for extreme weather such as blizzards or typhoons/cyclones/hurricanes. |
||
| * **Reduced service**: The number or frequency of trips is reduced. | ||
| * **Significant delays**: The route will consistently run late (insignificant delays should only be provided through [Trip updates](trip-updates.md)). | ||
| * **Detour**: The route changes its shape, resulting in the route not serving one or multiple stops, or picking up/dropping off at other locations. | ||
| * **Additional service**: The number or frequency of trips is increased. For example, more buses are running to cover for a special event. | ||
| * **Modified service**: Operations are different from what the rider would normally expect. An example is an alert that reminds riders of an upcoming holiday schedule that is different from normal service on that day of the week. | ||
| * **Stop moved**: A stop location is changed temporarily or permanently (if known to be permanent, ensure the new location is reflected in the schedule data). | ||
| * **Other effect** Not represented by any of these options. | ||
| * **Unknown effect**: Used for alerts whose effect has not been identified yet. Do not use “Unknown effect” if the effect of the alert is known or can be deduced from the alert header or description. | ||
| * **No effect**: The alert provides information to riders but does not affect operations. Examples include advertising public meetings and soliciting feedback via surveys. Unless necessary, it is advised not to use this effect. | ||
| * **Accessibility issue**: The alert provides information about accessibility issues that affect step-free access. Examples include an out of service elevator or movable ramps, a bus that is unable to kneel, or an exceptional service with trains that have a big platform gap. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I find this sentence very hard to parse. Could you perhaps re-write it for maximum clarity (perhaps at the cost of some verbosity)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The discussion was something like: some producers are unable to make new timetables. For months they are using their AVL system to skip a stop. But their AVL system has a horizon of just 90 minutes. Hence every trip planned after 90 minutes would still show the regular timetable.
For me it is also very hard to comprehend why people would accept this quality of their vendors.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it make sense to design the GTFS standard for the worst practices? I would rather design for good practices to produce great results.
In case they really can't produce a static GTFS file for months, I would rather write a little script that takes the GTFS file and the GTFS-RT protobuf and update the GTFS file accordingly. In most systems data coming in via GTFS-static will also be displayed differently than GTFS-RT and in this case you would probably want the GTFS-static version.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll start by saying that yes, I agree that the standard should be built for good practices and not cater to bad vendor behavior. I also understand where you're coming from that in principle GTFS static should be updated in cases of known route changes. However, I just want to offer a slightly different framing with what this actually looks like IRL rather than just in digital.
In the physical world, an agency may post a temporary sign on a bus stop that says a route will be diverted away from this stop for an amount of time due to construction. The bus stop sign itself still remains and lists that route as stopping there, since it will eventually return after the disruption is over.
The digital equivalent of updating GTFS static in this scenario is more like removing the bus stop sign entirely until the disruption is over. There hasn't been an official service "change" per say, just a temporary adjustment. Basically, by updating GTFS static there's no definitive way to link the change to a "why" without the service alert.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this shortcoming of GTFS static will be solved by #638 (no boarding + no alighting + notice)