Case studies

Using Machine Learning To Increase a Food Delivery Company’s Efficiency By 10%

It’s a lazy Sunday and you dream about eating some delicious food. But not to prepare it… Each of us has probably found ourselves in a similar situation. What are you doing?Ordering food and keeping fingers crossed delivery man will come as soon as possible. Check out how our client has improved the process of finding drivers for food delivery by 10%.



Creating a system for more effectively assigning one of the available drivers to the newly accepted food order was the main assumption of this project. When a client orders food, the system sets the order in which drivers will receive order notifications. Before starting the project, the system only took into account the distance between the potential driver and the given address and the rating – the company’s internal way of assessing drivers.


The driver has 15 seconds to answer whether he undertakes the implementation of the route. If he doesn’t, the query goes to the next one. Everything sounds great, but many restaurant owners (potential clients) hung up while waiting for a delivery man to be allocated. Even the progress bar in the mobile application did not encourage them to stay on the line.


The business challenge was to find as quickly as possible available drivers. Our client also wanted an improved system that would assess the likelihood that a given driver would take the job.




Our task was to improve the order in which instructions orders were sent to drivers using AI (artificial intelligence). We received a database from a client that contained information on 1.5 million journeys. There was also anonymized data on their clients, such as geographical coordinates, time of placing the order, and distance to the driver. In the database, the orders had the status “accepted” or “not accepted”. We enriched the received data with important information: for example, whether the course we offer to the driver has not been previously rejected by him, whether the car on a given day did not break down or whether the driver usually rejects long routes.

Diving deep into the data analysis is great fun. During this project, we were able to find new dependencies in data and relations between key features of the dataset that were valuable to the customer, which always brings satisfaction to both sides in business.

Tomasz Juszczyszyn

Data Scientist, Stermedia




We originally assumed the application of the method from the area of ​​random trees – Gradient Boosting Trees. However, the client wanted to check several models and methods – logistic regression and neural networks. To this end, we checked the machine learning model trained on 80% of data. When the training was finished, we verified its correctness on the remaining 20%. Finally, we chose the algorithm we proposed at the beginning, Gradient Boosting Trees.





In addition to the previously analyzed data, we took into account a new aspect that turned out to be a game-changer. It was information about the percentage of a driver’s orders’ acceptance on a given day. If someone has already received many courses on a given day, then the system began to allocate more orders to him. If someone took 5-7 orders on a given day, there is a greater chance that they will take another. The result we received after using the model was an increase in accepted orders by 10%.



Machine learning – Algorithm gradient boosting trees
Production implementation in the AWS cloud architecture

Marta Miszczak
See also

Senior Android Developer PL

Obowiązki udział w opracowywaniu koncepcji oraz planowaniu nowych modułów i funkcjonalności rozwój oprogramowania przygotowywanie i dbałość o dokumentację projektową Wymagania […]

Here’s a place where dialogue starts.

Let's talk!