What Is the Difference Between Arrival Time and Departure Time in a Stop Record?
From the earlier reference collection. Read the current software blog.
Arrival and departure are distinct scheduled events at a stop; either field may be absent where the schedule’s rules and context allow it.
Two events at one stop
A stop-time record connects a trip to a stop and describes the scheduled event or events there. Arrival time is when the vehicle is scheduled to reach the stop; departure time is when it is scheduled to leave. They may be equal when the schedule does not distinguish a dwell, or differ when the vehicle is expected to wait, board, or perform another operation.
GTFS organizes stop_times.txt around trip stop events and defines fields and presence rules in its reference. Those rules matter because a blank value is not automatically the same as a malformed value. [GTFS schedule reference](https://gtfs.org/documentation/schedule/reference/)
Interpret blanks in context
A reader should validate each field according to the specification and the record’s position and context. Some stop records can have an arrival or departure value omitted under defined conditions. An importer should not fill every blank with zero or copy the neighboring time without checking whether that is valid for the particular record.
Imagine a trip that begins at a terminal. The first event may be represented differently from an intermediate stop where both reaching and leaving times describe the vehicle’s movement and dwell. A simplified consumer may display one time for riders, but it should retain the underlying distinction so it does not misstate the schedule.
Avoid turning schedule time into prediction
These fields describe scheduled times, not a guarantee of actual arrival or departure. A planned departure of 08:12 does not tell a rider whether a vehicle is currently early or delayed. If a product combines static schedule data with live observations, label the sources and timestamps so users can tell the planned event from a current estimate.
When showing a single time in a compact list, decide whether the screen represents arrival, departure, or a generic pass time. At a boarding stop, departure may be the useful value; at an alighting stop, arrival may matter more. The label should match the event selected.
Validate without erasing meaning
A validator can check formatting, required presence, and the sequence of times along a trip. It should report which trip and stop record failed and preserve the raw field value for diagnosis. For accepted records, keep both arrival and departure values where provided, even if a particular screen chooses to show only one.
This separation makes the data model more faithful and the interface more honest. Riders see a clearly labeled scheduled event, while developers retain the detail needed to inspect dwell times, missing values, and feed-specific edge cases.