← Back to Dispatch Lab

Clarke–Wright savings.

My way of explaining it: if two deliveries are close together, why drive back to the warehouse between them?

Think of a pizza run.

Imagine you’re delivering pizzas from a shop. You need to visit two houses, A and B, and finish back at the shop. You could make a separate round trip to each house. Or you could visit both on one trip.

Clarke–Wright savings is a method for building delivery routes by joining trips that save distance. The warehouse or shop is called the depot. “Savings” means how much less you travel after joining two trips.

A small example.

Suppose the shop is 5 km from A and 6 km from B. The houses are only 3 km apart. Assume the distance is the same in either direction.

  • Separate trips: shop → A → shop is 10 km. Shop → B → shop is 12 km. Total: 22 km.
  • One combined trip: shop → A → B → shop is 5 + 3 + 6 = 14 km.
  • Distance saved: 22 − 14 = 8 km.

The combined trip replaces A → shop → B with A → B. That’s why the shortcut calculation is:

Savings = distance from A to the shop + distance from the shop to B − distance from A to B.

Here, that’s 5 + 6 − 3 = 8 km. A larger positive number means a more useful merge.

Now add more stops.

  1. Start with a separate out-and-back route for every stop.
  2. Calculate the savings for pairs of stops and sort them from largest to smallest.
  3. Try joining the routes in that order. Join only different routes, using stops at their ends, and only if the combined load fits in the vehicle.
  4. Continue through the list until no more allowed, useful joins remain.

For example, if A needs 4 boxes and B needs 5, a van holding 8 boxes cannot serve both on that trip. Saving distance doesn’t help if the cargo won’t fit. Joining stops in the middle of a route would also break the existing chain, so the method joins route ends.

Good routes, quickly.

This is a heuristic: a practical shortcut that aims for a good answer quickly. Choosing the biggest saving first doesn’t guarantee the shortest possible overall plan, because one choice can prevent another useful combination later.

In Dispatch Lab, I use it as one way to build capacity-constrained routes. Nearest neighbor instead chooses a nearby next stop; 2-opt can improve a route by changing connections and reversing a section. Comparing them shows how different choices affect total distance.

Dispatch Lab uses made-up map coordinates and straight-line distances. A real delivery planner would need road distances and might also account for traffic, opening hours, and driver schedules.

Further reading: MIT’s routing lecture and the University of Málaga’s algorithm overview.