← All GTFS fixes

Fix: service dates fall outside the feed's stated validity window

Code: service_window_outside_feed_period (MobilityData validator)

What this means

Two parts of the feed disagree about the dates it covers. feed_info.txt states a validity window with feed_start_date and feed_end_date, while the actual service in calendar.txt and calendar_dates.txt runs on dates outside that window. The feed says it is valid for one range but schedules trips in another.

Why it matters

The validity window is a promise about when the data is good. When service runs outside it, the promise and the schedule no longer match, and any app or program that trusts the stated window can draw the wrong conclusion: that current service is expired, or that the feed covers dates it does not. It usually points to one of two slips: the feed_info dates were not updated when a new schedule was published, or old service periods are still in the export past the window's end.

How to fix it

Decide which side is wrong:

After the fix, the validity window and the service dates should describe the same range.

How long it usually takes

A quick reconciliation. Updating the two feed_info dates is a one-time edit; trimming stray service periods is one export setting.

Authoritative rule

service_window_outside_feed_period is a canonical MobilityData GTFS Validator notice used in validator reports across the GTFS ecosystem. Read the authoritative rule for service_window_outside_feed_period 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.