Block transfer example

Block transfer, also called in-seat transfer, is available when a set of trips meets the following conditions:

  1. The trips are consecutive.
  2. The same vehicle operates both trips.
  3. The trips are provisioned with the same block_id value in the trips.txt file in the transit feed.


For Google Maps to recognize that block transfers between trips are possible, the following prerequisites must be met:

  1. The trips must use the same block_id value in trips.txt. This indicates that the trips use the same vehicle.
  2. The trips must operate on the same days, or on consecutive days if a trip crosses midnight.
  3. The trips must be consecutive and not overlap.
  4. The last stop of the arriving trip must be the first stop of the departing trip.

Implementation example

Block transfers can be made between consecutive trips on different routes or on the same route if the route is a loop line.

For example, consider the following trips.txt and stop_times.txt values:


route_id trip_id block_id
RouteA RouteATrip1 Block1
RouteB RouteBTrip1 Block1


trip_id arrival_time departure_time stop_id stop_sequence
RouteATrip1 12:00:00 12:01:00 A 1
RouteATrip1 12:05:00 12:06:00 B 2
RouteATrip1 12:15:00 C 3
RouteBTrip1 12:18:00 C 1
RouteBTrip1 12:22:00 12:23:00 D 2
RouteBTrip1 12:30:00 E 3

In this example:

  • A user who searches for a route from stop A to stop E is directed to embark at stop A at 12:00 on Route A and to stay on the vehicle when it reaches stop C after the end of RouteATrip1. This is because the same vehicle services RouteBTrip1 for Route B.
  • Passengers on RouteATrip1 who want to continue on to a stop on RouteBTrip1 can stay on the vehicle for this transfer.
  • Passengers of other trips on other vehicles along these same routes don't have this option because they use different vehicles for each trip.

Block transfer in a loop line

In a loop line, the first stop and the last stop of a trip are the same and have the same stop_id. Provided that consecutive loop trips have the same block_id, block or in-seat transfer is enabled, which lets passengers of the first trip remain on the vehicle when it continues on the next loop.

Valid blocks in GTFS feeds

For block transfer to be possible, you must properly define one or more blocks in the feed. To pass validation, trips that belong to the same block can't overlap and must have the same route_type (subway, rail, bus, and so forth). Trips can belong to the same block even if they're on different days. If any blocks are defined in a static feed, they show in the Validation Report, on the Overview tab.