To price a plumbing job, multiply your true hourly cost by the hours the job will take, add materials with a markup, and build a profit margin on top. Your true hourly cost is wages plus payroll burden plus overhead, spread across billable hours only. Once you know that number, you can quote the job as time and materials or package it as a single flat rate.
Most plumbing prices are not built this way. They get set by gut feel, or by whatever the shop across town charges, which is how a fully booked schedule ends up paired with a thin bank account. Below, the method runs in order, with worked examples you can rebuild from your own numbers.
The pricing formula
Every sound plumbing price is built from the same four pieces, whatever the job and however the final number is presented:
- Labor: your true hourly cost multiplied by the hours the job will take.
- Materials: what the parts cost you, plus a markup that covers handling and warranty.
- Profit: a margin on top of cost. Cover your costs and you have survived the job. The margin is what makes it worth opening the doors.
- Packaging: the same math presented as time and materials, or pre-calculated and quoted as one flat rate.
The rest of this guide works through each piece in order. One warning before the arithmetic starts: every number in the examples below is made up. They are round figures picked to keep the math easy to follow, not rates anyone should copy. Run the same steps with your own wages, your own overhead, and your own hours, and you will land somewhere different.
Step 1: Calculate your true hourly cost
The most expensive mistake in plumbing pricing happens before a job is ever quoted: treating the wage as the cost. A plumber you pay $35 an hour does not cost you $35 an hour. By the time payroll taxes, workers comp, insurance, the truck, fuel, tools, software, and the office have been paid for, the real number is a multiple of the wage.
To find your true hourly cost, add up three buckets of annual cost. Say your numbers look like this, keeping the figures round and hypothetical so the arithmetic stays visible:
| Annual cost bucket | Example amount |
|---|---|
| Plumber wages | $70,000 |
| Payroll burden (payroll taxes, workers comp, benefits) | $17,500 |
| Overhead share (truck, fuel, insurance, tools, software, phone, office) | $62,500 |
| Total annual cost | $150,000 |
Then comes the number most shops get wrong, which is what you divide that total by. A full-time plumber is on the clock around 2,080 hours a year, but a big share of those hours never make it onto an invoice. Time spent traveling between jobs, writing quotes, running to the supply house, doing paperwork, training, and going back for warranty work is all unbillable, and none of it pays for itself. Say that in this example, 1,200 of the 2,080 hours actually end up billed to customers.
Watch what happens depending on which number you divide by:
- The wrong math: $150,000 ÷ 2,080 worked hours = about $72 per hour. It reads like a healthy rate and loses money on every job.
- The right math: $150,000 ÷ 1,200 billable hours = $125 per hour. This is the break-even cost of one billable hour.
In this example, any hour you sell below $125 loses money before a single part gets marked up. But $125 only gets you to break-even, and you are not in business to break even, so the last move is adding margin. For a 20 percent profit margin, divide the cost by 0.8: $125 ÷ 0.8 is roughly $156 per billable hour. Divide instead of tacking 20 percent onto the cost. Dividing makes the margin 20 percent of the price the customer pays, which is what a margin is supposed to be. Add 20 percent on top instead and you end up with less than you thought.
Step 2: Mark up materials
Charging cost-plus on parts is standard practice across the trades. The part on your truck did not get there for free. Someone made the supply-house trip, fronted the cash, found the shelf space for it, and will eat the cost if it fails in a year. The markup pays for all of that, and for the customer getting the repair today instead of waiting on a parts order.
A flat percentage across the board has a problem, though: the cost of handling a part is roughly the same whether the part costs $12 or $900, so one flat rate either undercharges on small parts or looks unreasonable on big ones. That is why a sliding scale is the usual structure, with higher percentages on inexpensive parts and lower percentages as the cost rises. As an illustration, a sliding schedule could look like this:
| Your cost for the part | Illustrative markup | Example arithmetic |
|---|---|---|
| Under $25 | 100% | $12 fill valve becomes $24 |
| $25 to $100 | 75% | $80 disposal becomes $140 |
| $100 to $500 | 50% | $320 sump pump becomes $480 |
| Over $500 | 30% | $900 water heater becomes $1,170 |
The exact percentages are yours to set. What matters is that the schedule is written down, that it reflects what handling parts really costs you, and that it gets used on every job and not just when someone happens to remember.
Step 3: Charge a service call fee
A service call fee, sometimes called a diagnostic or trip fee, covers what it costs to put a licensed plumber and a stocked truck at the customer door to figure out what is wrong. That visit costs you the same whether the customer approves the repair or sends you home. With no fee, the people who say no are riding for free on the people who say yes.
The trick that keeps customers happy is crediting the fee toward the repair when they go ahead. Say the fee is $89 and the repair quote comes to $400. The customer who approves pays $400 total. The customer who passes pays $89 for a professional diagnosis and the trip out. Either way you get paid for showing up, and nobody who hires you feels billed twice for the same visit. The figures are made up, like everywhere else here.
The one thing you cannot skip is saying the fee out loud when the call gets booked, before anyone drives anywhere. A fee quoted on the phone is a professional policy. The same fee sprung in the driveway is an argument.
Flat rate or time and materials?
Everything above produces your numbers. This question is only about how you hand them to the customer. Once you know your true hourly cost and your markup schedule, flat-rate and time-and-materials pricing run on the same arithmetic. A flat rate is your hourly cost times the typical hours plus the typical materials for a given repair, worked out ahead of time and quoted as one number. Time and materials does the same math out loud as the job goes.
Flat rate suits the repeatable residential repairs you can scope with your eyes closed, and most homeowners would rather know the price before you start. Time and materials suits diagnostic and open-ended work where you honestly cannot tell how deep it goes until you are in it. Plenty of shops run both. The full trade-offs, including which jobs fit each model and how customers tend to react, are in our flat-rate vs. time-and-materials guide, so we will not repeat it here.
Offer good-better-best options
A priced repair does not have to be a single number. Lay most repairs out as two or three options and the customer stops asking “should I pay this?” and starts asking “which one do I want?” Take a running toilet. You can swap the flapper (good), rebuild the tank guts so nothing else goes next month (better), or pull the old toilet and set a new one (best). Price each option with the same method from the steps above. Now the customer is choosing how far to go, not haggling over the only number you gave them.
Options also protect your margin. When a customer hesitates, the reflex is to knock money off, which undoes all the arithmetic you just ran. With options already on the page, there is a smaller-scope choice sitting right there, so they trade down a tier instead of talking you down on price. There is more on this, including how to lay options out on the estimate itself, in how to write estimates that win more jobs.
Common underpricing mistakes
Shops that lose money on jobs tend to lose it the same few ways. If your margins feel thinner than the math says they should be, start here.
Pricing from the competitor sticker
The shop across town set its price off its own costs, its own overhead, and its own billable hours, none of which match yours. Or it pulled the number out of thin air and is slowly going under. Either way, copying a price you cannot see behind is a fast way to go under right alongside it. Knowing what competitors charge is useful market context. It is no replacement for running your own arithmetic.
Dividing by worked hours instead of billable hours
The quiet killer from Step 1, worth saying twice because it is the one that catches almost everybody. Travel between jobs, quoting, supply runs, paperwork, training: none of it bills, and none of its cost goes away. It all lands on the hours that do bill. Spread your costs across every hour worked instead and your rate will feel comfortable right up until you check the books.
Ignoring callbacks and warranty time
Some share of your jobs will need a return visit you cannot bill for. Nobody runs a perfect record, so treat callbacks the way you treat insurance: a cost of doing business that belongs in the overhead bucket. Price as if every job is done once and done right and you will be wrong in the one direction that costs you money.
Setting prices once and never revisiting them
Material costs climb. So do wages, insurance, and fuel. A rate that was dead-on two years ago can be wrong today, and nothing in the day-to-day will wave a flag to tell you. Re-run the true-hourly-cost arithmetic at least once a year, and again any time a big cost jumps.
Put it all in a price book
All this arithmetic only protects you if every quote actually uses it. The minute prices live in someone's head, they start to drift. One technician quotes from memory, another shaves a bit off to be agreeable, and a third never heard about the last price change. The fix is a price book in the plain sense of the word: every service and common part written down with its cost, its list price, and its options, so the whole crew quotes the same number for the same work.
Keeping that book current is the part software actually earns its keep on. Pillar's price book keeps the whole catalog in one place, with item codes, costs, list prices, and good-better-best options on each item, and technicians can pull it up from the field, so a quote put together in the driveway through estimates pulls the same prices the office would use. On the Enterprise plan, pricing formulas go one step further. You define a price from its parts, like base cost, material cost, labor hours, and markup percentage, and when one of those inputs moves, every linked item recalculates, with an audit trail of what changed and why.
If you run a plumbing shop and want to see what this looks like with your own services in it, take a look at how Pillar fits plumbing companies or request a demo and we will walk through setting up your price book with your own numbers. The method works just as well on a legal pad. What matters is that you have a price book at all, and that no price leaves your shop unless it came out of it.
Frequently asked questions
How much should I charge for a plumbing job?
Build the price from your own numbers rather than a universal rate: your true hourly cost multiplied by the hours the job takes, plus materials with a markup, plus a profit margin. True hourly cost is wages, payroll burden, and overhead divided by billable hours. Two shops doing identical jobs can have very different correct prices, because their costs and billable hours differ.
What is a fair markup on plumbing parts?
Cost-plus markup on parts is standard practice, and most shops use a sliding scale: a higher percentage on inexpensive parts and a lower percentage on costly ones. The handling costs, like supply-house trips, stocking the truck, fronting the money, and warranty exposure, are similar regardless of part price, so a flat percentage undercharges on small parts. Set a written schedule and apply it on every job.
Should plumbers charge a service call fee?
Yes. A service call fee covers the real cost of putting a licensed plumber and a stocked truck at the customer door to diagnose the problem, a cost you carry whether or not the repair is approved. The customer-friendly structure is to credit the fee toward the repair when they go ahead, so paying customers never feel billed twice and declined visits still cover their cost.
How do I calculate my hourly rate as a plumber?
Add up annual wages, payroll burden (payroll taxes, workers comp, benefits), and your share of overhead (truck, fuel, insurance, tools, software, office). Divide that total by billable hours, meaning the hours that actually end up on invoices, not the hours worked. That gives your break-even cost per hour. Then add a profit margin on top, and that is your minimum billing rate.
Is flat-rate or hourly pricing better for plumbing?
They are the same arithmetic packaged differently, so neither is universally better. Flat rate works well for repeatable residential repairs you can scope confidently, and most customers prefer knowing the price up front. Time and materials suits diagnostic or open-ended work where the scope is genuinely unknowable. Many plumbing shops run both: flat rate for the standard repair list, time and materials for unpredictable jobs.
Why am I losing money on plumbing jobs even when I am busy?
Almost always underpricing. The usual causes: dividing annual costs by worked hours instead of billable hours, copying a competitor price that does not reflect your costs, ignoring the unbillable time spent driving, quoting, and doing paperwork, and forgetting that callbacks and warranty visits cost real money. A full schedule at below-cost prices just means losing money faster. Re-run your numbers.
