Time, Distance, Price, and Priority

This post is not about attacking Uber. I love Uber. It changed the way I move in Cairo, & it saved me few times in Amsterdam. It is about an edge case where the API didn’t provide the best price for the customer, and how to prioritize when there is a conflict.

The Story

Two week ago, I forgot my keys in the office and couldn’t go back to get them. I had an extra key with a friend so I went to his house to get it. I went with two of my friends and after we got the key, it was too late that there was no public transportation anymore. No transportation, no problem. Uber to the rescue.

I requested an Uber and we took it from my friend’s home to my home, then from my home to my friends’ home. The first part was easy, the second part I entered the address of my friends’ home  and I saw the recommended route on the map as in the screenshot:


If you know me, I am an optimization freak. Being a fulltime taxi user back in Egypt made me paranoid about optimizing my route for both time & price. One wrong decision can make you pay double the price & not save much time. That’s why I highly take care of which route I am taking and how much it will result in payment.

What struck me in the above screenshot was, assuming it is a square from where the car now to the destination point, why move with the edges when you can cut it diagonally and save much more distance which means paying less?

To answer this question I had to validate my hypothesis so I went to Google maps and queried the same two points from that night, and that’s what I got:


As expected, the route the driver took was 11km, while the route from inside the city is only 7km. The reason this happened, is because Google maps – assuming Uber uses it for route recommendation – optimizes for time. It recommended this route because it only took 13 minutes, while the other route took 18. For simplicity, these numbers are all calculated based on no traffic case, which is quite similar to the day of the mentioned ride.

UberX in Amsterdam costs 2 euros as starting fees, 1.40 for every kilometer, and 0.25 for every minute paid for the whole duration of the trip. This means in my case I would have paid:

  1. 2.0 starting fees + (6.9 km * 1.40) + (18 minutes * .25) = 16.16 euros.
  2. 2.0 starting fees + (11.0 km * 1.40) + (13 minutes * .25) = 20.65 euros.

27% more!

It doesn’t matter

One can argue the difference isn’t this big, but for me as someone used Uber more than 300 times in one year (it basically replaced taxis for me), such a difference can amount to big sums of money.

One can also argue, time is an undebatable metric, at the end when you open Google maps and want to drive somewhere, you want the fastest route not the shortest. The problem is – as Einstein proved – time is relative. 5 minutes can be a lot for a New Yorker, but they can be seconds for an Egyptian. There is no definite answer.

Another argument could be, one of Uber’s metrics is the efficiency of the marketplace which means the utilization of the drivers. The more rides the driver makes in shorter times, or to be more accurate, the longer distances the driver drives in an hour, the more money she makes, and the more money Uber also makes. However this can be at the cost of the ride which makes a paranoid customer like myself always question and check the best route for his ride not relying on Uber’s recommendation.

Price is one of the biggest conversion/retention factors, however the problem is you don’t know how much you are paying until you finish the ride.

The case for price sensitivity

Assuming Uber decided to cater for price sensitive customers such as myself, it has to either set hard rules for all customers. For example if the difference between two routes is 3-5 minutes and difference in price is >25%, take the longer route. While it may work for some customers, it might not work for others, and there is no way to measure how the customer is satisfied without complicating the feedback experience as they didn’t see the change with their eyes.

One solution can be by finding out which cities have such difference between distance and time spent. Uber can run and store such data, and compare how much – on average – people pay more and how much time they saved, which cities have bigger discrepancy? This will help to find the size of the problem and whether it is worth pursuing.

The other option would be to give customers a choice, which is basically suggesting: Hey, would you spend 5 more minutes and pay – probably – 5 euros less? The problem with this is it raises more questions than answers. It will make customers question, is Uber making me the right choice? Are they taking more money? Plus in fact most customers wouldn’t care with such complexity, just take me where I am going and STFU. Not to mention this will be perceived by the drivers as Uber is making them less money.

A third option, kinda in the middle, is to give customer the choice of having a choice, which can be an opt in option.

What to do?

The short answer is I don’t know. As mentioned before every decision has different implications and it is hard to measure success/failure of the solutions.

As for me, next time I am taking an Uber, I will check in advance the time/distance difference and based on this decide which route I am taking. Just like the good old taxi days.