← All data exercises

Estimate driver lifetime value and find what predicts driver churn

3 tables · 1.2M rowsUnlock with Pass

Wayfare is a ride-hailing company. Acquiring and onboarding drivers is expensive, so the company wants to know what a driver is worth to Wayfare over the whole projected time they keep driving: their lifetime value. That number would guide how much to spend on recruiting and keeping drivers, and which drivers to focus on.

You have the drivers onboarded over a period of a few months and every ride they completed. All rides took place in San Francisco.

The data

  • drivers — one row per driver: driver_id and driver_onboard_date, the day the driver was onboarded.
  • rides — one row per completed ride: driver_id, ride_id, ride_distance (meters), ride_duration (seconds) and ride_surge_pct, the surge pricing applied to the ride, in percent (0 means no surge).
  • ride_events — one row per event in a ride’s life: ride_id, event and timestamp (UTC). The events are requested_at (the passenger requested a ride), accepted_at (the driver accepted the request), arrived_at (the driver arrived at the pickup point), picked_up_at (the driver picked up the passenger) and dropped_off_at (the driver dropped the passenger off at the destination).

There are no fares in the data. Assume this rate card:

Item Amount
Base fare $2.00
Cost per mile $1.15
Cost per minute $0.22
Service fee $1.75
Minimum fare $5.00
Maximum fare $400.00

Check how well the three tables join before relying on them, and say how you handle what doesn’t match.

Your task

  1. Recommend a driver lifetime value. Say what you count as value to Wayfare (the whole fare, the service fee, a share of the fare), how you apply the rate card and surge, and how you project value beyond the period the data covers. State every assumption and show how sensitive the result is to the ones that matter most.
  2. What are the main factors that affect a driver’s lifetime value — how long they stay, how much they drive, when and where in the day they drive, the kind of rides they take? Separate factors Wayfare could influence from those it can’t.
  3. Once a driver is onboarded, how long do they typically keep driving? The data has no churn flag: define when a driver has churned, explain how you chose the definition, and handle drivers who were onboarded too recently for you to know. Give the typical projected lifetime with a sense of its uncertainty.
  4. How do drivers churn once they start driving? Are there indicators early in a driver’s life that predict churn, and how well do they predict it on drivers you didn’t use to find them?
  5. Do all drivers act alike? Describe the segments of drivers you find, which generate more value than the average driver, and how you would make sure the segments are stable enough to act on.
  6. What actionable recommendations follow for the business? For the most important one, estimate its effect on driver lifetime value and say how you would test it before rolling it out.

What to deliver

A 15-minute presentation for a cross-functional panel (operations, marketing, product and finance), with an appendix that includes your working materials: the queries or code behind each number, so the work can be reproduced.

All company names in this question are fictional.

Data preview

driversfirst 5 rows
driver_iddriver_onboard_date
002be0ffdc997bd5c50703158b7c24912016-03-29 00:00:00
007f0389f9c7b03ef97098422f902e622016-03-29 00:00:00
011e5c5dfc5c2c92501b8b24d47509bc2016-04-05 00:00:00
0152a2f305e71d26cc964f8d4411add92016-04-23 00:00:00
01674381af7edd264113d4e6ed55ecda2016-04-29 00:00:00
ride_eventsfirst 5 rows
ride_ideventtimestamp
00003037a262d9ee40e61b5c0718f7f0requested_at2016-06-13 09:39:19
00003037a262d9ee40e61b5c0718f7f0accepted_at2016-06-13 09:39:51
00003037a262d9ee40e61b5c0718f7f0arrived_at2016-06-13 09:44:31
00003037a262d9ee40e61b5c0718f7f0picked_up_at2016-06-13 09:44:33
00003037a262d9ee40e61b5c0718f7f0dropped_off_at2016-06-13 10:03:05
ridesfirst 5 rows
driver_idride_idride_distanceride_durationride_surge_pct
002be0ffdc997bd5c50703158b7c2491006d61cf7446e682f7bc50b0f8a5bea5181132750
002be0ffdc997bd5c50703158b7c249101b522c5c3a756fbdb12e95e87507eda33628090
002be0ffdc997bd5c50703158b7c2491029227c4c2971ce69ff2274dc798ef4332825720
002be0ffdc997bd5c50703158b7c2491034e861343a63ac3c18a9ceb1ce0ac6965283333825
002be0ffdc997bd5c50703158b7c2491034f2e614a2f9fc7f1c2f77647d1b9814115823100