Shane By Shane • May 10, 2018

How does Uber's dispatch algorithm work?

I can’t say exactly how Uber’s algorithm works but I can provide some insight as we have built our own routing algorithm for our software that provides an on demand SAAS engine.

Say you have 100 appointments to do and 10 drivers. You want to know which 10 appointments go to each driver and in what priority.

You will need to build a time/distance matrix to calculate the time to get from each point to the other 99 points. You need to calculate from A to B but also from B to A as the times are not always the same.

Then the system needs to brute force calculate the best combination of appointment assignments to each driver. As the system churns out answers, your system gets more efficient. The amount of time to complete the whole route keeps getting lower.

This is a simple example. Now for Uber, you would need to add additional variables and assign various weights to each variable such as

  • live traffic at specific times
  • driver rating
  • customer rating
  • drop off destination
  • Surge pricing
  • other less obvious variables

The algorithm is constantly evolving as it should. A 1% improvement in efficiency would add a ton of profit to the bottom line for Uber.

Uber’s algorithm is also doing this in real time. As riders cancel and finish rides, drivers become available. As drivers go online and offline, supply of drivers changes.