Commercial Pool Service Pricing Calculator: monthly contract price by venue

Price a commercial pool account per month from visits a week, testing and log time, chemical cost by volume and bather load, filter labour, extra bodies of water, overhead and margin.

The account

Seeds a starting cadence, body count, service time, paperwork allowance and season length. Every one of those boxes stays editable.

Every body of water on the site added together. The pool volume calculator works it out from the shape and depths.

Main pool, spa, kiddie pool, splash pad. Each one gets its own service time, its own test and its own log line.

Decimals allowed: 0.5 is every other week.

Every visit time box below is for ONE tech. This multiplies them.

Time on site per visit (per technician)

Skim, brush, vacuum, baskets, deck and equipment check on the main pool.

Spa, kiddie pool or splash pad. Applied to every body after the first.

How many full test sets YOUR visit performs on each body. This is a scope box, not a legal minimum: see the note below.

Chemical log entry, service ticket, findings and anything the venue wants signed.

How often does a public pool have to be tested?

That depends entirely on the code you work under, so this tool asks you instead of assuming. Two primary sources, both about the venue's daily duty rather than your visit count, are worth putting your cadence beside.

CDC, in Operating and Managing Public Pools, Hot Tubs and Splash Pads, says to "test pH and disinfectant levels at least twice per day (hourly when in heavy use)". Florida's code is written as a record requirement: daily records must reflect "manually conducted pool water tests for pH and disinfectant levels at least once every 24 hours", with "weekly testing for cyanuric acid when chlorinated isocyanurates are used" (Fla. Admin. Code Ann. R. 64E-9.004). Your own state or county may say something different again.

Either way the arithmetic matters to your contract: a twice-weekly visit covers about 8.7 of the roughly 30.4 days in a month, so the remaining days are either the venue's own staff, a trained operator you supply, or a gap somebody will eventually be asked about. The result block reports your day coverage so the conversation happens before the bid, not after the inspection.

Filter and backwash labour

One technician, on top of the scheduled visit.

Cartridge strip-down, DE grid clean or a full media change.

One technician. Spread across the months you invoice.

Drive time

Per technician, per scheduled visit, door to door.

Most contracts bill none of it. Either way it stays in your cost, which is the point.

Chemicals and consumables (at cost)

What YOUR chemicals cost for 10,000 gallons of water on one visit, at your prices. A cost line, never a dose.

Heavy bather load consumes sanitiser and raises the test count. It only moves the price through the box beside it.

Starts at zero on purpose: no source publishes a per-bather consumption factor. Measure your own busy-season usage and put it here.

Test reagents, brushes, bags, tabs, filter media the visit eats.

Applied to the per-visit consumables and to the annual items alike. Many commercial contracts bill chemicals at cost: leave it at zero if yours does.

Your rates

What you bill one technician-hour at, not what it costs you.

For venues you can only service before they open or after they close. Lifts the labour charge only.

A floor the monthly price never falls below. Leave empty for no minimum.

Season, opening and closing

12 for an indoor or year-round site. A shorter season concentrates the fixed lines into fewer invoices.

Once a year. Price the visit itself in the pool opening pricing calculator, then bring the number here.

Once a year, same idea.

Cover, DE media, annual water-quality report, anything the contract includes once a year.

Tax line, overhead and margin check

Sales tax, VAT or GST, if you add one. Use your own registered rate: the tool does not assume a jurisdiction.

Loaded cost, wage plus burden. Fill it in and the cost, overhead and margin lines appear. Leave it empty and they stay hidden.

Yard, insurance, office, software and admin, expressed against this account's direct cost so the arithmetic never chases its own tail.

Sets the price floor your cost stack requires. Leave at zero to skip the floor.

Monthly account price

Enter a charge-out rate to build the account.

Scheduled service
Backwash and filter work
Monthly account price

The same venue at every cadence, with the visit scope held constant

Visits / weekPer visitPer monthPer yearPaid h/yr

Export
How this is calculated

