Modern transit routing algorithms like RAPTOR filter dominated connections — if a faster train departs before your current one arrives, switch to it. This filtering assumes the passenger can always make the switch. But real transit systems have buffer times: the minimum duration needed to walk between platforms, wait for doors, or clear a fare gate. A connection that dominates on paper may be unreachable in practice if the transfer requires more time than the schedule allows.
Katkalo, Rohovyi, and Walsh show that standard connection filtering breaks when buffer times exist. The filtering treats all connections as interchangeable, but a passenger seated on a train and a passenger transferring between trains face different constraints. The seated passenger has zero buffer — they're already on board. The transferring passenger needs the full buffer time. Filtering doesn't distinguish these cases, so it eliminates connections the seated passenger could use and retains connections the transferring passenger cannot.
Their fix, Transfer Aware Dijkstra, examines entire trip sequences rather than individual connections. It tracks whether each connection is reached by continuing in the same vehicle or by transferring, applying buffer times only in the transfer case. Tested on London and Switzerland networks, it achieves greater than two times speedup over the MR algorithm while producing optimal results.
The through-claim is about the unit of analysis. Connection-based filtering optimizes over individual legs. Trip-based routing optimizes over journeys. The difference is not computational sophistication — Dijkstra is a simpler algorithm than RAPTOR. The difference is that the correct unit of analysis is the sequence, not the element. Whether a connection is reachable depends on how you arrived at it, which depends on the previous leg, which the connection-level filter cannot see.