Fix: service calendars with no days switched on
Published: . Last reviewed: .
Code: service_has_no_active_day_of_the_week (MobilityData validator)
What this means
A row in calendar.txt has monday through sunday all set to 0, so the
service runs on no day of the week. Any trip tied to that calendar never runs.
It is usually a calendar that was being edited and left empty, or one whose days
were cleared but the row was never deleted.
Why it matters
The trips attached to an empty calendar are invisible to riders, because they never run. That is rarely intended. Either the trips should run on some days and the calendar was left blank by mistake, or the calendar is retired and should be gone. Both cases hide the real schedule from your staff and your vendor.
How to fix it
First decide which case it is:
- The service should run: set the correct days on the calendar (switch the
right
monday–sundaycolumns to1). Checkcalendar_dates.txttoo, in case the days were meant to come from exception dates. - The calendar is retired: delete the empty calendar row, and remove the trips that pointed at it if they are also retired.
In most scheduling tools this is the service or calendar editor, where you toggle the days a service pattern runs.
How long it usually takes
A few minutes once you know whether the service is meant to run. The fix itself is toggling days or deleting a row.
Authoritative rule
service_has_no_active_day_of_the_week is a canonical MobilityData GTFS Validator notice used in validator reports across the GTFS ecosystem. Read the authoritative rule for service_has_no_active_day_of_the_week in the GTFS Validator rules. (opens on an external site)
After you republish
Once the changed feed is live at your published URL, the next scorecard run checks it again. When the same complete producer contract no longer reports this finding, it can be recorded as a dated finding clearance. That confirms the later feed state, not who changed the feed or why.