The monthly price is a build-up from time and volume you enter. Four things behave deliberately: every visit time box is per technician and the tech count multiplies it, drive time is tracked twice (all of it in your cost, only the share you nominate in your charge), backwash and filter deep cleans are single-technician lines that sit outside the visit, and the per-visit scope is held constant across cadences because a second visit a week is a second full visit, not a shorter top-up.

onSite      = (mainMin + (bodies−1)×extraMin
              + bodies×tests×testMin + logMin) ÷ 60      (per tech)
techHours   = onSite × techCount
driveTech   = driveHours × techCount
billedDrive = driveTech × driveBillPct
labour      = (techHours + billedDrive) × rate × (1 + afterHours)
uplift      = (bathers ÷ 100) × upliftPer100
chemicals   = chemPer10kGal × (volumeGal ÷ 10,000) × (1 + uplift)
consumables = (chemicals + supplies) × (1 + markup)
visit       = labour + consumables
visits/mo   = visitsPerWeek × 52 ÷ 12
backwash/mo = backwashes × backwashMin ÷ 60 × rate × (1 + afterHours)
filter/mo   = cleans/yr × hours ÷ billingMonths × rate × (1 + afterHours)
season/mo   = (opening + closing) ÷ billingMonths        (when spread)
extras/mo   = annualItems × (1 + markup) ÷ billingMonths
buildUp     = visit × visits/mo + backwash/mo + filter/mo
              + season/mo + extras/mo
monthly     = max(buildUp, monthlyMinimum)
annual      = monthly × billingMonths (+ opening + closing if separate)
cost/mo     = paidHours/mo × costRate + consumables(cost) × visits/mo
              + annualItems ÷ billingMonths
overhead    = cost/mo × overheadPct
margin      = (monthly − cost/mo − overhead) ÷ monthly
floor       = (cost/mo + overhead) ÷ (1 − targetMargin)

The worked example on this page

An HOA community site with a 50,000 gallon pool and a 10,000 gallon spa (60,000 gallons, two bodies of water), serviced twice a week by one technician: 45 minutes on the main body, 15 on the spa, one test set per body at 4 minutes, 6 minutes of log time, an unbilled half-hour round trip, two backwashes a month at 12 minutes, two 1.5 hour filter deep cleans a year, chemicals at $6 per 10,000 gallons per visit, $3 of other consumables and $85 per tech-hour. That is 74 minutes on site, a $143.83 visit, and a monthly build-up of $1,246.56 of scheduled service + $34.00 backwash + $21.25 amortised filter cleans = $1,301.81 a month, $15,622 a year, $150.21 per visit and $216.97 per 10,000 gallons per month. Change the rate and every figure moves with it, because the rate is the only thing in that sentence the tool did not get from you.

Where the pre-filled numbers come from, and where they do not

No market-rate presets anywhere. Every currency field starts empty. The only pre-filled numbers are venue scoping conventions (starting cadence, body count, service and log minutes, backwashes a month, bathers a day, season length) plus 4 minutes per test set and 12 minutes per backwash, and every one of them sits in an editable box. They encode a shape rather than a rate: a resort with three bodies of water on a five-day cadence is a bigger account than one apartment pool. Time your own route once and overwrite them.

The bather load does nothing until you tell it to. Heavy bather load really does consume sanitiser faster, but no primary source publishes a per-bather consumption factor, so the uplift box starts at zero and the bather count changes nothing in an untouched form. Measure your own chemical usage across a quiet week and a busy one, express the difference as a percentage per 100 bathers a day, and the tool will carry it. Until then it stays visible as a scope question rather than an invented number.

Testing frequency is a code question and this page does not answer it. The test-sets box is your scope, not a legal minimum. CDC's Operating and Managing Public Pools, Hot Tubs and Splash Pads guidance says to "test pH and disinfectant levels at least twice per day (hourly when in heavy use)". Florida writes the same idea as a records rule: daily records must reflect "manually conducted pool water tests for pH and disinfectant levels at least once every 24 hours", plus "weekly testing for cyanuric acid when chlorinated isocyanurates are used" (Fla. Admin. Code Ann. R. 64E-9.004). Those are duties on the venue across every day it operates, not a contractor's visit count, and your own state or county may set something different. The tool therefore asserts nothing and reports one arithmetic fact instead: how many days a month your cadence puts somebody on site, against the roughly 30.4 days a month holds.

