Industry guide · Field Service Management

The Unbilled Chemicals and Skipped Stops Quietly Eating Your Pool Route Margin

The short answer

For an established multi-truck pool company, expect a focused first release that stops the chemical and skip leaks to run $50,000 to $120,000 and ship in 10 to 16 weeks, and a full operations platform with an AI phone agent, dispatch, and follow-up to run $150,000 to $350,000 phased over 6 to 12 months, in Digital Heroes delivery experience. The recovered chemical revenue and caught stops usually pay back a real share of the first release before it is even finished.

The unbilled chemicals and skipped stops quietly eating your route margin

It is a Friday in July and Marcus, who runs nine trucks for a residential pool company, is doing what he does every week: reconciling what his techs actually did against what his customers will actually pay. One tech dumped four gallons of muriatic acid and a bag of cal-hypo into a green pool that morning, logged the readings in Skimmer, and moved on. The chemicals went in. The charge never went out. On a flat monthly plan that includes one gallon of acid a visit, that pool just cost him real money nobody will ever invoice.

Two routes over, another tech hit three locked gates before noon, fell behind, and marked three stops "unable to service." Those customers still get billed the full monthly rate on the first. By Monday two have called the office, one has left a one-star review about a green pool, and the third has quietly signed up with the guy down the street. Marcus spends Friday afternoon on the same forensic accounting every week: cross-checking Skimmer completes against chemical logs against the billing export, trying to find the money before it walks.

None of this is a Skimmer failure. Skimmer is a good route and chemical log app. It records what happened. What it does not do is reconcile that against what should have been billed, chase the skip before the customer notices, or answer the phone at nine at night when the next green-pool emergency calls. That gap, between the work performed and the revenue captured, is where a route-based pool business bleeds margin. It is measured in hours of Marcus's week and in invoices that never exist.

Chemicals go in the pool and never onto the invoice

The biggest leak in a residential route is chemical overage nobody remembers to bill. A tech shocks a cloudy pool, doses extra acid to pull a high LSI down, drops in a stabilizer bag, and logs every reading like a good tech should. But logging a reading is not creating a charge. In Skimmer, ServiceTitan, or Housecall Pro, the flat plan bills the same thirty days whether the truck delivered two dollars of chlorine or forty dollars of chemicals. Nobody compares each dosage against the allowance baked into that customer's plan.

Off-the-shelf tools cannot close this because they treat the chemical log and the invoice as two separate worlds. A custom build wires them together. A reconciliation engine reads every logged dosage as it lands, checks it against the included allowance on that account, and turns anything over the line into a draft billable item at your rate. Marcus does not hunt for it. He gets a weekly batch: 17 accounts over allowance, $1,140 in draftable charges, approve or adjust in one screen. The chemicals were already going in. Now they show up on the statement.

Skipped stops that no one catches, credits, or makes up

A skip is a landmine in both directions. Bill for a stop the truck never made and you earn a chargeback and a cancellation. Miss a real skip and the pool turns green, the callback costs a second truck roll, and the review tanks. Skimmer shows you a stop that was not completed. It does not text the customer, decide whether to credit them, schedule the make-up, or tell you that one tech skips the same three pools every Friday because the route is too tight.

A custom layer treats the skip as an event that fires a workflow, not a red dot on a screen. The moment a stop is marked unable to service, the system texts the homeowner with the reason and a reschedule, applies your credit rule automatically if the pool is not serviced inside the window you set, and logs the pattern. Over a season Marcus can see that Route 4 loses ninety minutes every Friday to a badly ordered stop list, which is a routing fix, not a tech problem. The skips stop being invisible, and so do their causes.

The phone rings at nine at night and goes to voicemail

A green pool before a party is an emergency, and emergencies do not wait for office hours. When a homeowner calls at nine on a Saturday and gets voicemail, they call the next company on the list. Skimmer and ServiceTitan do not answer phones, and a front desk cannot be staffed around the clock on a route company's margins.

An AI voice agent can. It picks up on the first ring, asks whether it is residential or commercial, gets the address and pool type, understands "my water is cloudy and green before a party tomorrow," checks your open route capacity for the area, books the visit, creates the customer record, and texts a confirmation. By Monday the job is already on a route with notes attached. The call that used to become a competitor's customer becomes a booked stop. That is the outcome the owner is buying, not the model behind it.

