How to price plumbing jobs profitably.
Pricing a plumbing job comes down to one rule: the price has to cover all of your costs and leave a profit on top. Those costs are labor (including the real burdened cost of an hour, not just the wage), materials (with a markup), and overhead (your trucks, insurance, software, office, and everything that keeps the doors open). Most plumbing shops price either hourly or time-and-materials, or with flat-rate pricing where each job has a set price the customer sees up front. The flat-rate model usually protects margin better because it does not penalize an efficient tech, but it only works if you know your true cost per job. The fastest way to bleed profit is to guess at prices, forget overhead, and never compare what you quoted against what the job actually cost. This guide walks through both pricing models, the formula behind a profitable price, and how to use job costing to keep your estimates honest.
The two ways to price a plumbing job
There are two common pricing models in plumbing, and most shops use a mix of both. Understanding the trade-offs is the first step to pricing with intent instead of habit.
Time and materials (hourly) means you bill for the hours worked plus the materials used, usually with a markup on the parts. It is simple and feels fair, but it has a hidden flaw: it punishes your best techs. A plumber who fixes a job in 45 minutes earns you less than a slower one who takes two hours, even though the fast tech is more valuable. It also makes customers nervous, because they have no idea what the final bill will be.
Flat-rate pricing means each task has a set price the customer agrees to before the work starts. Replace a water heater, that is one price. Clear a main line, that is another. The customer knows the cost up front, your efficient techs make you more money, and your pricing becomes consistent across the whole crew. The catch is that flat-rate only works if you have done the math on your true cost per job, otherwise you are just guessing with a confident face.
The pricing formula: labor + materials + overhead + profit
Every profitable price, hourly or flat-rate, is built from the same four parts. If any one of them is missing or guessed, your margin is at risk.
Not just the wage. Add payroll taxes, workers comp, benefits, paid time off, and non-billable hours (drive time, training, warranty callbacks). The result is your true cost per billable hour, which is always higher than the hourly wage.
The parts cost, plus a markup that covers your time sourcing, stocking, hauling, and warrantying them. A common range is a 20% to 50% markup on materials, depending on the part and your market.
Trucks, fuel, insurance, licensing, software, the office, and admin pay. Total your annual overhead and divide by your billable hours to get an overhead cost per hour to add to every job.
What is left after every cost is covered. This is not optional and it is not the same as your wage. Decide a target net margin (many trades aim for 10% to 20% net) and build it into the price, not whatever is left over.
Pricing a job, step by step
Once you know your numbers, pricing a specific job is mechanical. First, estimate the labor hours the job will take and multiply by your burdened labor rate. Second, list the materials and apply your markup. Third, add your overhead allocation for those hours. Fourth, add your target profit margin on top of the full cost. That total is your price.
For flat-rate work, you do this math once per task type and build a price book, then your whole crew quotes from the same numbers. For time-and-materials work, you publish an hourly rate that already bakes in burdened labor, overhead, and margin, so every billed hour is profitable on its own.
The number you should never start from is "what the last guy charged" or "what feels right." Competitor prices are a sanity check at the end, not the foundation. If your costs are higher than a competitor who is underpricing, matching them just means going broke more slowly.
The mistakes that quietly kill margin
Most plumbing shops do not lose money on one bad quote. They lose it slowly through the same handful of pricing mistakes repeated across hundreds of jobs.
Pricing off wage plus materials only, and treating overhead as an afterthought. It is not an afterthought, it is a cost on every single job.
The owner takes a wage out of the job and calls the rest profit. Real profit is what is left after the owner is paid like any other cost.
Quoting a job and never comparing it to what the job actually cost in labor and materials. Without that loop, the same underpriced job repeats forever.
Cutting the price to land the work, then realizing the margin was never there. A job you lose money on is worse than a job you never bid.
Why tracking actual job costs makes your pricing honest
A price is a prediction. The only way to know if your prediction was right is to track what the job actually cost: the real labor hours, the real materials, the real margin. This is job costing, and it is the difference between pricing on data and pricing on hope.
When you capture clock-ins and materials against each job and compare them to the estimate, the pattern becomes obvious fast. You see which job types you consistently underprice, which techs run long, and where materials markup is too thin. You feed that back into the next quote, and your price book gets sharper every month instead of drifting.
WorkTrac is built to close that loop. Crews clock in against the job with GPS time tracking, even with no signal on the site, and the dashboard shows estimated versus actual labor, materials, and margin per job. Approved hours flow straight into invoicing with one-way export to QuickBooks Online. The point is not the software, it is the discipline: price from your costs, then measure the real cost, then adjust. Do that, and pricing stops being a guess.
Common questions, answered.
There is no universal number, because your hourly rate has to come from your own costs. Start with your burdened labor cost (wage plus payroll taxes, workers comp, benefits, and non-billable time), add an overhead cost per hour (annual overhead divided by billable hours), then add your target profit margin. The result is your minimum profitable hourly rate. Rates vary widely by region, specialty, and whether the work is residential or commercial, so calculate from your numbers rather than copying a competitor.
Also explore
GPS time tracking, dispatch, offline-first mobile for basements and crawl spaces, invoicing, and customer portal for plumbing crews.
Verified clock-in and clock-out tied to the job site, so the labor hours behind your pricing are accurate.
Capture time, photos, and materials on a no-signal job site. Everything syncs when the crew is back in range.
Run the whole job in one app.
WorkTrac is all-in-one field service software that works offline. Try the sandbox right now with demo data, no signup, no card. When you're ready, start a 30-day Enterprise trial with every feature unlocked.