Closed lauriemerrell closed 2 years ago
I'm going to close this ticket. Per conversation just now with @e-lo and @o-ram, this situation is explicitly covered in the Cal ITP FAQ. Our recommendation is to publish "future" service in parallel (at a separate link) to the current active feed.
Conversation about the best practice is occurring at https://github.com/MobilityData/GTFS_Schedule_Best-Practices/issues/48
I am creating this issue to record something that we are aware of but where I believe the jury is currently out on how to handle; we are in a "monitoring" stance at present & tracking the prevalence of this issue.
There is a case that we encounter occasionally where an agency handles a feed transition like this, where the dates are in order (
A
,B
,C
,D
,E = D + 1 day
,F
).So,
feed 1
is deleted on the date thatfeed 2
is uploaded, even thoughfeed 1
is not supposed to expire yet, from the agency's perspective.GTFS Best Practices say:
@e-lo has submitted https://github.com/MobilityData/GTFS_Schedule_Best-Practices/issues/48 to clarify the best practices and expectations around this case in general.
However, we are still left with a question of how to handle this scenario in our pipeline. At present, we mark
feed 1
as deleted on dateC
(as soon asfeed 2
is uploaded), and the agency will show as having no service between datesC
andD
, untilfeed 2
takes effect on dateE
.I believe that this handling is defensible, but it can lead to our reports and tables displaying
0
service for an agency during a period where the agency believes thatfeed 1
's coverage should have been persisted (based, perhaps, onfeed_end_date
infeed_info
). We have been told that app consumers keep using the old feed until the new one takes effect.There is currently no validation being produced when these situations occur, at least in the case of
273.0
(SacRT) for the month of March (feed uploaded3/3/22
didn't take effect until4/3/22
). There is a validation for cases where it is less than 7 or 30 days before the current feed expires, but there is no validation when the feed has not yet taken effect.A few considerations:
stg_daily_service
andfact_daily_service
, one version that is "strict" and treatsfeed 1
as deleted and the other that interpolates service?calendar
/calendar_dates
+feed_info
in exact alignment; do we have cases in the pipeline where there was a genuine pause in service that would have looked the same as this?is_interpolated
flag but it doesn't cover this case.cc @edasmalchi @o-ram @Nkdiaz for awareness