Estimates for filter cleans and equipment that sit three days and die

The high-margin work in pools is not the weekly service. It is the green-to-clean, the filter rebuild, the variable-speed pump, the salt cell replacement. Those quotes go out and then vanish. A $650 green-to-clean and a $2,400 equipment upgrade sit in a folder because the office got busy and nobody followed up, and a quote that sits three days is usually a lost job.

A custom follow-up agent reads the quote and the customer's history and works it the way a good salesperson would, without a person having to remember. It sends a specific, plain follow-up by text and email, references the actual scope, answers the common questions, and escalates the ones showing buying signals for a human to call. Marcus sees his estimate close rate as a number he can move, and the equipment revenue that used to evaporate starts landing on the schedule.

The five-star review you earned and never asked for

A tech clears a green pool to sparkling in one visit and the customer is thrilled for exactly a day, then forgets. The review that would have won the next three neighbors never gets written, because nobody asked at the moment the customer was happiest. Manually chasing reviews is the first thing that falls off a busy office's plate.

Tie the ask to the work. When a job closes as complete in the field, especially a big win like a green-to-clean or an equipment install, the system sends the review request within the hour, to the right customer, on the channel they answer. It routes an unhappy reply to the office instead of to Google. The reviews you already earned start showing up where the next customer is searching, and the owner did nothing extra to make it happen.

The route built by gut feel, and the years of data nobody mines

Most routes are drawn by whoever has been here longest, and they calcify. Trucks cross their own paths, a new account gets dropped onto the nearest day instead of the nearest route, and windshield time eats a stop or two a day per truck. Meanwhile your CRM (Customer Relationship Management) sits on years of jobs, quotes, chemical trends, and cancellations nobody has ever queried. Skimmer and ServiceTitan store all of it. They were not built to tell you what it means.

A custom platform does two things with that. It builds routes against real drive time and stop duration so a tech does not zigzag across a zip code, and it re-sequences when accounts are added or dropped. Then it mines the history you already paid to collect: which accounts are trending toward a green pool on their chemical readings, which customers cancel in month four, which equipment is aging into a replacement quote. The data was always there. Now it points to the next dollar before the customer calls, or leaves.

What this costs and how long it takes

Honest numbers, framed as Digital Heroes delivery experience across more than 2,000 projects. A focused first release, the pieces that stop the bleeding fastest, chemical reconciliation, skip detection and credit rules, and same-day invoicing wired to your existing route app, typically runs $50,000 to $120,000 and ships in 10 to 16 weeks. A full pool operations platform, adding the AI phone agent, smarter dispatch, estimate follow-up, review automation, and CRM data mining, generally runs $150,000 to $350,000 phased over 6 to 12 months, delivered in usable pieces rather than one big-bang launch.

What drives price up in this niche: the number of chemical and billing rules you run (per-plan allowances, commercial versus residential, HOA contracts with their own terms), the depth of integration into Skimmer or ServiceTitan versus a clean export, whether the phone agent must handle commercial accounts and property managers, and how many years of messy history have to be cleaned before they can be mined. A single-plan residential company sits at the low end. A mixed residential-and-commercial operation with HOA contracts sits higher.

When Skimmer is enough, and when it is time to build

Be honest about this. If you run one or two trucks, bill a clean flat rate with no chemical overage, and your phone gets answered during the day, Skimmer or Jobber or Housecall Pro is genuinely enough. Do not spend six figures to save an hour a week. Off-the-shelf earns its keep for a long time, and most companies should stay there.

The signals that it is time to build custom or layer AI on top are specific. You run multiple crews and can feel margin leaking but cannot point to where. You hand-reconcile chemical logs against billing every week. You are losing after-hours calls and you know it. You have years of data in a CRM that has never once told you anything. You are a private-equity-backed rollup trying to run one playbook across five acquired brands on four different systems. At that scale the flat monthly fee is not the cost. The margin the tool cannot see is the cost, and that is what a custom build is for.

How to choose a developer for pool service software

Vet for these, in this order. First, do they understand route-based field operations, not just apps: ask them to whiteboard how a chemical overage becomes a billable line item, and if they cannot, they will learn on your dime. Second, do they integrate with what you already run: you should not rip out Skimmer or ServiceTitan on day one, so a serious partner reads and writes to your current system while the new layer proves itself. Third, do they ship in phases that pay for themselves, so the first release stops a real leak in ten to sixteen weeks instead of disappearing into a year-long build with nothing to show. Fourth, do you own the code and the data outright: the years of chemical readings and customer history are your asset, and the software that reads them should be yours, not rented back to you.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. PTC identifies the leading causes of failed first visits as parts unavailability (the single most-cited complaint, named by 51% of field service executives), technicians lacking the required equipment or skills, and insufficient time allocated to the job - making parts logistics and skills-based dispatch the highest-leverage fixes. Source: PTC (2023) →
  2. Mordor Intelligence sizes the field service management market at USD 6.26 billion in 2026, forecasting USD 9.87 billion by 2031 at a 9.54% CAGR, confirming sustained double-digit-adjacent demand for FSM software. Source: Mordor Intelligence (2026) →
  3. Across more than 5,400 IT projects studied by McKinsey and the University of Oxford BT Centre, large IT projects ran on average 45% over budget and 7% over schedule while delivering 56% less value than predicted. Source: McKinsey & Company / University of Oxford (BT Centre for Major Programme Management) (2012) →
  4. In a McKinsey global survey of 1,259 respondents, only about 20% said their organizations excel at decision making, and just 37% said their organizations' decisions were both high quality and high in velocity. Source: McKinsey & Company (2019) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

