❝

❝ A Melbourne pest control company runs 2,400 recurring contracts with 14 technicians. Every Friday afternoon the operations coordinator builds the following week's runs in a spreadsheet, working from a service-due report, which takes her about 12 hours a week. Because she schedules by due date rather than by geography, the average gap between jobs is 37 minutes. The design below extracts scheduling constraints from free-text site notes, hands them to a routing solver, and returns the week for human approval. Average travel falls to 24 minutes, jobs per technician per day rise from 5.8 to 6.9, and two planned hires are no longer needed. The agent costs about AUD $290 a month.

Dianne builds next week on a Friday afternoon. She exports the service-due report out of ServiceM8, which tells her which of the 2,400 contracted sites fall due in the coming fortnight, and she starts putting names against days.

The report is sorted by due date. So Dianne schedules by due date. Tuesday's list for one technician reads Footscray, Box Hill, Footscray again, Dandenong. Every one of those jobs is legitimately due that week. The order they appear in is simply the order the system printed them.

The technician drives 148 kilometres to complete five and a half hours of work.

The business

A pest control company in Melbourne's inner west. Fourteen technicians, AUD $4.2M in revenue, split roughly 60/40 between commercial contracts (restaurants, aged care, food manufacturing, body corporates) and residential recurring plans. Around 2,400 active contracts, each with a service frequency: monthly, quarterly, six-monthly, annual.

The tool stack is ordinary and mostly adequate. ServiceM8 holds the jobs, the sites, the contract frequencies and the technician timesheets. Xero handles invoicing. Site-specific instructions live in the ServiceM8 notes field, which is where this story actually takes place.

What is actually going wrong

The obvious diagnosis is that nobody is planning routes. That diagnosis is wrong, and it is worth being precise about why, because it is the reason this problem has survived three attempts to fix it.

Dianne knows perfectly well that Footscray, Box Hill, Footscray is a bad Tuesday. She has known it for four years. She schedules that way anyway, because clustering the jobs geographically requires her to hold, simultaneously, about nine things per job that are not in any structured field:

  • The restaurant in Richmond can only be treated after 5pm, which is in the notes.

  • The aged care facility needs 48 hours of written notice, which is in the notes.

  • The termite job needs a technician holding a current timber pest licence, and four of the fourteen hold one.

  • The external perimeter treatment cannot be done in rain, and Melbourne has opinions about that.

  • The follow-up at the Preston bakery has to fall between 10 and 14 days after the initial treatment, and the initial treatment date is in a job record, not a calendar.

  • The body corporate at Docklands wants the same technician each visit, which somebody agreed to in an email in 2024.

None of that is in a field a computer can read. It is in prose, written by fourteen different people over six years, in a box labelled Notes. The scheduling problem was never a mathematics problem. Routing software has solved the mathematics since the 1960s and you can rent it for the price of a phone plan. The problem is that the constraints the mathematics needs have never been written down anywhere a solver could reach them.

So Dianne does it in her head, and because doing it in her head is expensive, she does the cheap version: sort by due date, fill the days, send it out.

What it costs

Average travel time between jobs is 37 minutes. Each technician completes an average of 5.8 jobs a day across six travel legs, which puts roughly 3.7 hours of every eight-hour day inside a vehicle.

The company had costed two additional technicians for the coming year, at approximately AUD $78,000 each once vehicle, licensing, insurance and training are loaded in. That was the plan for absorbing contract growth, because the existing fourteen were visibly at capacity.

Separately, 173 services last year were completed outside their contracted window. Most produced nothing worse than an apology. One produced the loss of a commercial contract worth $22,000 a year, when a food manufacturing client failed an audit partly because their most recent pest report was 11 days late.

And Dianne spends 12 hours a week building runs. She is an operations coordinator being paid to be a scheduling algorithm with a worse memory than an actual one.

The design is next. The design, the build guide, the running costs and the take-away are free to subscribers. Enter your email below and the rest of this Blueprint opens. New ones arrive every Tuesday and Friday.

Subscribe to keep reading

This content is free, but you must be subscribed to AdAI News to continue reading.

Already a subscriber?Sign in.Not now

Reply

Avatar

or to participate

Keep Reading

View more