Congestion at delivery windows: which slots are worth offering
Measure road speeds at each delivery window, around each zone, for a few weeks, and you can see which slots run late and which you can promise with confidence.
To know which delivery windows are worth offering, measure how traffic moves around each delivery zone at the start of every window, every day, for a few weeks, and keep each reading. Windows where speeds stay close to free flow can be promised tightly; windows where the jam factor is high most days need longer slots, fewer stops per van, or a higher fee. The measure is cheap to collect and settles arguments that otherwise run on drivers' stories.
This article is for operations and customer teams that set delivery slots: grocery and meal delivery, home appliance and furniture delivery, laundry pickup, and field service with booked appointments. It explains what to measure, how to turn live readings into a picture of each window, a worked example in Lima, and the usual traps.
Why live speed, measured on a timetable, works
The Traffic Flow block measures the roads around each place at the moment the flow runs: the current speed, the speed when the roads are free, a jam factor from 0 (free) to 10 (standstill), the congestion as a percentage, a level in words, and the busiest road. It does not keep a history and it does not count cars. So the trick is to run it at the same moments every day and keep what it reports.
Run at 08:00, 12:00, 17:00 and 19:00 for four weeks, it gives about twenty weekday readings per window for each zone. That is enough to see a pattern: one zone is always free at noon and jammed at 17:00, another is slow all day, a third is fine except on Fridays.
Setting it up so the readings mean something
- One point per zone. Pick a point in each delivery zone that sits on the roads vans actually use, not in a park or on a motorway the vans never take.
- The right roads. The block can look at the roads next to the point (about 150 m), or every road within 500 m or 1 km. For a zone, 500 m or 1 km gives a fairer average.
- The start of each window. A reading at 17:00 describes the 17:00 to 19:00 slot better than one at 18:30, because vans are already loaded and leaving.
- Every reading kept. Each run adds a row per zone to a sheet or table, with the time, the speed, the free-flow speed and the jam factor.
A worked example: four zones in Lima
The figures here are made up. A home delivery company in Lima offers four two-hour windows across four zones and wants to know why its evening slot misses its promise more often than the others. It picks one point per zone and measures them at the start of each window for a month.
Laid out as a table, the month says this. Three zones average a jam factor of 2 to 3 at midday and 6 to 7 at the start of the evening window. The fourth zone, across a river crossing, sits near 8 in the evening on most weekdays and near 4 even at midday. The company keeps its evening window everywhere, but widens it to three hours in the fourth zone, caps the stops per van there, and offers a small discount for the midday slot. Late deliveries in that zone, measured afterwards, are the test of whether it worked.
| Zone | Midday jam factor | Evening jam factor | Decision |
|---|---|---|---|
| North | 2 | 6 | Keep two-hour slots |
| Centre | 3 | 7 | Keep, fewer stops at 17:00 |
| East | 2 | 6 | Keep two-hour slots |
| Across the river | 4 | 8 | Three-hour evening slot |
A made-up month of readings, averaged by window, for illustration only.
Traps to avoid
- Deciding from one bad day. A single accident can make one evening look terrible. Average over weeks and look at how many days were bad, not only the worst.
- Measuring the depot instead of the zone. The depot gate tells you how the first leg starts. The zones tell you how the stops go.
- Forgetting the season. School terms, holidays and weather change traffic. Keep collecting and compare like with like.
- Reading a low confidence figure as fact. Each reading has a confidence from 0 to 1. Late at night on a quiet road it can be low; give those readings less weight.
- Treating speed as volume. A fast road can still be busy. Speed tells you about travel time, which is what a delivery window needs.
The AI employee that collects and explains it
- Schedule: several times a day, at the start of each window, weekdays.
- My data: one point per delivery zone, with the zone's name.
- Traffic Flow: roads within 500 m of each point.
- A row per zone added to a sheet in the Google Sheets app, building the history run by run.
- A second flow on Mondays reads the week's rows with xMap LLM and writes a short note per zone, sent by Email.
What lands each Monday is a few lines per zone: which windows ran slow most days, which were fine, and any zone whose pattern changed from the week before. The daily runs send nothing; they only collect. Templates that start close to this: Road speeds outside my depots, every hour, Road speeds around the airport, every hour and Daily operations briefing for every hub.
Questions
How long should I collect before deciding?
Four weeks of weekday readings gives about twenty per window, enough to see a steady pattern. Keep collecting afterwards, because traffic changes with the seasons.
Can it tell me how many cars are on the road?
No. Traffic Flow gives speeds, the free-flow speed and a jam factor. Hourly car counts exist only for roads in the United Arab Emirates, through Regional data.
Why not measure every 15 minutes?
You can, but for setting delivery windows, a reading at the start of each window is what matters. More readings add rows without changing the decision.
Does it work for weekend slots?
Yes. Add weekend runs and keep them apart in the table, because weekend traffic follows a different pattern.