How to Build Pool Service Management Software
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
| Scope | Timeline | Cost |
|---|---|---|
| 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
| Tool | Price | Best for |
|---|---|---|
| Skimmer | $75–$125/mo | Single-location operators, straightforward chlorine pools |
| Pool Office Manager | $75–$150/mo | Operators who want stronger chemical tracking out of the box |
| Jobber | $65-$149/mo | Generalist field service, not pool-specific |
| ServiceFusion | $150–$300/mo | Larger operations needing dispatch + billing in one tool |
| Custom build | $80K–$140K one-time | 500+ 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.
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.
Related articles

How to Build Dance Studio Management Software (2026)
MINDBODY costs $599/month and still lacks martial arts belt tracking. Jackrabbit Dance covers scheduling but cannot handle multi-location family billing. If you run 20+ studio locations, building custom software pays for itself in under two years. Here is what the build actually involves.

How to Build Dog Daycare and Boarding Management Software
Dog daycare software lives or dies on two things: vaccination enforcement and daily report cards. Here's what makes it genuinely hard to build, what off-the-shelf tools miss, and what it costs.

How to Build Personal Training Management Software (2026)
TrueCoach and Trainerize charge per client, per month. A corporate wellness company with 1,000 clients pays $3,500-$5,000 per month on software alone, before API integrations. Here is exactly how to build your own platform, what it costs, and the retention mechanic most developers skip.
