Smart shipping for on demand deliveries

Smart shipping for on demand deliveries

On-demand delivery is an industry that is growing at a very high speed. New companies appear every day, especially in the food and beverage market and the delivery of fresh products. And the competition is wild. Efficiency is a key metric in the “I want it all and I want it now” era and the most critical part is what happens from when a new order is placed until it is delivered.

Today I want to focus on the problem of sending new orders, that is, how to decide which courier the order should be assigned to when an order enters the system. This is because today shipping is not addressed in a systematic way. Optimizing the dispatch system can minimize delivery time and improve customer satisfaction.

The operating paradigm of companies that deliver on demand can be divided into two different types:

  1. Deliveries based on a single deposit are those operations focused on a warehouse. This warehouse has several messengers and the programming is done once for an order list; normally grouping orders by zones. Amazon Prime is a good example of this operating paradigm.
  2. Deliveries based on multiple deposits are those operations that depend on picking up the order in one of the multiple warehouses and delivering it to a customer. In this case, the messengers are scattered around the city and, once a new order arrives, it is assigned through a dispatch process to one of the multiple messengers. Companies such as Uber, Just Eat, Delivero , etc. operate this way.

The problem of the office is solved with greater or lesser success in the first scenario, due to the possibility of linking together a list of deliveries and treating it as a Common traveler problem with some restrictions prior to bundling ( OK, I know that TSP is a really expensive problem, but... come on, it's Amazon ).

On the contrary, in the second scenario it is not so clear that the problem is being optimally addressed. How can a new incoming order be added to a running scenario? There are tons of variables to consider:

  • Can the courier make several collections before starting to deliver?
  • Can an already assigned order be reassigned to another courier?
  • Do all orders have the same priority? ( for example, all orders must be delivered no later than 30 minutes after placing )
  • Do orders need to be delivered by a particular vehicle?
  • ...
Envío bajo demanda03
Photo by Roman Mager/Unsplash

Modeling this scenario can be quite a challenge and that's why SmartMonkey you have been working on this problem for a while. We call our solution Online Programming Optimization Model (OSOM) (Yes, branding isn't one of our strengths 😅, but phonetically it sounds like “incredible” and that's pretty fun). OSOM can model business limitations and find a viable solution to the dispatch problem.

In the simulation below, we have modeled a world where:

  • A courier can be assigned several pickups and deliveries at once.
  • and the first next service in each message is fixed and cannot be reassigned in subsequent iterations.

The visualization contains twenty iterations of the world divided into Two steps :

1. New incoming services are marked in gray.

2. Services are dynamically assigned to messengers to optimize total delivery time.

Envío bajo demanda04

Related tags:

Read more articles: