How to Price Plumbing Jobs Without Losing Money
Most plumbers don't underprice because they're bad at math. They underprice because they never sat down and figured out what it actually costs to turn a wrench for a living. If you want to know how to price plumbing jobs the right way, start there: with your real costs, not with what the guy down the street charges.
This post walks through the math, the decision between hourly and flat-rate pricing, and a markup formula that protects your margin on every job.
Why Most Plumbers Underprice (And Don't Realize It)
The classic mistake goes like this: a plumber checks what competitors charge, sets their rate somewhere in that range, and figures they're covered. The problem is that competitors may be underpricing themselves. Or they're running a larger operation with different economics. Either way, you're pricing off someone else's broken math.
The Bureau of Labor Statistics reports the median annual wage for plumbers, pipefitters, and steamfitters at $62,970 as of May 2024. That's employee wages, not business revenue. When you own the truck and carry the liability, your number needs to be higher to account for everything that doesn't show up in an employee's paycheck.
What does it actually cost to run a plumbing truck for a day?
Pull out a piece of paper and add these up for a full year, then divide by your working days.
Vehicle costs. Truck payment or depreciation, insurance, registration, fuel, maintenance, tires. A work truck running 20,000 miles a year can easily cost $12,000 to $18,000 annually when you total it all.
Tools and equipment. Pipe cutters, drain augers, pipe cameras, press tools, torches. These wear out and need replacing. If you spend $4,000 a year on tools, that's $16 per working day before you've touched a single job.
Insurance. General liability plus any workers' comp if you have employees. For a solo operator, $3,000 to $6,000 per year is common depending on your state and coverage level.
Licensing and continuing education. Plumbing licenses aren't free to maintain. Budget for renewal fees, code update courses, and any required certifications.
Administrative time. Every hour you spend quoting, scheduling, invoicing, and chasing payments is an hour you're not billing. If you work 50 hours a week and 10 of those are overhead, you have 40 billable hours. Most plumbers price as if all 50 are billable.
Benefits you pay yourself. Health insurance, retirement contributions, payroll taxes. As a business owner you cover both sides of Social Security and Medicare: 15.3% on net self-employment income. That alone adds roughly $7.65 per $50 you earn.
Slow season buffer. Most plumbing businesses in the northern half of the country see a dip in the off-season. If you run 10 months at full pace and 2 months at half pace, your effective annual billable hours are lower than you think. Build that into your rate, not into your stress level.
Add all of this up for your own business. Most solo plumbers running one truck find their true daily overhead runs $300 to $600 before paying themselves a dime. The PHCC Educational Foundation (Plumbing-Heating-Cooling Contractors Association) publishes an overhead and profit calculator specifically for contractors in this trade. Worth running your own numbers through it once a year.
How do you account for drive time between jobs?
Drive time is one of the sneakiest margin killers in trades work. If you spend 90 minutes a day driving between jobs and you're not charging for it, you're eating that cost against your hourly rate.
A few options. Charge a dispatch or trip fee (common in service work, $50 to $150 depending on your market). Roll drive time into your minimum service call rate. Or cluster your schedule geographically so you're not running across town between stops.
Whatever you choose, make a decision and price it in consistently. The trap is treating drive time as "part of doing business" without accounting for it in your rate. That's where margins quietly disappear.
Hourly Rate vs Flat Rate: Which Works for Plumbers?
There's no universal answer. Both models work. The right one depends on the type of work you do and how experienced you are estimating scope.
When should a plumber charge hourly vs flat rate?
Charge hourly when:
- The scope is genuinely unknown (diagnostic work, finding a leak behind walls, opening up an older system)
- You're doing remodels or new construction where the job changes as you go
- The customer is choosing materials on the fly
Charge flat rate when:
- The job is well-defined (replace a toilet, install a water heater, fix a running toilet, clear a drain)
- You've done the job enough times to know your average time within 15 to 20 minutes
- You want to reward your own efficiency (the faster you finish, the better your effective hourly rate)
Most plumbers doing service work trend toward flat rate over time because it's easier for customers to agree to and it protects you when you're good at what you do. If you can swap a water heater in two hours and you charge flat rate for a two-hour job, a customer doesn't balk at the bill the way they might if you charged three hours on an hourly ticket.
How do you set a plumbing hourly rate that covers overhead?
Work backward from what you need to take home, then add everything on top.
Start with your target annual income. Say $80,000.
Add your annual overhead (truck, tools, insurance, admin time, etc.). Use your real number. For this example, $40,000.
That means your business needs to generate $120,000 in revenue. Divide by billable hours. If you work 50 weeks and bill 30 hours per week, that's 1,500 billable hours.
$120,000 / 1,500 hours = $80 per hour.
That's your floor. It does not yet include profit margin on labor (which you should have), materials markup, or any buffer for slow seasons. Add 15 to 20 percent for business profit on top of that $80, and you're looking at $92 to $96 per hour as a more realistic minimum.
According to Angi's 2026 data, homeowners pay an average of $339 per plumbing visit, with typical jobs ranging from $182 to $499. Hourly rates for plumbers in their data run $75 to $200 per hour depending on region and complexity. If your local market supports $95 to $125 per hour, that's a healthy range for a solo operator with one truck running efficiently.
The Markup Formula That Protects Your Margin
Labor is one side of the equation. Materials are the other. A lot of plumbers either undercharge for materials or treat them as a cost pass-through. Both are mistakes.
What markup should plumbers charge on materials?
Materials should carry a markup, and that means real margin, not just cost recovery. Too many plumbers treat parts as a favor to the customer: "I'll just charge you what I paid." That's leaving money on the table and ignoring the real cost of stocking, sourcing, and carrying parts in your truck.
Common materials markup in plumbing service work: 20 to 50 percent, depending on the part. High-volume commodity parts (supply lines, wax rings, angle stops) might sit at the lower end because customers can price-check them. Specialty parts, anything you had to source and stock, or parts with significant acquisition time, should sit at the higher end.
Here is the formula to think about it clearly:
Sell price = cost / (1 - desired margin)
If a part costs you $60 and you want a 30% margin: $60 / 0.70 = $85.71. That gives you $25.71 in gross margin on the part. That margin needs to cover the time you spent sourcing it, stocking it, carrying it in the truck, and the capital tied up in inventory.
Do not confuse markup and margin. A 30% markup on a $60 part means you sell it for $78 (30% added on top). A 30% margin means you sell it for $85.71 so that 30% of the sale price is gross profit. The industry standard is margin, not markup.
How do you price a plumbing job you have never done before?
Every plumber eventually gets called for something outside their normal range. Here is a reliable approach.
Step 1: Break it into known components. Even an unfamiliar job is made up of familiar sub-tasks. Running a new gas line involves measuring and cutting pipe, making fittings, pressure testing, possibly pulling a permit. Price each component separately, even if you combine them on the customer-facing estimate.
Step 2: Add a contingency for unknowns. If you genuinely don't know what's inside the wall or what condition the existing system is in, build in 15 to 25 percent contingency. Communicate this to the customer as a range, not a fixed price.
Step 3: Time your material run. Estimate how long the supply house trip will take and price that time into your labor. Running across town to pick up a specialty fitting is labor, and it costs you a billable hour somewhere.
Step 4: Know your walk-away number. Some jobs aren't worth taking at a price the customer will accept. Better to walk than to win a job that loses money.
Good plumbing estimates give the customer a clear picture of what they're getting and protect you legally if scope changes. Write them clearly, include materials as a line item, and note anything you couldn't see that could affect the final price.
How Bit & Grain Helps Plumbers Price Jobs Right
Bit & Grain is job management software built for trades contractors: the person running a truck, tracking job costs, and keeping invoicing moving. Agencies and freelancers use other tools. This one is built for the trades.
A few things that matter specifically for plumbing pricing:
Estimates with line items. Build estimates with labor and materials as separate line items so you can see your margin before you send anything. Add your standard markup to materials and see the total in real time. Compare how Bit & Grain handles estimates vs other tools.
Receipt scanning for job costs. Every supply house run, every part you pick up, gets captured. Take a photo of the receipt and Grain AI pulls the line items automatically. No more guessing what you spent on a job when it's time to reconcile. See how receipt scanning works.
Pricing templates. Build flat-rate price cards for your most common jobs. Toilet replacements, water heater installs, faucet swaps. Store them in the app and pull them into estimates in seconds instead of rebuilding the math every time.
Job-level margin tracking. See what you estimated vs what you actually spent. That feedback loop is how you get better at pricing over time. After six months of tracking real job costs, you'll know exactly where you've been leaving money.
See how Bit & Grain's pricing tools work.
Conclusion
Knowing how to price plumbing jobs comes down to one discipline: actually knowing your costs. That means sitting down with your real numbers, including overhead, drive time, materials, and the hours you're not billing, and building a rate that covers all of it plus a margin that keeps your business healthy. Copying the competition and hoping for the best is not a pricing strategy.
The plumbers who stay in business long term are the ones who charge enough to cover their costs and invest in their operation. The ones who underprice run themselves ragged and wonder why cash flow is always tight.
Start with your real costs. Set a floor rate that covers them. Charge a legitimate markup on materials. Use flat-rate pricing where the work is predictable. And track actual job costs against estimates so you know where your pricing needs to adjust.
That's the system. It's not complicated, but it does require consistency. The tools you use for estimates and invoicing should make that consistency easier, not harder.
If you want to see how Bit & Grain handles this for plumbing businesses specifically, take a look at the features page.
