Russian version of the article is available down the link
Our system includes a great fair jobs distribution algorithm. We call it “intelligent queues”. What it does is basically distributes the jobs fairly between your drivers. To simplify, we form a queue of all drivers within 5 minutes (or more, depending on driver working radius allowance) reach to the customer, based on driver’s waiting time, distance and rating.
Making distance between driver and customer shorter
First of all, this doesn’t affect the service quality, since every driver can reach a customer rather quickly. Second, this keeps all drivers engaged, not only those who are lucky. And third, this solves the case when drivers are standing in line. Now they will get jobs one by one. And another great reason is that it motivates drivers to accept jobs, since if they don’t – the waiting time is reset to 0.
In this example two drivers are both within 5 minutes from the customer. But one of the drivers has completed a job just 3 minutes ago, and another one has been waiting his customer for 15 minutes, so he gets a new job. If this driver does not accept the ride, the system sends it to the next available driver. Until the ride is accepted, the previous drivers who has not accepted can still bid it as shown on the picture.