Frequency multiplies hours, it does not discount them. Every body of water is skimmed, tested and logged on every visit, so the visit's hours barely move as the cadence tightens. In the table, per-visit price still falls at higher frequency, but only because the fixed monthly lines (backwash, amortised filter cleans, amortised seasonal work) spread across more visits. If a higher-frequency visit genuinely covers less ground, cut the main-body time yourself and read the table again.

The after-hours premium is a charge, not a cost. It lifts the labour charge, including the backwash and filter lines, and nothing else. If you pay a shift differential to service a hotel at 6am, raise your cost per tech-hour to match, or the margin line will report a premium you handed straight to the crew as if you kept it.

A short season concentrates the fixed lines. Two filter deep cleans spread across twelve invoices are $21.25 a month at $85 an hour; the same two cleans across a four-month municipal season are $63.75. Set the season honestly, because that is also what turns the monthly figure into an annual contract value.

Overhead and margin are all or nothing. Without a cost per tech-hour the labour half of the account cost is unknown, and a margin computed off chemicals alone would flatter every contract, so the whole block stays hidden until you fill that box in. Overhead is taken against direct cost rather than revenue so the arithmetic never chases its own tail, and the target margin turns the stack into a price floor you can hold in the negotiation.

Everything runs in your browser. No account, no email gate, nothing stored or sent.

What this prices

A commercial pool account is not a bigger route stop. It is a contract over a venue: an HOA community pool and its spa, a hotel with a pool, a spa and a kiddie pool, an apartment complex on a six-month season, a fitness club that can only be serviced before it opens, a municipal site that runs four months a year and swallows a hundred and fifty bathers a day. This calculator builds one visit out of the minutes it really takes on every body of water, adds the chemical cost your volume and your bather load produce, prices the backwash and filter work that lands between visits, amortises the opening and closing, and rolls all of it into a monthly account price, an annual contract value, a price per scheduled visit and the figure a property manager actually compares bids on: price per 10,000 gallons per month.

If the account turns out to be one house rather than one venue, the pool service price calculator is the right tool. It prices a single body of water on a fixed route and sanity-checks the answer against per-pool bands. Different buyer, different inputs, different unit of sale.

Testing frequency is a code question, and this page does not answer it

The test-sets box on this page is your scope, not a legal minimum, because how often a public pool must be tested is set by your state or county and the answers differ. Two primary sources are worth putting your cadence beside.

CDC, in Operating and Managing Public Pools, Hot Tubs and Splash Pads, tells operators to “test pH and disinfectant levels at least twice per day (hourly when in heavy use)”, alongside a minimum free chlorine level of 1 ppm in a pool and 3 ppm (or bromine 4 ppm) in a hot tub, and a pH held between 7.0 and 7.8. That split matters on a multi-body venue: the spa on the same site is held to a different residual than the pool it sits beside, so it is a second set of readings and a second line in the log, not a rounding of the first. Florida writes the same idea as a records requirement: daily records must reflect “manually conducted pool water tests for pH and disinfectant levels at least once every 24 hours”, with “weekly testing for cyanuric acid when chlorinated isocyanurates are used” (Fla. Admin. Code Ann. R. 64E-9.004).

Read both carefully and the commercial pricing problem appears. Those are duties on the venue across every day it operates. A twice-weekly service contract puts somebody on site about 8.7 of the roughly 30.4 days in a month, so the remaining twenty-two days are the venue’s own staff, a trained operator you supply, or a gap. The tool reports your day coverage next to the price so that conversation happens during the bid rather than after an inspection. It asserts no requirement of its own, and where a figure would be jurisdiction-specific it gives you an editable box instead.

Every body of water is a second account

The line most operators underprice is the spa. It holds a tenth of the water and takes a full second service: its own brush and vacuum, its own test set, its own line in the log, and a chemistry that moves faster than the main pool’s because the volume is small and the temperature is high. So the tool asks for a body count and prices each additional body separately, then multiplies the testing by the same count rather than by the site.

The volume box wants every body added together, because that is what the chemical line scales on. If you have not measured the site, the pool volume calculator works it out from the shape and the depths, one body at a time.

Chemicals: volume you can measure, bather load you must

Chemical cost enters as your own number per 10,000 gallons per visit, multiplied by the site’s total volume. That part is arithmetic. Bather load is the part nobody can hand you: a hotel pool at eighty swimmers a day genuinely burns sanitiser faster than a condo pool at thirty, but no regulator, trade body or published survey reports a per-bather consumption factor, and under this site’s cite-or-omit rule that means the tool ships without one. The uplift box starts at zero, so an untouched form lets the bather count change nothing.

Fill it from your own records. Compare what chemicals cost you across a quiet week and a peak week, divide the difference by the bather count, express it as a percentage per 100 bathers a day, and the tool carries it into every visit and into the cost check. A measured number you trust beats an industry average you cannot source.

Frequency multiplies hours here, it does not discount them

This is the assumption most operators bring over from residential route work and it is the expensive one. On a route, a tighter cadence means a shorter stop. On a commercial account it does not: every body of water is skimmed, tested and logged on every visit whatever the frequency, so a second visit a week is a second full visit.

The cadence table holds the visit scope constant from one to seven visits a week and shows the annual paid hours beside the money, so you can see what you are agreeing to before you agree to it. Per-visit price still falls at higher frequency, but only because the fixed monthly lines spread across more visits.

The lines that quietly sink commercial pool accounts

Backwash and filter cleans. They happen between visits, they never appear on a per-visit price, and they are real single-technician hours. Two 1.5 hour deep cleans a year look like nothing until a four-month municipal season concentrates them into four invoices instead of twelve.

The log. The chemical record is a document somebody reads, and writing it is time you will work whether or not you price it. It gets its own box for that reason, and the commercial pool daily log sheet is the blank workbook those minutes get spent on.

Drive time. Every drive hour lands in your cost, because you pay the technician for it either way, and only the share you nominate lands in the charge. That is what makes the return per paid tech-hour honest.

The after-hours premium. It lifts the labour charge, backwash and filter lines included, and nothing else, because the tool cannot know what a 6am shift costs you. If you pay a differential, raise the cost per tech-hour to match, and the page says so on screen rather than leaving you to notice.

Overhead, margin, and the price your costs require

Most pricing calculators stop at a number. This one runs it against a floor. Enter your loaded cost per tech-hour, your overhead as a share of direct cost and the operating margin you want, and the tool reports both the price your rate built and the price your cost stack requires. If the first is under the second, it says so with the shortfall in money, which is the sentence you need in front of you before an HOA board asks for a discount.

The block is all or nothing: without a cost per tech-hour the labour half of the account cost is unknown, and a margin computed off chemicals alone would flatter every contract. If you have not yet set a defensible number for either rate box, the service hourly rate calculator and the labor burden rate calculator are where those figures come from.

From a monthly number to a signed contract

A monthly figure is not an account until someone signs for it, and the number is rarely what wins it. An HOA board, an apartment operator or a hotel engineer is buying a permit, an inspector and a logbook off their own desk, which is the order how to get commercial pool contracts runs the conversation in, venue by venue, from the operator certificate and the insurance format to the answer for a Sunday equipment failure. Move the scope, the cadence and the price into the pool service agreement template, where the term, the season, the chemical responsibility and the cancellation terms get written down. If you are still sizing the venue rather than pricing it, the commercial pool turnover and bather load calculator is the other half of this entity: it checks whether the circulation you are being asked to maintain can carry the bather load in the first place. And when the season ends, the pool opening pricing calculator prices the visit whose number you typed into the seasonal box above.

Everything runs in your browser: no account, no email gate, nothing stored or sent. A pricing worksheet, not a binding quote, and not pool operation advice. Testing frequency, record keeping, operator certification and chemical handling are set by your health code and the product label, never by this page.

Frequently asked questions

