Buying a pool service route: what to check in the job data first
In short
Buying a pool service route is priced on a multiple of monthly billing, but the deal is decided by two numbers the seller rarely volunteers: drive time between stops, and customer churn. Ask for the raw job data before you discuss price.
Revenue per route hour = monthly billing / (on-site hours + drive hours per month)
Monthly churn = accounts lost in month / accounts at start of month
Accounts kept in 12mo = (1 - monthly churn) ^ 12
Payback (months) = multiple of monthly billing / gross margin %
- The multiple is a convention, not a valuation. Treat the multiple of monthly billing the seller quotes as an opening position. It says nothing about whether the route is good.
- Churn moves the price more than the multiple does. At 3% monthly churn a route keeps about 69% of accounts after a year. At 1% it keeps about 89%.
- Two routes billing the same can differ by hours of driving per day. Compute revenue per route hour, not revenue per account.
- Ask for 24 months of account-level billing with start and cancel dates. If the seller can only produce monthly totals, you cannot price the route, and you should say so.
- Transition churn is the biggest single risk on an owner-operator route. Put the seller's ride-along in the contract with a dated end.
Why the multiple is the least interesting number in the deal
Pool routes trade on a multiple of one month's recurring billing. It is a convention, like quoting commercial rent per square foot: useful shorthand, no information about the property.
Take a route billing $9,000 a month, offered at ten times, so $90,000. If your gross margin after chemicals, labor, fuel and vehicle is 35%, that is $3,150 a month, and payback is 90,000 / 3,150, about 29 months.
Now apply churn. If the route loses 3% of accounts a month and you replace none, by month twelve the margin is roughly $3,150 x 0.69 = $2,185, and that 29-month payback has stretched past three years. The multiple did not change. The asset did.
So the question is never "is ten times fair". It is: what is the monthly margin, how fast is the account base shrinking, and how many hours a week does it take to deliver.
If the seller cannot tell you how many accounts they lost last September, they are selling you a number, not a route.
Buying a pool service route starts with drive time, not revenue
Ask for one specific thing: the actual run order of every day for the last four full weeks, with addresses and visit timestamps. Not the customer list. The route as driven. From that, compute:
- stops completed per day, broken out by day of week
- total driven miles per day (paste the run order into any routing tool)
- minutes per stop including drive: (last timestamp - first timestamp) / stops
- how many miles across each day's route is at its widest
Then read it for these:
| What you find | What it means |
|---|---|
| One stop 18 miles off the day's cluster | About 40 minutes of drive. Often the highest-billing account, so you cannot just drop it |
| A day with fewer than six stops | The day is half-sold, or the geography is broken. Price it in |
| Two days that overlap geographically | The week can be rebuilt tighter. Real upside, and the only kind worth paying for |
| Timestamps clustered after 4pm | The route already runs long, before you add your own drive from home |
| No timestamps at all | You are buying an estimate of the work, not a measurement |
There is no public benchmark for stops per day in pool service worth quoting to you. Screened versus open, debris load, equipment age and chemical routine vary too much for an average to mean anything. Compare the seller's figures to your own route, which is the only relevant benchmark.
If you already run a route nearby, the standalone numbers matter less than the combined ones, because what you are buying is marginal drive time. A 30-account route that interleaves with yours can beat a 50-account route twenty miles the other way, and the seller will not price it that way. That gap is your margin.
Churn: the arithmetic to run before you agree a price
Ask for account-level start and cancel dates covering 24 months, compute monthly churn month by month, and read the pattern. Churn compounds, and the annual effect surprises people:
| Monthly churn | Accounts kept after 12 months |
|---|---|
| 0.5% | about 94% |
| 1% | about 89% |
| 2% | about 78% |
| 3% | about 69% |
| 5% | about 54% |
Three things to look for beyond the headline rate:
Seasonality. Cancellations cluster at the end of swim season, so a route sold in spring shows a flattering trailing twelve months: last autumn's losses are already papered over by spring signups. Compare the same months year over year, not the last twelve as a block.
Tenure. Count accounts under six months old. New accounts churn hardest, so ask how they were won. A discounted first three months means you inherit both the price increase and the cancellation that follows it.
Adds, not just losses. A flat account count with near-zero new signups for six months is a seller who stopped selling while preparing to exit. The churn is still there, just no longer offset, and it lands after closing.
The list to send the seller
Send this as a list. How quickly and completely they answer is itself the most informative part of the diligence.
| Ask for | What it tells you | Walk away if |
|---|---|---|
| 24 months of account-level billing, with start and cancel dates | Real churn, seasonality, revenue trend | Only monthly totals exist |
| 4 weeks of run order as driven, with addresses and timestamps | Drive time, stops per day, density | No addresses, or "it's in my head" |
| Access notes per account: gate codes, dogs, pad location | Whether you buy a route or the seller's memory | Nothing is written down |
| 12 months of chemical purchase invoices | Chemical cost per account-month | Invoices mixed with another business |
| Repair revenue separated from service billing | What is actually recurring | Repair sits inside the multiple |
| Return-visit and callback log, 12 months | Which accounts are problem pools | No record kept |
| Last price-change date per account | Pricing upside, and the churn it will trigger | Most accounts untouched for four years |
| Payment method per account, plus aged receivables | Collection risk, early churn signal | Much of the book off autopay at 60 days |
| A written non-compete and a dated ride-along | Transition churn protection | The seller will not sign or introduce you |
| HOA or property-management contracts, with renewal dates | Concentration risk | One contract is a big share and renews soon |
Two deserve emphasis. A seller buying chemicals cheaply through a relationship you will not inherit has a margin you cannot reproduce. And the callback log is where the underpriced accounts live: a pool that needed three return visits last summer will need them for you too.
The first 30 days decide whether you overpaid
Diligence tells you what to pay. The transition tells you what you bought.
- Service every account yourself, or alongside the seller, through the first full cycle. That is the real inspection. It finds the equipment pad nobody can reach and the pool that takes 50 minutes.
- Message every customer in the first week, by name, with your number and when you will be there. Transition churn is mostly people who heard nothing and assumed the worst.
- Do not raise prices in month one. Pick a window after one full season and raise in a batch, with notice.
- Log on-site minutes per account for the first month against what each one bills. Decide on the underpriced accounts individually. Repricing four accounts is a small decision; repricing the route is not.
Logging those minutes is the step people skip, because it means a start and end on every stop for a month. OkPilot timestamps and proofs each visit as the tech works, so the per-account time data is simply there at the end of the first cycle rather than reconstructed from memory.
If the route is sound but the geography is loose, that is a rebuild rather than a scheduling fix, and the two are different problems with different tools. Pest control routes trade on the same two numbers, for the same reasons.
See OkPilot running your own operation
A live walkthrough with a real person, configured to your jobs on the call. About ten minutes. Setup takes around 48 hours.