How to organize delivery in multiple shifts and time windows without routes overlapping
There is a day when the morning run stops getting back at three in the afternoon and starts getting back at six. Afternoon customers call to ask if you have left yet, and whoever asked for delivery "before noon" gets it at four. Nobody failed. Delivery volume simply outgrew a single run.
Splitting the day into shifts looks like the obvious answer, but done without a clear method it creates new problems: two routes driving down the same streets, a driver assigned to two things at once, orders that fall in between with nobody sure which shift they belong to. Here is how to avoid that.
Shift and time window are not the same thing
A shift is a complete run: the vehicle gets loaded, goes out, drives its route and comes back. A time window is the promise you make to the customer, for example between 9 and noon. A morning shift can hold two time windows, but a single time window should not span two shifts.
It sounds like a matter of vocabulary, but it decides where the problem gets solved: shifts get solved by building routes, time windows get solved in how you talk to the customer. When the two get mixed up, the spreadsheet ends up with a "time" column that nobody can tell apart: does it mean when the driver leaves, or when the customer is expecting them?
When a single shift stops being enough
There are three fairly clear signs. The route no longer fits into a driver's shift without stretching it. Shops and restaurants that only accept deliveries at a certain hour keep landing at the end of the route, after they have already closed. And deliveries fall through because they arrive late and get pushed to the next day, at the cost of a wasted trip.
One sign on its own can be lived with for a while. With two, you are already delivering across more than one shift without having decided to, and it is worth making that explicit before disorder decides it for you.
A worked example with hypothetical numbers
Say you have 60 stops a day, 12 minutes per stop between travel and drop off, and an 8 hour shift per driver. That is 720 minutes of route, or 12 hours. One driver on their own cannot fit that in.
| Setup | Drivers | Vehicles | Stops per driver | Route hours per driver |
|---|---|---|---|---|
| One shift, one driver | 1 | 1 | 60 | 12 |
| One shift, two drivers | 2 | 2 | 30 | 6 |
| Two shifts, two drivers | 2 | 1 | 30 | 6 |
The last two setups split the same workload. The second needs two vehicles, and every customer receives their delivery at roughly the same time of day. The third uses a single vehicle all day and lets you offer a morning window and an afternoon window, in exchange for adding the time it takes to get back to the depot and reload between shifts, which the table does not show. Choosing between the two comes down to the cost of the vehicle, and that is where the formula for calculating what a delivery actually costs comes in.
How to split stops between shifts
The order you follow matters more than the tool you use:
- Start by marking the customers with a real time restriction (shops, restaurants, offices) and assign them to the shift that fits.
- With everyone else, build zones and assign each whole zone to a shift. Splitting a zone between morning and afternoon means two vehicles end up driving down the same streets.
- Compare the workload across shifts and balance it out. Leave some slack in the last one, since that is the shift that absorbs the day's delays.
- Within each shift, order the route the way you always would: by zone, without zigzagging (we cover this in how to plan delivery routes without routing software).
One detail that helps: set a regular shift for each customer. The one who always receives their delivery in the morning stops asking what time you are coming, and you stop recalculating their window every week.
The cutoff time
Each shift needs a time after which no more orders come in. For example, up to 10am for the afternoon shift, and up to 6pm the previous day for the following morning's shift. You set the actual times based on your own operation; what matters is that they exist.
Whatever comes in after the cutoff moves to the next shift, and the customer needs to find out when they place the order, not when the driver fails to show up. If you take orders over WhatsApp, the confirmation message is the natural place to mention it. Sodapp's chatbot, for example, confirms address, quantity and delivery time when it takes the order.
When something falls through mid shift
A customer who was not home, or an urgent order, is going to come up, and with two shifts there is one more decision to make: does the morning's missed customer get a second attempt in the afternoon, or does it wait until the next day? It is worth writing the rule down. Without one, each driver decides on the spot, and two drivers decide differently.
Whatever gets rescheduled should go first in its new shift, since it already broke a promise once. And the last stretch of each shift, as covered in the post on routes, is worth leaving open for whatever comes in along the way.
Where a spreadsheet stops being enough
With a small number of stops, a spreadsheet with columns for shift, time window and driver, plus a filter by shift, is enough. The limit shows up at eleven in the morning: three orders come in, one falls through, and you have to redo two routes by hand and let two drivers know. That is the point where order stops holding itself together (the rest of the limits are covered on the Excel alternative for delivery page).
Software built for distributors takes care of the mechanical part. In delivery mode, Sodapp builds each driver's route and recalculates it when something changes, and automatic dispatch can be set up around order volume and your own schedule. How many drivers you can add depends on the plan, detailed on the pricing page. What no system decides for you is where you cut the shifts and which window you promise each customer: that comes from knowing your own delivery operation.
Has your delivery outgrown a single run? Message us on WhatsApp and we will work out how to split shifts and drivers with your own numbers.
Frequently asked questions
When does it make sense to move from one delivery shift to two?
When the day's route no longer fits into a driver's shift without stretching it, or when customers with a restricted time window always end up last on the route. If deliveries that arrive late keep repeating the next day, you are already running two shifts without having decided to, and it is worth making that explicit.
Should the same driver cover both shifts, or should they be different people?
It depends on how many hours of route the day adds up to. If the two shifts together go over a normal working day, it is better to split them between two people, even if they share the vehicle. If the total fits within one working day and you just want to offer a morning and an afternoon window, one person can handle both, as long as you build in time to reload between shifts.
How do I stop a late order from throwing off a shift's routes?
By setting a cutoff time per shift: after that time, the order moves to the next shift, and the customer finds out right when they place the order. Without a cutoff, the route keeps getting rebuilt until the last minute, and the driver heads out with a list that is different from the one loaded onto the van.
Questions about applying this to your delivery route?
Talk on WhatsApp