What you need before optimizing anything
- Correct, geocoded addresses. If many service requests arrive with a wrong or incomplete address, any optimization is working with bad data.
- Estimated duration by job type. If you do not know whether a job takes 40 minutes or 3 hours, you cannot plan a day.
- Each technician’s skills. Not everyone can do everything. A perfect route with the wrong technician is a repeat visit.
- Knowing where everyone is. So you can reassign on the fly when an emergency comes in.
With these four things, even manual planning improves a lot. Without them, no algorithm will fix it.
The four assignment criteria, in order
- Skills. Can they do it? If not, nothing else matters.
- Committed deadline. Jobs with an SLA come before jobs without one.
- Proximity. Among those who meet the first two, the closest one.
- Workload. Balance among whoever is left.
The classic mistake is applying them backwards: assigning by distance and finding out at eleven that the technician is not qualified for that equipment.
Zone before you optimize
Giving each technician a stable territory often pays off more than optimizing routes every day. And not because of the miles:
- They know the sites. That cuts time on the job more than time on the road.
- The customer knows them. It shows in satisfaction and in what customers tell them.
- Travel gets shorter on its own, because the jobs are close together.
Zoning has one risk: dependency. If the technician for a territory leaves, the knowledge leaves with them. You offset it with partial rotation, for example one day a month in a colleague’s territory. And with the history recorded in the system, not in their head.
Always leave gaps
A schedule at 100% breaks with the first emergency. What works:
- Keep part of the day free, around 20 to 25%, for whatever comes in.
- Put planned work in the morning, when delays can still be absorbed.
- Leave flexible work for the afternoon: the jobs you can move without calling anyone.
Letting the customer know
Tell the customer the visit window: “your technician will arrive between 10 and 12.” Then tell them again when the technician is on the way. That heads off almost every “what time are you coming?” call. It costs little and needs no algorithm.
Sequencing the day across several technicians
Once tomorrow’s work has a technician, what is left is putting it in order. Three rules:
- Propose before you apply. The plan is reviewed as a proposal and only applied once someone signs off on it.
- Respect each customer’s hours. The shortest route is useless if it reaches a store that opens at ten.
- Read what does not fit, and why. “It would arrive after closing time” tells you what to move and whom to call.
Sequencing is not assigning: you put in order the work that already has a technician. Who goes where is decided first, with the criteria above.
When automatic optimization is worth it
When you have many technicians, many jobs per technician per day, and the four conditions above sorted out. As a rough guide, from about 15 technicians with 8 jobs a day each. Below that, the dispatcher’s judgment usually beats the algorithm.
Even then, have a person review and approve the proposal. They know what the algorithm does not: the customer who does not open before ten, or the van that is in the shop.
What to measure
- Jobs per technician per day.
- Travel time compared with time on the job.
- Repeat visits due to missing skills or parts.
- Visits that arrive outside the promised window.
Start with addresses and job durations. It is boring, and it is what makes everything else work. The button comes later.
Last updated: