Quick answer: Plumbing work is usually priced as a service-call fee plus either flat-rate task prices or labor hours and materials, with planned installs such as water heaters priced as a project that includes the unit, fittings, labor, permit and haul-away.
Pricing methods for plumbing jobs
| Method | When it fits |
|---|---|
| Flat-rate task pricing | Repeatable jobs such as a faucet swap, toilet install or drain clearing, priced per task from your price book. |
| Time and materials | Leak hunts and repairs where the hidden condition is unknown until walls or floors are opened. |
| Project pricing | Water heaters, repipes and bathroom rough-ins, where the unit, materials, labor and permit are known up front. |
You can use more than one method in the same business. What matters is that the customer can see which one applies to their estimate.
What drives the price of a plumbing job
- Access to the pipes: open basement, finished wall or slab.
- Pipe material and age of the existing system.
- Fixtures supplied by you or by the customer.
- Permit requirements for water heaters and repipes.
- Emergency or after-hours timing.
What to check before you quote
- Where is the shut-off and how old is the plumbing?
- Is the customer supplying any fixtures?
- Will walls, floors or ceilings need to be opened?
- Is this urgent, or can it be scheduled?
Write the answers into the scope of work. When the price later depends on one of them, the customer can see the assumption you priced on.
Worked example: water heater replacement
This is the example job in our free plumbing estimate template. The quantities and prices are illustrations to show the structure, not price recommendations; use your own costs and rates.
| Line item | Qty | Unit | Example amount |
|---|---|---|---|
| Drain and remove existing water heater | 1 | job | $180 |
| 50-gallon gas water heater | 1 | each | $1,250 |
| Expansion tank | 1 | each | $140 |
| Gas connector, valves and fittings | 1 | job | $160 |
| Venting adjustment | 1 | job | $150 |
| Installation labor | 4 | hour | $460 |
| Haul-away and disposal | 1 | job | $75 |
| Permit | 1 | each | $120 |
| Example subtotal | $2,535 |
Notice that each part of the price has its own line. A customer comparing your estimate with a cheaper one can see what the other bid may have left out, and you can discuss one line instead of defending the whole total.
Build your markup on real overhead
Whatever the method, a price has to cover four things: direct costs (materials and parts), labor at a loaded rate that includes payroll costs, overhead such as vehicles, insurance, software and the office, and profit. A simple check:
- Add up your yearly overhead and divide it by the hours you can bill in a year. That is the overhead each billable hour has to carry.
- Add it to your loaded labor cost per hour to get your break-even hourly cost.
- Add your profit margin on top, and use the result for both hourly and flat-rate prices.
Margin and markup are not the same: a 50% markup on cost is a 33% margin on the price. Decide which one you are using and apply it consistently.
Send the price, then follow up
Most plumbing estimates are not lost on price alone. They are lost when the customer goes quiet and nobody checks in. Agree on a decision date when you send the estimate and follow up once on that date. Our follow-up email templates give you the wording.
Want a ready-made layout? Download the free plumbing estimate template in Excel, Word or PDF, or see how SprigDeal handles a plumbing estimate from the first quote to the signed approval.
Frequently asked questions
Should plumbers use flat-rate or hourly pricing?
Many use both: flat-rate prices for repeatable tasks so customers know the cost up front, and time and materials for repairs with unknowns. Say which one applies on each estimate.
How do I handle unknowns in a plumbing quote?
State your assumptions in the scope and add an exclusion, such as concealed piping beyond the visible leak, which will be quoted separately if found.