How Marketplace Efficiency for Product Delivery Services Works

Hello, Habr! My name is Artyom Selikhov, I am a Product manager in the SberMarket team, and I am responsible for managing software products for the operational processes that we develop for our partners – couriers and procurement experts.

In the first post, we already talked about the fact that in recent months SberMarket has grown several times, and food delivery has turned into a service for residents of the whole country. Today I want to talk about what is “under the hood”, what approaches we use to timely detect problems and balance processes. This post will be useful for those who develop systems for interacting with partners, and are also interested in the complex tasks in the field of Marketplace efficiency. Those wishing to read about our many tasks in the field of Data Science are invited to cat.

SberMarket began its work as a startup in the eGrocery industry called Instamart. We initially took the operating model of the North American company Instacart as a model and created our vision of the delivery service. Both SberMarket and Instacart buy products for you from the shelves of the selected store, and then bring them to your home. At the same time, Instacart successfully competes with Amazon, Wallmart and Target in the USA. And SberMarket, respectively, with Utkonos, Perekrestok and other Russian online retailers providing a delivery service.

However, the most interesting from the point of view of the developer is that delivery from the store’s shelf is not only delivery. Such a business would not have been possible without the active involvement of procurement specialists who carefully collect tens of thousands of orders every day at retailer stores in more than 100 cities in Russia. At the same time, we have to assume the role of a marketplace, solving the problems of equalizing supply and demand.

We have developed our own methods that allow us to achieve a balance between the number of incoming orders from customers and the availability of contractors, ensuring continuous operations. At the same time, we strive to guarantee maximum convenience for the client, while optimizing costs. In this post I want to talk about our projects that help create high-quality service for customers, while maintaining business efficiency. Some of them have already been implemented, while others are under development and are waiting for their heroes to help translate promising concepts into code.

SberMarket – mechanism for working with orders

When a client of SberMarket places an order on the website or in the application, he sees the time slots in which he can receive his order. Some intervals may not be available for selection. This is because at this time there are no free resources for assembly and delivery. This is a serious limitation for the client, because if there is no convenient delivery time, he can completely refuse the order, which we naturally do not want.

To solve this problem, we decided to build a full-fledged Marketplace efficiency system. The issue of balancing demand and service needs to be addressed at three different levels:

  • Marketplace forecasting – long-term planning (month or more);
  • Supply planning – short-term planning (next week);
  • Real-time capacity – operational planning within the day.


General Marketplace efficiency scheme

We use the following metrics to assess the situation:

  • Availability – the number of hours to the nearest available time interval
  • Slot Utilization (Time-slot utilization) – occupancy of allocated capacity for time intervals
  • Lost deliveries) -% abandoned baskets due to inaccessible slots

To understand the whole system, you need to understand how each segment works. To do this, we will first consider Marketplace forecasting.

Marketplace forecasting

Long-term planning is a critical task. To provide the customer with the possibility of ordering at any time, you need to predict our demand for the coming couple of months and attract a sufficient number of partners to process orders. This segment includes several modules at once:

Demand forecast is responsible for forecasting demand. The system takes into account the% availability of slots for ordering a particular store and predicts what demand would be if availability were higher. That is, the module determines what percentage of time slots was available to the client from all possible. So we get the metric Ideal demand level – This is a restored demand, taking into account customers who did not find a convenient delivery time and who abandoned the basket.

Ops hiring tells us how many FTE (full-time employee, the equivalent of one full-time employee) we need at each point under our ideal demand. This system also helps to determine which specialist we need: a courier, a procurement specialist, a storekeeper in a pick-up area, a packer. Attraction of specialists occurs on a contract basis as self-employed. Thus, to organize the work of the service, we chose a cross between an hourly engagement scheme as in Instacart / Delivery Club and full hiring. At the same time, we work with partners both on a long-term basis and to fulfill specific orders. For example, in some cases, Citimobil may take any order instead of our partner courier, helping us to block demand peaks.

Distant learning helps us solve the strategic problem of expanding the network of partners. After all, in the final analysis, we strive to ensure that a person could start working with us as quickly as possible. Ideally, we want to ensure that training takes place right inside our partner mobile app (the so-called Shopper App).

This system is currently under development, but its objectives are already clear. We want a small test to show if a partner is ready to collect or deliver orders to customers. The idea is to provide ongoing training to our partners to improve the quality of their work. And if we understand that the partner could not immediately learn all the subtleties of the choice, for example, avocados, the system should ask him to take this course again.

Short-term planning (Supply planning)

