Can a Date Picker Mislead for Overnight Transit?
From the earlier reference collection. Read the current software blog.
A date picker should say whether it selects a calendar date or a transit service date, because an overnight trip can belong to one and occur on the other.
One trip, two dates
A rider choosing a date may mean “show events that happen on this calendar day.” A schedule engine may instead interpret the selection as a service date that activates trips, including trips that continue after midnight. Without a clear label, the same trip can seem to disappear from one date or appear unexpectedly on another.
The GTFS reference explains that service days can extend beyond 24:00:00; for example, a time such as 26:00:00 can indicate 02:00 on the following calendar day. [GTFS schedule reference](https://gtfs.org/documentation/schedule/reference/)
Choose the question the picker answers
If the product is a daily event listing, label the control “Calendar date” and show events that occur between local midnight boundaries. If it selects which day’s service pattern to evaluate, label it “Service date.” A planner may need both concepts internally: the first selects the service, and the second describes when a particular stop event occurs.
For example, someone selecting Friday service may see a trip that leaves at 23:40 and reaches a stop at 01:15 Saturday. A calendar-day listing for Saturday might include the event at 01:15, even though the trip was activated by Friday’s service pattern.
Explain overnight results
When showing an overnight itinerary, display the day change near the time: “arrives Saturday at 1:15 a.m.” is clearer than a bare “1:15 a.m.” Keep the original service date available for trip lookup, exceptions, and troubleshooting. If the interface lets users switch between calendar and service dates, preserve their selection and explain what changes in the results.
A date picker should also use the agency’s local date context. A user’s device may be in another zone, and “today” could otherwise resolve to a different date from the one used by the schedule.
Test the boundary
Test a trip that begins before midnight and continues after it, one that begins after midnight, and a service date with a calendar exception. Verify that a calendar-date view and a service-date view return their intended results without duplicating or hiding the overnight stop.
The control’s label is a small design choice with a large effect on interpretation. State which date it selects, show the local calendar date of post-midnight events, and preserve the service date that determined whether the trip runs.