Waymo: Define an on-time pickup, and use it to compare a new routing algorithm with the current one.
For one week in May 2025, Waymo tested a new routing algorithm in one city: each ride request was randomly handled by either the current router or the new one. The router decides which vehicle goes to the rider and shows the rider an estimated pickup time in the app. The rider operations team wants to know whether the new router improves on-time pickups, and has shared every ride request from the test.
There is no agreed definition of an on-time pickup yet, so choosing one is part of the task.
waymo_pickup_test.csv has one row per ride request:
ride_idrouter - current or newrequested_at - when the rider requested the ridepromised_eta_min - the estimated time to pickup, in minutes, shown to the rider when they requested the ridevehicle_arrived_at - when the vehicle arrived at the pickup pointrider_boarded_at - when the rider got into the vehiclecancelled_at - when the ride was cancelled by the riderYou can solve this in Python, SQL, or a mix of both — StrataScratch notebooks support both languages in the same notebook.
Assume this data comes directly from the dispatch system and hasn't been cleaned, so review it carefully before relying on the numbers. When something looks off, work out what it is and decide how to handle it; when a definition or a final decision is genuinely ambiguous, choose a reasonable option and explain why. There's often more than one valid way to compute a result, so explain the approach you take and the reasoning behind your choices.
What's assessed: how well your definition fits the question, whether you apply it correctly to the data, and how clearly you justify your choices and conclusion. There is no single correct number — a definition different from the one in our solution is fine if it is well argued and applied consistently.
See the full interview round by round, with questions for each stage.