How to Build Pool Service Management Software

App DevelopmentJan 26, 2026 · 9 min read

Building pool service management software costs $80,000-$140,000 for an MVP and takes 10-13 weeks. RaftLabs builds route-based field service platforms with chemical dosing calculators, technician mobile apps, and recurring billing for pool service operators. Custom makes sense for companies with 500+ accounts or franchises needing branded customer apps. The tech stack is React Native, React, Node.js, and PostgreSQL.

Key Takeaways

  • The chemical dosing calculator is the highest-value feature. It takes current readings plus pool volume and computes the exact dose for each chemical, removing the guesswork that causes green water complaints.
  • Saltwater pools, biguanide pools, and standard chlorine pools require completely different dosing logic. The pool's chemical system must be a field-level flag that gates which formulas run. A biguanide pool must never receive a chlorine recommendation.
  • MVP = customer records with pool specs, recurring scheduling, chemical log with dosing calculator, technician mobile app, service reports, and invoicing. Route optimization and customer portal come in the full build.
  • Running costs are $500–$2,000/month for a production platform. Off-the-shelf tools like Skimmer run $75–$125/month. Custom makes financial sense at franchise scale or 500+ accounts.
  • The technician app must work offline. Pool equipment areas and backyards frequently have no signal. Log readings locally with timestamps, sync on reconnect.

A pool service company with 200 recurring accounts and 4 technicians runs 8-10 service visits per tech per day. Each visit requires 5 chemical readings, a dosing calculation based on pool volume, and a record of what was added. When a technician doses by memory instead of calculation, a 20,000-gallon pool gets the wrong amount of acid. The customer calls two days later with green water.

According to IBISWorld's 2024 Pool and Spa Maintenance industry report, there are over 96,000 pool service businesses in the US generating $6.4 billion in annual revenue. Most of them run on paper routes, spreadsheets, and memory-based dosing. That gap is exactly where purpose-built software creates a competitive edge.

The green water is not a training problem. It is a software problem. The right dosing for a 20,000-gallon pool at pH 7.9 targeting 7.4 requires a specific acid quantity. That quantity changes with every pool because pool volumes differ. Without a calculator, the technician guesses. Software removes the guess.

This guide covers what building pool service management software actually involves: the modules, the architecture, the hardest engineering problems, and when a custom build beats off-the-shelf tools like Skimmer or Pool Office Manager.

What pool service management software does

Pool service software is not generic field service software. Field service tools manage one-off dispatch: a technician goes out, fixes a problem, closes the job. Pool service works on a subscription model. The same technician visits the same 30–50 pools every week on a fixed route. Every visit produces 5 chemical readings and a dosing calculation.

The core systems a pool service platform needs:

  • Customer accounts with pool specifications (volume in gallons, pool type, equipment list)

  • Recurring service schedule generation (weekly, bi-weekly, monthly routes)

  • Chemical reading log per visit (pH, free chlorine, total alkalinity, calcium hardness, cyanuric acid)

  • Automated dosing calculator (current reading plus pool volume equals recommended dose per chemical)

  • Technician mobile app for reading entry and photo capture

  • Service report sent to customer after each visit

  • Repair ticket creation from a service visit

  • Chemical inventory management

  • Subscription billing and auto-pay

The dosing calculator is what separates a purpose-built pool platform from a generic scheduling tool. It is the feature that cuts customer complaints and speeds up each visit.

MVP vs. full platform

The MVP covers everything a pool service company needs to operate: customer records with pool specs, recurring scheduling, a chemical log with the dosing calculator, the technician mobile app, service reports, and invoicing. That scope runs $80,000–$140,000 over 10–13 weeks.

The full platform adds features that pay off at scale. Route optimization groups stops by geography and sequences them for minimum drive time, which is measurable savings for a technician doing 10 stops per day. Chemical inventory tracks what is on each truck against what was used per service, which prevents stockouts on long routes. Equipment warranty tracking logs installation dates and flags upcoming expirations before a customer's pump fails mid-season. The customer portal gives homeowners direct access to their service history. Automated renewal proposals go out 60 days before an annual contract expires.

Full platform runs $160,000–$260,000 over 17–24 weeks.

Most operators should start with the MVP. The dosing calculator and mobile app deliver immediate value. Route optimization and the customer portal are meaningful features, but they are not what prevent green water complaints or missed visits.

Core architecture

Customer record. Stores name, address, gate code, billing information, and a pool_specs JSONB field. The pool specs field holds: volume in gallons, pool type (in-ground, above-ground, spa), surface material (plaster, vinyl, fiberglass, pebble), equipment list (pump make and model, filter type, heater, salt chlorinator, automation system), and chemical system (chlorine, saltwater, biguanide, bromine).

Service route. Stores the assigned technician, date, and an ordered list of stop IDs. Routes repeat weekly by default. Any change to a route (adding a customer, removing a stop, swapping a technician) updates the route record and recalculates stop order if route optimization is enabled.

Stop record. Stores the customer, scheduled date, actual arrival date, chemical_readings JSONB (pH, free chlorine, total chlorine, total alkalinity, calcium hardness, CYA, salt level), chemicals_added JSONB (product name, amount in ounces or pounds), observations, and photos. The stop record is the permanent operational log for each service visit.

Dosing calculator. A server-side function that takes current_readings, pool_volume, and target_ranges and returns recommended_doses per chemical. Target ranges live in a configuration table: pH 7.4-7.6, free chlorine 2-4 ppm, total alkalinity 80-120 ppm, calcium hardness 200-400 ppm, CYA 30-80 ppm. Keeping target ranges in a table means the pool service company can adjust targets without a code change.

Repair ticket. Linked to a stop record. Describes the issue, assigned technician, status (open, parts ordered, scheduled, closed), parts used, and resolution notes.

The hardest technical challenge

Chemical dosing across different pool types requires distinct logic per chemical system. Getting this wrong causes equipment damage or dangerous reactions.

A saltwater pool uses a salt chlorine generator. Adding liquid chlorine directly is unnecessary and can spike chlorine levels. A biguanide pool (using Baquacil or a similar biguanide-based system) cannot receive chlorine at all. Chlorine introduced to a biguanide pool causes a violent chemical reaction that destroys the water chemistry and can damage equipment. A trichlor tablet feeder raises CYA over time and requires the dosing calculation to account for cumulative stabilizer buildup.

The dosing calculator must know the pool's chemical system and produce correct recommendations only for that system.

Build the chemical system as a pool-level field with four values: chlorine, saltwater, biguanide, bromine. This field gates which dosing formulas run.

For saltwater pools: when free chlorine is low, recommend increasing the chlorine generator's output percentage or adding salt to bring salt level to 2,700–3,400 ppm. Never recommend adding liquid chlorine or granular shock directly unless the pool spec explicitly notes supplemental chlorination.

For biguanide pools: disable all chlorine dose recommendations entirely. If a technician attempts to log chlorine as a chemical added on a biguanide pool, surface a blocking warning: "This pool uses a biguanide system. Adding chlorine will damage the water chemistry." Do not allow the stop record to save with chlorine logged against a biguanide pool.

For standard chlorine pools: the dose calculation for pH adjustment uses muriatic acid or dry acid. The formula for muriatic acid is:

acid_ounces = (current_pH - target_pH) × correction_factor × pool_volume_gallons / 10,000

The correction factor differs per chemical product. Muriatic acid and dry acid have different correction factors for the same pH change. Store correction factors in the chemical product table, not in code. When a new chemical product is added, the pool service company enters its correction factor and all dosing calculations update automatically.

This architecture (pool-level chemical system field, per-product correction factors in the database, server-side validation blocking invalid chemical combinations) is what separates a safe dosing calculator from one that causes expensive service calls.

Build costs and timeline

ScopeTimelineCost
MVP (scheduling, chemical log with dosing calculator, technician app, invoicing)10–13 weeks$80,000–$140,000
Full platform (route optimization, customer portal, inventory, warranty tracking)17–24 weeks$160,000–$260,000
Running costs (hosting, APIs, SMS)Monthly$500–$2,000

The team is four to five engineers: one backend lead, two frontend engineers (one web, one React Native), one QA engineer, and a product manager part-time. The 10-week estimate holds when scope is clean and client decisions are fast.

Build vs. buy

ToolPriceBest for
Skimmer$75–$125/moSingle-location operators, straightforward chlorine pools
Pool Office Manager$75–$150/moOperators who want stronger chemical tracking out of the box
Jobber$65-$149/moGeneralist field service, not pool-specific
ServiceFusion$150–$300/moLarger operations needing dispatch + billing in one tool
Custom build$80K–$140K one-time500+ accounts, franchise networks, custom chemical system support

Skimmer and Pool Office Manager are well-built tools. They cover 90% of pool service companies. Build custom when:

  • You run 500+ accounts and the monthly SaaS fee becomes significant against a one-time build cost.

  • You operate a franchise where each location needs a branded customer-facing app and portal under your brand. None of the off-the-shelf tools offer genuine white-label customer experiences.

  • You have a significant share of saltwater or biguanide pools and the generic dosing logic in standard tools is producing incorrect recommendations.

The break-even for a franchise paying $100/month across 30 locations is roughly 4 years against a $140,000 custom build, ignoring the franchise software fee revenue the custom platform can generate. Pool & Spa News industry data shows recurring-service models are the fastest-growing segment of the US pool service market.

Tech stack

Backend: Node.js with PostgreSQL. JSONB columns store chemical readings and chemicals added per stop, which keeps the schema flexible when a new reading type needs to be added without a migration. PostgreSQL handles the relational structure for customers, routes, stops, and repair tickets.

Web app: React. Office dashboard for scheduling, route management, customer records, billing, and reporting.

Technician mobile app: React Native. Chemical reading entry, photo capture, GPS check-in at each stop. The app must work offline. Pool equipment areas and backyards frequently have no signal. Log all readings locally with timestamps, sync on reconnect, resolve conflicts with last-write-wins plus a server audit trail.

Customer notifications: Twilio. SMS after each service visit with a link to the service report. On-the-way notifications when the technician is 30 minutes out.

Recurring billing: Stripe. Subscription billing for weekly and monthly service, one-time line items for repair work, failed payment handling with retry and card update link.

Photo storage: AWS S3. Service photos attached to stop records. Before-and-after photos for green pool treatments attached to the customer notification.

Dosing calculator: Server-side Node.js function. Not client-side. Chemical formulas and correction factors live in the database. The mobile app sends current readings and pool volume to the API, which returns recommended doses. This keeps the calculation logic centralized and auditable.


"The biggest opportunity in pool service software isn't route scheduling. It's chemistry. Operators who get dosing automation right reduce chemical cost by 15-20% and nearly eliminate green pool callbacks." -- John Martinson, Founder, Pool & Spa News (quoted in Pool & Spa News, 2023)

RaftLabs builds route-based field service platforms with mobile apps, chemical logic engines, and automated billing. We've shipped platforms that handle recurring service across 500+ accounts with offline mobile sync and real-time route updates. One call to scope your build.

Talk to us about your build


Related reading:

Frequently asked questions

An MVP with customer records, recurring scheduling, chemical log with dosing calculator, technician app, service reports, and invoicing costs $80,000–$140,000 and takes 10–13 weeks. A full platform adding route optimization, customer portal, chemical inventory, and equipment warranty tracking costs $160,000–$260,000 over 17–24 weeks.
Skimmer costs $75–$125/month and covers routes, chemical logs, and billing. Pool Office Manager runs $75–$150/month with stronger chemical tracking. Jobber is a general field service tool at $65–$149/month that is not pool-specific. ServiceFusion runs $150–$300/month. These tools cover most use cases. Build custom when you have 500+ accounts or a franchise needing white-label software.
Pool service is subscription-based recurring work. The same technician visits the same 30–50 pools every week on the same route. Every visit involves 5 chemical readings and a dosing calculation based on pool volume. General field service software handles dispatch for one-off jobs. Pool service software must manage recurring weekly routes and enforce chemical dosing logic per pool type.
The calculator takes the current reading for each parameter, the pool volume in gallons, and the target range, then computes the recommended dose using the chemical product's correction factor. For pH down using muriatic acid: (current pH minus target pH) times correction factor times pool volume divided by 10,000. Correction factors are stored in the chemical product table so formula updates require no code changes.
Build custom when you run 500+ accounts and off-the-shelf monthly fees become significant relative to a one-time build cost, when you operate a franchise that needs branded customer-facing apps and portals, or when you need custom chemical system support for a fleet of saltwater or biguanide pools that standard tools handle poorly.

Ask an AI

Get an instant summary of this post from your preferred AI assistant.