How to Price a Pool Renovation in 2026 (Margins Built In)
The hard part of pricing a pool renovation is not the materials. The hard part is building a bid that protects 35 to 45 percent gross margin even after the scope shifts mid-job, the plaster crew adds a change order, and the homeowner finds extra rebar that needs cutting out. Most renovation bids leak margin in three or four places nobody costed for. This is the breakdown I use on Tampa Bay jobs, with real numbers, the five renovation categories, the scope-creep clauses that hold up, and the line-item structure that keeps your cost columns off the customer copy.
What's in this article
The 5 categories of pool renovation work
Almost every pool renovation in Florida breaks down into five categories. You can price all of them on one estimate, two of them, or just one. The category split matters because each one has different labor-to-materials ratios and different scope-creep risks. If you bid them as one lump sum you lose track of where the margin is.
- Interior surface — plaster, Pebble Tec, Pebble Sheen, Diamond Brite, quartz, glass bead. Includes acid wash or chip-out as prep.
- Waterline tile and accent tile — replacement of the 6-inch waterline band, plus any spillway or step tile.
- Coping — travertine, brick, poured concrete, precast, or the cantilever deck edge.
- Decking — re-coat, re-pour, or pavers over the existing deck. Often quoted as a separate scope but tied to the same permit.
- Equipment / plumbing — pump, filter, salt cell, heater, lights, automation, and any plumbing replumb. Usually triggered by an old pump dying or a homeowner wanting variable speed for the electric bill.
A "full renovation" usually means all five. A "resurface" usually means category 1 only, sometimes with the waterline tile added because it's a logical pairing. A "swap the equipment" call is just category 5. Price them as separate scopes inside one bid so the customer can see what each piece costs and you can drop or add scope cleanly mid-bid.
Labor and materials math by category
Numbers below are Tampa Bay 2026 typical, on a standard 16-by-32 residential pool with about 600 square feet of interior surface and 110 linear feet of waterline. Your market may run 10 to 20 percent higher in major metro areas (DFW, South Florida, coastal CA), 10 to 15 percent lower in smaller cities. Use these as a sanity check against your own catalog.
1. Interior surface (resurface)
Plaster crews in Florida charge roughly $4.50 to $6.50 per square foot for standard white plaster, $6.50 to $9 for Diamond Brite or quartz, $9 to $13 for Pebble Sheen, and $12 to $16 for premium Pebble Tec or glass bead finishes. That price includes chip-out and prep at most established sub crews, but verify on the bid.
For a 600 sq ft pool with Pebble Sheen at $10/sf, the sub bills you $6,000. Add bond coat at about $1.20/sf if the chip-out exposes shell ($720). Add startup chemistry (acid + brushing + balancing) at $250 to $400 depending on water source. Total direct cost: about $7,000 to $7,200.
Customer price at a 40 percent gross margin: $7,200 / (1 - 0.40) = $12,000. Most contractors mistakenly mark this up as $7,200 × 1.40 = $10,080, which is a 28.6 percent margin, not 40. The math difference matters and it shows up at the end of the year.
2. Waterline tile
Standard 6x6 glass or porcelain waterline tile runs $7 to $14 per linear foot installed (material plus labor) from a tile sub. Premium hand-cut glass mosaics push $18 to $30 per linear foot. A standard 110 LF residential perimeter at $11/LF = $1,210 sub cost.
Add waterproofing membrane (a small but real cost — about $100 to $150 of material), plus a couple of hours of crew time to clean grout and stage the bond beam. Direct cost: about $1,400. Customer price at 40 percent margin: $2,333.
3. Coping
Travertine coping runs $14 to $22 per linear foot installed in Tampa Bay (material + setting + grouting + sealing). Brick coping is slightly cheaper at $11 to $18. Cantilever poured concrete edge (no separate coping stones) is $9 to $14. Bullnose precast is the budget option at $8 to $12.
Travertine on the same 110 LF pool at $17/LF = $1,870 sub. Add demolition of the existing coping (often $4 to $7 per LF if it's bonded to the deck), so $660 more. Direct cost: about $2,530. Customer price at 40 percent margin: $4,217.
4. Decking
The widest range in pool renovation. Options stack roughly like this for the typical 600 to 900 sq ft Florida deck:
- Acrylic re-coat (Kool Deck, Cool Crete, Sundek): $3.50 to $6 per sq ft. Direct cost on 800 sq ft = $2,800 to $4,800.
- Pavers over existing deck: $9 to $14 per sq ft installed. Direct cost on 800 sq ft = $7,200 to $11,200.
- Travertine deck: $11 to $18 per sq ft installed. Direct cost on 800 sq ft = $8,800 to $14,400.
- Tear out and re-pour broom-finish concrete: $7 to $11 per sq ft. Direct cost on 800 sq ft = $5,600 to $8,800.
Apply your 40 percent margin to the direct cost. Decking is the line item most likely to attract scope creep (homeowner sees the pavers, decides they want to extend coverage to the side yard, suddenly your 800 sq ft job is 1,150 sq ft).
5. Equipment / plumbing
Variable-speed pump install runs about $1,400 to $2,200 in equipment cost plus 3 to 5 hours of labor. Customer price: $2,800 to $3,800. Cartridge filter swap: $700 to $1,200 in equipment, customer price $1,400 to $2,000. Salt system add: $1,100 to $1,500 in equipment, customer price $2,000 to $2,800. Full equipment pad rebuild (pump, filter, salt, automation, heater) ranges $7,000 to $14,000 in equipment cost depending on what's being included; customer price $12,000 to $24,000 with a healthy margin.
Replumb of suction and return lines is the wildcard. If everything is above-deck PVC it's a half-day at $400 to $800. If buried under the deck or under pavers and needs concrete cutting, it can jump to $2,500 to $5,000 in labor and patch costs. Always flag this in writing as conditional on what is found during demo, otherwise you'll eat the difference.
How to handle scope creep mid-job
Three things will happen during nearly every full renovation:
- Demo will expose damage that wasn't visible from the surface. Cracked rebar, shell damage, root intrusion under the deck, plumbing leaks.
- The homeowner will add something. They see the open pool shell and decide they want a sun shelf, an LED color light upgrade, a deeper deep-end, two extra returns for a future spa addition.
- A sub will hit something that requires more material than bid. Coping crew runs out at LF 108 of 110 and needs another box of travertine because they had to re-cut three pieces. Plaster crew finds you need more bond coat than expected.
The fix is the same for all three: a written change order, signed before work continues, with a clear line item and a price. Verbal mid-job agreements are how contractors lose money. The customer remembers the original quote, you remember the conversation in the driveway. The check at closeout is for the original quote.
A practical scope-creep clause to include on every pool renovation contract:
Any work outside the scope defined in this estimate, including damage discovered during demolition, customer-requested additions, or material substitutions, will be priced and approved in writing by both parties before work continues. Crew may pause work until the change order is signed.
That last sentence is what makes it real. Without the pause clause, the crew keeps working and the change order becomes a request for forgiveness instead of permission. With it, you have leverage to stop the meter until the customer signs.
When to charge for site visits, dewatering, extra demo
The unbilled extras kill more margin than overruns. A few rules that have held up:
- First site visit: Free if it's within 30 minutes drive. Flat $75 to $125 fee for longer drives. Most renovation customers expect a free first visit, but the second and third "can you come by for one quick thing" visits should be billed.
- Dewatering: A pool that needs to be drained for a renovation requires 30,000 to 50,000 gallons removed. If you do this with the customer's submersible setup, no charge. If you bring a pump truck or a portable dewatering rig, charge $250 to $450 separate line item. Don't bury it in the resurface price.
- Extra demo: If the existing surface has multiple layers of plaster (two or three coats from prior renovations), the chip-out crew will hit unexpected hours. Build in a clause that says "demo priced for single-coat removal; additional layers billed at $1.25/sf."
- Disposal: A full renovation generates significant debris. Travertine and plaster chip-out alone fills a 10-yard roll-off. Either bill the disposal as a line item ($300 to $500 in Tampa Bay) or build it into your overhead. Don't pretend it's free.
- Equipment damage during demo: Make the customer responsible for damage to landscape, pool deck, and decorative items inside the work zone unless their estimate explicitly includes restoration. Photograph the area before demo starts.
Sample estimate line-item structure
A clean pool renovation estimate has 8 to 14 line items. Too few and the customer can't see what they're paying for; too many and they get lost. Here's the structure I recommend for a full renovation:
| Section | Line items |
|---|---|
| Interior surface | Chip-out, bond coat, plaster (with finish name), startup chemistry |
| Tile | Waterline tile (with tile selection name and unit price), spillway or accent tile if applicable |
| Coping | Coping demo, coping material (named), coping install and grout |
| Decking | Deck demo (if applicable), deck material, deck install |
| Equipment | Each piece named separately with brand/model: pump, filter, salt, heater, automation |
| Plumbing | Replumb (with the conditional-pricing note), new returns, suction line |
| Permits and pass-through | County permit fee, engineering if needed |
| Project management | Optional separate line if your pricing model breaks it out |
Each line item should show quantity, unit, unit price, and total. The interior surface line should say "Pebble Sheen, French Gray, 600 sq ft @ $20/sf = $12,000" so the customer can verify the finish name later. The tile line should say "ANS Glass Mosaic, GT-7 series, 110 LF @ $21/LF = $2,310" so there's no ambiguity about which tile they signed for.
What should NOT be on the customer copy: your supplier cost, your sub bid amount, your margin percentage, your "internal notes" column. Those columns belong to you. The customer sees the price they're paying. Everything else is internal data that drives your profitability dashboard.
Tax and permit pass-through math
Permit fees and sales tax need to be treated cleanly. Two things go wrong here:
Sales tax
In Florida, contractors are treated as the consumer of materials they install. You pay sales tax to the supplier when you buy the plaster, tile, coping, and equipment. You do not charge sales tax to the customer on the labor or the installed finished work. Your material cost already includes the tax. If you also add a "sales tax" line to the customer invoice, you're double-billing.
Other states do it differently. California treats contractors as retailers, so you charge sales tax on materials on the invoice. Texas distinguishes between lump-sum contracts (no separate tax) and separated contracts (tax on materials). Check your state's department of revenue. Don't assume Florida rules apply elsewhere.
Permit fees
Pool renovation permits in Hillsborough, Pinellas, and Pasco counties run $150 to $450 depending on scope. Engineering letters for major structural work add $300 to $800. The right way to pass these through is:
- List the permit as a separate line item at actual cost. Mark it clearly as "Permit pass-through, no markup."
- If the county changes the fee mid-project, adjust the invoice with the new amount and attach the receipt.
- Don't bury the permit in another line. Customers who later compare bids will assume you marked it up.
The reason for transparency on permits: when customers are comparing your $48,000 renovation bid against the other guy's $42,000 bid, the $400 permit fee is not what they're picking on. Hiding it makes you look like you're padding. Showing it as pass-through with no markup makes you look honest. Both are true; only one wins the bid.
Why your cost columns belong on your side of the app
The single most common pricing mistake I see in pool renovation bids: the estimate template has a "Cost" column right next to the "Price" column, and when the contractor sends it to the customer, both columns are visible. The customer sees that the $2,800 variable-speed pump line item shows a $1,400 cost, and they immediately ask why they're paying double for a pump.
This conversation doesn't go well. The customer doesn't understand burdened labor, warranty risk, the time spent driving to three suppliers, the 5 percent failure rate on new pumps, or the fact that your overhead has to come from somewhere. They see "marked up 100 percent" and decide you're overcharging.
The fix is structural. Your estimating tool should show two views of every estimate:
- Internal view — line item, quantity, unit cost, sub cost, your price, gross margin per line. Visible to you and your PMs.
- Customer view — line item, quantity, customer price only. Sent via email or shareable link to the homeowner.
This is exactly how Workhand's Team plan ($89/month) handles pool renovation estimates. The "Internal · Not on customer copy" section lives on the same screen as the customer-visible line items, but the cost and margin columns never appear on what the customer sees. Same workflow whether you're sending the PDF or the link-based estimate the customer signs from their phone. Same logic that protects margin on a $54,200 resurface as protects it on a $180,000 full renovation. For more on the bigger picture of profit per job math, including burden multipliers and overhead allocation, see the companion piece.
Build pool renovation estimates with margin protection built in
14-day free trial on Team. Cost columns stay internal. Customer sees a clean line-item estimate they can sign from their phone.
Download WorkhandA worked example: a $54,200 full renovation
Putting it all together. A typical Tampa Bay 16x32 pool with 600 sq ft interior, 110 LF perimeter, 800 sq ft deck, getting a full renovation: Pebble Sheen, glass mosaic waterline, travertine coping, travertine deck, new variable-speed pump and salt cell.
| Line | Cost (internal) | Customer price |
|---|---|---|
| Chip-out and bond coat | $720 | $1,400 |
| Pebble Sheen, 600 sq ft | $6,000 | $10,800 |
| Startup chemistry | $320 | $580 |
| Waterline tile, 110 LF | $1,400 | $2,540 |
| Coping demo | $660 | $1,200 |
| Travertine coping, 110 LF | $1,870 | $3,350 |
| Deck demo, 800 sq ft | $1,800 | $3,200 |
| Travertine deck, 800 sq ft | $10,400 | $18,600 |
| VS pump (Pentair IntelliFlo3) | $1,650 | $3,200 |
| Salt cell system | $1,250 | $2,400 |
| Plumbing replumb | $600 | $1,200 |
| Disposal | $400 | $400 |
| Permit pass-through | $350 | $350 |
| Subtotal | $27,420 | $49,220 |
| Project management (10%) | — | $4,922 |
| Total to customer | — | $54,142 |
Gross margin before overhead and burdened labor: about 49 percent on the marked-up items, blended down to about 42 percent after pass-through items (permit and disposal) and PM markup are included. That's the structural margin. Real net margin after burdened labor, equipment allocation, and overhead allocation lands closer to 18 to 22 percent. Which is what a healthy pool renovation looks like in 2026.
Closing thought
Pool renovation pricing is not magic. It's category breakdown, line-item discipline, scope-creep clauses that bite, and keeping cost columns off the customer copy. If you bid every renovation as a single lump sum because "that's how my dad did it", you are leaking margin in places you cannot see. Build the bid the way the work actually breaks down, protect every line with a margin target, and price the extras as extras instead of swallowing them.
The contractors I know who run healthy 18 to 22 percent net on renovations are the ones who treat the bid as a structured document, not a one-liner. The ones running 6 to 10 percent net are the ones writing "Full Renovation: $48,000" on a napkin and hoping it works out.