How is this different from the pool service price calculator?
Buyer, inputs and unit of sale. The residential tool prices one pool on a route: a monthly cost stack for a single body of water, sanity-checked against per-pool tier bands. This one prices a venue contract: several bodies of water, a cadence the customer sets, a test and a log entry on every body on every visit, chemical consumption that follows volume and bather load, backwash and filter labour between visits, a season that may be shorter than the year, and an annual contract value. Neither substitutes for the other.
How often does a commercial pool have to be tested?
That is a jurisdiction question and this tool deliberately does not answer it. Two primary sources are worth putting your cadence beside. CDC, in Operating and Managing Public Pools, Hot Tubs and Splash Pads, says to "test pH and disinfectant levels at least twice per day (hourly when in heavy use)". Florida writes it as a records rule: daily records must reflect "manually conducted pool water tests for pH and disinfectant levels at least once every 24 hours", plus "weekly testing for cyanuric acid when chlorinated isocyanurates are used" (Fla. Admin. Code Ann. R. 64E-9.004). Both are duties on the venue across every day it operates, not a contractor visit count, and your own state or county may say something else again. The test-sets box is therefore your scope, and the tool reports how many days a month your cadence actually covers.
Why does a commercial visit not get cheaper as the frequency goes up?
Because the scope of the visit is set by the venue, not by the calendar. Every body of water is skimmed, tested and written into the log on every visit, so the hours barely move between a twice-weekly and a five-times-weekly account. In the cadence table the per-visit price still falls at higher frequency, but only because the fixed monthly lines, backwash, amortised filter cleans and amortised seasonal work, spread over more visits. If a higher-frequency visit genuinely covers less ground, cut the main-body time yourself and read the table again.
How should bather load affect the price?
Through your own measured chemical usage, which is why the uplift box starts at zero. A busy hotel pool really does burn sanitiser faster than a quiet condo pool, but no regulator, trade body or published survey reports a per-bather consumption factor, and this site does not invent one. Record what chemicals cost you across a quiet week and a peak week, express the difference as a percentage per 100 bathers a day, and the tool carries it into every visit. Until you do, the bather count sits on the page as a scope question rather than a fabricated multiplier.
Does this calculator suggest an average commercial pool service price?
No, and it will not. Every currency field starts empty. The only pre-filled numbers are venue scoping conventions, a starting cadence, body count, service and log minutes, backwashes a month, bathers a day and a season length, plus four minutes per test set and twelve minutes per backwash, and all of them sit in editable boxes. They encode a shape, that a resort with three bodies of water is a bigger account than one apartment pool, never a rate.
Should the opening and closing be inside the monthly price?
Either way works, and the tool prices both. Spread across the invoices gives the property manager one predictable number all season, which is usually what an HOA board wants. Billed separately keeps the monthly figure comparable with a competitor who quotes opening and closing on their own, and it protects you if the contract ends mid-season. Pick the option that matches how you will actually invoice, because it changes the annual contract value, not just the presentation.
Can I price a site measured in litres?
Yes. The volume box carries a gallons and litres toggle and the tool converts to US gallons internally, so the chemical line and the price per 10,000 gallons per month stay comparable however the venue was measured. Everything else on the page is counts, minutes and money, which are unit-neutral.

Sources

  1. Operating and Managing Public Pools, Hot Tubs and Splash Pads: "Test pH and disinfectant levels at least twice per day (hourly when in heavy use)", with a minimum free chlorine level of 1 ppm in a pool and 3 ppm (or bromine 4 ppm) in a hot tub, and pH held at 7.0 to 7.8. U.S. Centers for Disease Control and Prevention. Retrieved .
  2. Fla. Admin. Code Ann. R. 64E-9.004, Operational Requirements: daily records must reflect "manually conducted pool water tests for pH and disinfectant levels at least once every 24 hours" and "weekly testing for cyanuric acid when chlorinated isocyanurates are used". Cornell Law School Legal Information Institute, reproducing the Florida Administrative Code. Retrieved .

Get early access

Fieldwynn is the field-first app we are building for small crews — simple in the truck, powerful in the back office. It is not out yet; join the early-access list and be first when it launches for your trade.