How much does custom pool service software cost for a multi-truck company like ours?
A focused first release that stops the biggest leaks, chemical reconciliation, skip detection, and same-day invoicing, typically runs $50,000 to $120,000 in our delivery experience. A full operations platform with an AI phone agent, dispatch, and follow-up automation runs $150,000 to $350,000 phased over several months. For a company running multiple trucks, the recovered chemical revenue and caught skips usually cover a meaningful share of that before the build is done.
We already run Skimmer. Why would we build something custom on top of it?
Skimmer is a strong route and chemical log app, but it records what happened rather than reconciling it against what should have been billed. A custom layer reads your Skimmer dosage logs and completes, turns chemical overage into draft charges, flags uncredited skips, and chases after-hours calls and dead estimates. You keep Skimmer for what it does well and add the revenue capture it was never built to do.
Can AI really answer our phones after hours and book jobs without a person?
Yes, and this is one of the most proven pieces. An AI voice agent answers on the first ring, asks whether it is residential or commercial, captures the address and pool type, checks your open route capacity, books the visit, and texts a confirmation. Anything it cannot handle, like a complex commercial account, it routes to a human, so you capture the emergency green-pool call instead of losing it to the next company on the list.
Will we lose our years of customer and chemical history if we move to custom software?
No. That history is an asset, and a proper build migrates it in full: customers, service plans, chemical readings, quotes, and job records. Most companies keep their existing CRM running during the transition and cut over in stages rather than all at once. The old data becomes the fuel for spotting pools trending green and customers likely to cancel.
How long before a first version is actually running on our routes?
A focused first release generally ships in 10 to 16 weeks in our experience, delivered in working pieces rather than one launch at the end. The chemical billing and skip reconciliation usually come first because they stop money leaking fastest. A full platform phases in over 6 to 12 months, with each part usable as it lands.
What outcomes should we expect in the first few months?
Concrete ones: chemical overage that used to go unbilled showing up as approved charges, skipped stops getting caught and credited or rescheduled before customers complain, and after-hours calls turning into booked jobs. You should be able to point to recovered revenue and to hours your office is no longer spending reconciling logs against billing by hand. The goal is captured margin you can measure, not a dashboard you admire.
Who owns the code and the data if we build this?
You should own both outright. The chemical readings, customer records, and route history are your business asset, and the software that reads and bills against them should belong to you, not be rented back to you month over month. Confirm in writing that you get the full source code and a clean copy of your data. A developer who resists this is a warning sign.
Does this replace ServiceTitan or Jobber, or sit on top of it?
It can do either, and on top is usually the right first move. Most pool companies keep ServiceTitan, Jobber, or Skimmer for scheduling and field logging and add a custom layer that handles the revenue capture and automation those tools miss. Over time, if the off-the-shelf tool becomes the thing holding you back, the custom platform can take over more, but you do not have to rip anything out to start.
How does the software actually catch unbilled chemicals and skipped stops?
For chemicals, a reconciliation engine reads each dosage your tech logs, compares it against the allowance included in that account's plan, and turns anything over the line into a draft billable item you approve in a batch. For skips, the moment a stop is marked unable to service, the system texts the customer, applies your credit rule if it is not made up in time, and logs the pattern so you can see which routes and days lose stops. Both run automatically instead of depending on someone catching it on a Friday.
Can a custom field service app sync with QuickBooks and the payment processor we already use?
Yes, and it should be scoped as a named workstream rather than a finishing task. QuickBooks Online, Xero, Stripe, and Square all offer mature APIs, and a two-way invoice and payment sync typically adds $8,000 to $20,000 to a build depending on how items, taxes, and customers map. The decision that matters most is source of truth: agree which system owns customer records and pricing before development starts, or you will reconcile duplicates forever.
What are the biggest mistakes first-time software buyers make?
Choosing the lowest bid, paying more than 30-40% upfront instead of on milestones, skipping a written specification, and having no maintenance plan for after launch. The most expensive of the four in Digital Heroes rescue projects is the missing spec: without written acceptance criteria, done becomes an argument instead of a checklist, and every disagreement resolves in the vendor's favor. Fix those four and you have avoided most of the ways these projects fail.
Who owns the code when an agency builds my software?
You should, completely, through a written intellectual property assignment that transfers everything on final payment; without that clause, copyright stays with whoever wrote the code by default. Insist that the repository lives in your own GitHub organization from day one and that hosting, domains, and third-party accounts are registered to you. Also check for licenses to the agency's proprietary frameworks buried in the contract, because those can make switching vendors practically impossible even when you own your own code.
What features should the first version of a custom field service app include?
Version one needs the daily loop and nothing else: job creation, a drag-and-drop dispatch board, a technician mobile app that works offline, photo and signature capture, and invoicing that reaches your accounting system. Customer portals, route optimization, inventory, and reporting dashboards belong in phase two. The test for every feature is whether a dispatcher or technician touches it every day; if not, cut it.
We run everything on spreadsheets and Airtable. How do we know it's time for custom software?
The reliable signals are re-typing the same data into multiple tools, one employee acting as human middleware between systems, and errors appearing in handoffs between teams. Hard limits force the issue too: Airtable's Team plan caps at 50,000 records per base, and Business costs $45 per seat per month, so a 20-person team pays about $10,800 a year for a tool it has already outgrown. When workarounds consume more hours than the tools save, the spreadsheet era is over.
What questions should I ask a development agency on the first call?
Ask who exactly will build it, what happens when scope changes mid-project, what their maintenance terms are after launch, and what they will need from you every week. Then ask them to describe a project that went wrong and what they changed afterward; teams that have shipped at real volume have war stories, and teams claiming a perfect record are hiding something. The scope-change answer matters most: a disciplined shop describes a written change-order process, not a vague promise to be flexible.
What does it cost per year to maintain custom field service software?
Budget 15 to 20 percent of the original build cost per year, so $15,000 to $20,000 on a $100,000 platform. That covers hosting, security patches, integration API changes, a monthly block of small improvements, and the iOS and Android updates Apple and Google ship on their own schedule. Skipping it is not a savings; the technician app needs attention every OS cycle or it eventually stops opening on new phones.
Should I hire a freelancer or an agency to build my field service software?
An agency in almost every case, because a field service build spans a mobile app, a dispatch web console, a backend, offline sync, and accounting integrations, which is four or five specialties one person rarely covers. A freelancer is the right choice for a single integration or a well-scoped add-on under $15,000. The solo-built field service systems Digital Heroes inherits fail most often at handover, when the freelancer has moved on and nobody can safely modify the sync engine.
Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?