The main objective of the Supply planning segment is to plan the attraction of such a number of partners for each day of the week to completely cover the expected demand. On this horizon, the Demand forecasting system is planning not by the day, but also by the day, so that attracting the right number of partners will compensate for the daily fluctuations in demand. As a rule, morning and evening peaks have to be taken into account.

Workforce management system (WMS) tells us how many partners and in what roles should go out and start working on orders on each specific day of the week. The key metric for this segment is Staff utilization (the ratio of the staff available to us to the required level). If the indicator is below 100%, then we are faced with a situation of a shortage of people (understaffed). If more than 100%, then we withdraw people with a margin (overstaffed). Both of these are bad for the business, therefore WMS should constantly strive to approach the ideal level of staff workload. To solve this problem, you can use a system of well-known vendors. Right now we are weighing all the pros and cons in order to make a choice between adapting a ready-made solution and independent development.

Capacity planning system conducts mathematical calculations for accessibility management. To make them easier, we use the concept of Timeslot limit (the maximum possible number of “average” orders that we can take on at a given time interval so as not to violate obligations to the client). This indicator is determined based on the number of partners whom we were able to plan and attract due to the work of the Workforce management system, and their average performance. Now the Capacity planning system is in the state of the model (sql-based model), and we are just looking for a talented developer who could “cast” it in the code.

Real-time capacity

Over the course of each day, additional variables appear in the work of the delivery service, and here our team needs special flexibility, because you have to change plans in real time.

For example, it often happens that:

  • The client wants to place an order for the next hour. In this case, you need to give him the opportunity to order, if we have the resources to fulfill it.
  • Transferring the order time is also a typical event, in which case it is necessary to plan the analysis of the order and its assembly at another time, which means finding the necessary resources for this.
  • There is always the possibility that one or more partners will not go to work by the scheduled time. We must create an action plan in this case too 🙂
  • And sometimes a partner cannot physically take just such an order (in size, weight, distance, etc.), and such situations need to be addressed as quickly as possible.

Metrics Actual supply reflects the real availability of staff. Partners may go to work sooner or later than the appointed time, or they may not go out at all. They may report this or be “out of network coverage”. We take into account all options, and the actual availability of staff is always different from the planned one. It begins and ends with the fixation of the shift and the completion of the shift.

Real-time orders dispatch – This is the very heart of our service. The system consists of two interconnected modules, each of which solves its own task, in order to ensure maximum automation of business processes together:

Vehicle route planning provides order routing. As a rule, our courier takes 1-2 orders by light transport (bicycle, scooter), up to 7 orders by car and up to 20 by truck. When planning, logistical efficiency of the flight and minimization of delays are at the forefront. For this, the system can take into account many factors of real logistics, and here are just the main ones:

  • selected order delivery window;
  • order priority (with highlighting applications for which we definitely do not want to be late);
  • what time the order will be assembled (taking into account whether the assembly is late or running ahead of schedule);
  • what mode of transport is better to take the order (light, regular and heavy orders);
  • what volume and weight of each order, in which car it is included;
  • where is the driver when the reserved time for renting a car ends.


An example of a route list with points on Yandex maps

Assembly real-time dispatch (dispatching assembly orders) performs tasks completely similar to routing orders, only in terms of their assembly and packaging. Based on information about planned flights, the system offers the optimal sequence of order assembly, taking into account the experience of each specific partner. And right now we are working on the development of this system.

Flight routes and assembly sequence are recounted several times per hour in order to timely take into account all the changes in the system and information from the outside world. At the same time, the flights of the nearest loading are fixed in order to guarantee timely assembly and shipment. Future delivery routes are constantly being optimized, and the main task of the assembly dispatch system (as a dependent system) remains to ensure the most efficient and timely assembly of orders by the time the flights are dispatched.


Flights store METRO Izhevsk.

Open hour = (Available capacity – Order processing time> 0? True: false)

one system

The Marketplace efficiency concept combines three components that help us forecast demand, plan to attract partners, and respond to the situation in real time. With the growth of the flow of orders, the tasks to be solved within the framework of the development of these systems are becoming more complex and non-trivial. With the seemingly obvious task of delivering from store shelves, in order to build truly optimal business processes with more than 20K applications per day, developers are also required skills in the field of AI and ML. That is why we continue to recruit developers who are able to solve complex problems associated with the planning, forecasting and processing of big data in the field of operations.

Of course, you can talk about all Marketplace Efficiency modules in more detail, as well as pitfalls that pop up at different stages of the system’s development and its integration with other ICs in SberMarket. Therefore, I will be glad if you share your questions and opinions in the comments.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *