How to build a cleaning route that stops eating your day
A cleaning route is not a map with pins on it — it is a sequence decision you make
every week: which jobs share a day, in what order, with how much slack. Get the
sequence right and the same crew cleans more homes without working longer. Get it
wrong and you pay for the drive instead of selling the clean. This guide gives you a
measurable route, not a theory of one.
If scheduling is still a scramble of texts and a spreadsheet, read
outgrown spreadsheets for scheduling
first; the routing advice here assumes you have a single list of jobs to work from.
Measure before you redesign
Route changes fail when they are built on a mental estimate of drive time. Take two
weeks and record, for every stop, four numbers:
- Arrival and departure clock time.
- Drive time from the previous stop.
- Job type and home size.
- Whether the visit finished on time.
Then compute the only metric that matters:
route density = billable minutes / (billable minutes + drive minutes + setup minutes)
That formula is a MaidPilot planning metric, not an industry standard. Its job is
to be a single number you can compare week to week. Most owners find density lower
than they expected, and the gap is almost always drive time plus the setup-and-put-
away tail nobody writes down.
Cluster by area, then by day
The unit of routing is the area-day. Start here:
- Draw three to five zones around your base, however they naturally form: a town,
a set of suburbs, a corridor. Keep the number small enough to remember. - Assign each recurring client to a zone. Zones should follow the roads you
actually take, not a perfect circle. - Give each zone a day or two. Weekly clients need a fixed day; biweekly clients
alternate between two days in the same zone. - Fill gaps with one-time work in the same zone. One-off deep cleans are the
flexible pieces that make the rest dense.
The whole point is to make "where is this job" a scheduling constraint rather than an
afterthought. A job in the wrong zone on the wrong day costs more than the discount
you would give to move it.
Order the day by geometry, not by preference
Once a zone-day exists, sequence the stops to minimise total drive. Two practical
rules do most of the work:
- No zigzags. Group stops so the path moves outward and back rather than crossing
itself. A crossing route almost always has a cheaper order. - Put the most time-sensitive job first. If one customer has a hard constraint,
anchor the day around it and order the rest relative to that anchor.
You do not need an optimiser to start. Sequence the day by hand, then compare total
drive time against last week's figure. Automated optimisation is worth buying only
after the zones and day pattern are stable, because optimisation on unstable
constraints just shuffles a bad plan.
A worked example of what shifting one job does
Consider a day with four stops in a suburb, and one job that sits 25 minutes away in
the opposite direction. All figures below are MaidPilot planning estimates built
from the rule that a quarter hour of drive costs that quarter hour at your loaded
labour rate.
| Scenario | Drive minutes | Billable minutes | Density | Effect |
|---|---|---|---|---|
| Outlier job left on the day | 110 | 300 | 0.73 | Wastes 45 minutes of the crew's day |
| Outlier moved to its own zone-day | 65 | 300 | 0.82 | Same homes, more usable day |
Same jobs, same customers, a clearly different day. The change is a scheduling
decision, not a price change or a new hire.
Protect the day with buffers and rules
Density collapses when a day has no slack. Three rules keep it:
- One buffer slot per crew-day. Reserved for a callback or an overrun. Unused
buffers become add-on work or admin time, which is still a win. - Time windows, not appointment times. "Between nine and eleven" leaves room to
run long without a cascade of apology calls. - A hard stop. The last job of the day starts no later than a stated time. Without
it, a dense route turns into an eighteen-hour day and the crew quits.
Access is the other silent killer. A gated community, a lockbox that does not open, a
customer who is not home when they said they would be — each of those is a route
delay dressed as a people problem. Record access notes per property so the next visit
is not a discovery.
What to automate, and in what order
Automation pays off in this order:
- One job list. Every job in one calendar, including one-time work.
- Recurring templates. The cadence generates itself instead of being re-typed.
- Property records. Access notes, pets, and preferences stay with the address.
- Crew assignment with visibility. Everyone sees the same day.
- Reminders and confirmations. Fewer surprises at the door.
Route optimisation is worth it after those five. Before them, an optimiser is
polishing a plan that will change by lunchtime because a customer texted.
That is the order MaidPilot is built in: property-level records, a recurring calendar
that generates visits, job-linked invoicing, and reminders that fire from the same
record. Read the scheduling software page for the
detail, or the plans for what is included where.
Review the route monthly, with two numbers
Two numbers are enough to keep a route honest:
- Density, from the formula above.
- On-time start rate — jobs started inside their promised window.
If density rises and on-time starts fall, the route is too tight. If both fall, the
zones are wrong. If both rise, the next decision is capacity: another crew, a higher
price, or a longer wait list. That is a nicer problem than the one you started with.