Back to blog
Business

5 Mistakes That Cost Plumbers Thousands on Estimates

The five most common estimate mistakes I see plumbers make — and what each one quietly costs you over a year. Most of these are easy to fix once you know they are happening.

PS

Paul Schumann

15-year union plumber · May 7, 2026 · 8 min read

ANNUAL COST OF ESTIMATE MISTAKES — TYPICAL PLUMBEREstimated impact on a solo plumber generating ~$200K/year. Math shown in the article.Underbilling materials$4,500Forgetting non-billable time$6,200Vague scope of work$3,800Weak deposit policy$2,400Underestimating "easy" jobs$3,100TOTAL$20,000/yr

Plumbers are good at plumbing. We are not always good at running the business side of the work. The estimates we hand to customers are where most of the money is made or lost — not on the jobsite. I have watched plumbers grind 60-hour weeks and still come up short at the end of the year, and almost every time the leak was somewhere in their estimate process.

Below are the five mistakes I see most often, what each one quietly costs the average solo plumber, and how to fix it. The numbers in the chart above are estimates based on a plumber generating around $200,000 in annual revenue. Your numbers will vary, but the pattern is the same: these are the gaps where money disappears without anyone noticing.

Most plumbers do not lose money on the jobsite. They lose it on the estimate they handed the customer two weeks earlier.

Mistake #1: Underbilling for materials

Estimated annual cost: ~$4,500

This one is the most common and the most invisible. You quote a job using prices you remember from the last time you bought that fitting, that fixture, that valve. Six months go by. Material prices have moved up 8% to 15% since you last checked. Now your "30% markup" is really a 15% markup, and on some line items you are barely breaking even on the parts.

The math is brutal once you do it. If your materials cost is roughly 30% of your revenue, that is $60,000 in materials per year on a $200K plumber. A 5% gap between your quoted prices and actual current prices is $3,000 in lost margin. Add in the fittings you forgot to charge for (one PVC coupling here, two brass nipples there) and you are at $4,500 to $5,000 a year leaking out of your bottom line.

How to fix it

Update your prices monthly, not when you remember to. Build a materials list with current wholesale costs and apply a consistent markup (40% to 60% is standard for residential service). When you start an estimate, every fitting, fixture, and length of pipe should pull from that current list — not from memory. Charge for everything. Yes, even the $0.40 PVC coupling. Especially the $0.40 PVC coupling.

The hidden version

The worst version of this mistake is forgetting consumables — solder, flux, pipe dope, sandpaper, threadlocker, Teflon tape, blades for your Sawzall. None of these are billable line items, but they cost you real money. Either build a small "shop materials" line into every estimate (1% to 2% of materials cost) or know that you are eating it.

Mistake #2: Forgetting non-billable time

Estimated annual cost: ~$6,200

This is the biggest one, and almost every plumber underbills it. Your billable hour is what you charge a customer for time spent at their property turning wrenches. Your actual hour includes drive time to the supply house, drive time to the jobsite, time spent on the phone with the customer, time spent writing the estimate in the first place, and time spent dealing with paperwork and invoices after the job is done.

On a typical day, a working plumber might bill 6 hours but spend 9 hours on the job. That 3-hour gap is where your real hourly rate lives. If your rate is $100 per billable hour and you work 250 days a year, that is $25,000 of unbilled time annually. Even capturing 25% of that gap by building it into your estimates recovers $6,000+ a year.

How to fix it

Build trip charges and shop charges into your estimates. Every job has a base "show up at your house" fee that covers drive time, fuel, and the first 15 to 30 minutes of work. For larger jobs, add a "material pickup" charge if you have to make a supply house run. Stop thinking of these as gouging the customer — they are real costs you are paying out of your own pocket if you do not bill for them.

Try this

Track your actual hours for two weeks. Write down every minute spent on plumbing-related work, including phone calls, paperwork, drive time, and supply house runs. Then divide your billable revenue by your actual hours. The number that comes out is what you are really making per hour. For most plumbers, it is 25% to 40% lower than they thought.

Mistake #3: Vague scope of work

Estimated annual cost: ~$3,800

"Replace water heater — $2,200." That is the entire scope on the estimate. The customer signs it. Then on installation day, they ask if you are going to update the gas line because they noticed the old one was corroded. They ask if you are going to replace the shut-off valve "while you are in there." They ask if you can re-route the venting because they always hated where it came out.

Now you are stuck. You are on their property with the old water heater drained. Saying no makes you look unhelpful. Saying yes for free costs you 2 to 4 hours of work and sometimes $200+ in materials you did not budget for. This is scope creep, and a vague estimate invites it.

How to fix it

Be obnoxiously specific. The estimate for "replace water heater" should list: model number being installed, removal and disposal of old unit, new shut-off valve, new flex connectors, new T&P discharge tube, code-required earthquake straps if applicable, and inspection coordination. Then add a clear line: "Any work outside this scope, including but not limited to gas line modifications, venting changes, or additional shut-off valves, will be quoted separately before work begins."

That single line of text protects you from $3,000 to $5,000 a year in free work. Customers respect a clear scope more than a vague one — it tells them you know what you are doing.

Mistake #4: Weak deposit and payment terms

Estimated annual cost: ~$2,400

You do the work. The job goes well. The customer says they will mail you a check. Three weeks later, the check has not arrived. You text them. They say they forgot. Two more weeks. You call them. They say they will get to it next week. Six weeks after the job, you have a $1,400 invoice still unpaid. Eventually most of these get paid. Some never do. The ones that do get paid still cost you the time value of money and the cost of chasing them.

The real cost is not just the rare bad debt. It is the cumulative drag of late payments, the time spent following up, and occasionally the 1% to 3% of customers who simply never pay. On a plumber doing $200K in revenue, that is $2,000 to $6,000 a year in slow or lost payments.

How to fix it

Take a deposit on every job over a few hundred dollars. The standard for residential service is 30% to 50% upfront for projects requiring materials. For larger remodels, do a three-stage payment: deposit at signing, progress payment at rough-in, balance at completion. Put your payment terms in writing on every estimate: "50% deposit due at signing. Balance due upon completion. Late payments subject to 1.5% monthly finance charge."

Take cards. Yes, the 2.9% processing fee feels like it is eating into your margin — but losing 5% of your invoices to slow-pays and bad debt is worse. Most modern card processors are integrated with estimate software, so the customer can pay from a link the moment the job is done.

Mistake #5: Underestimating "easy" jobs

Estimated annual cost: ~$3,100

Every plumber has done this one. The customer calls about a leaking faucet. You quote $185 for the repair. You show up, look under the sink, and the shut-off valve is corroded shut. You cannot turn off the water. The angle stop seizes. You go to remove the supply line and the threads strip. By the time you have finished, you have replaced two angle stops, a supply line, and the faucet itself. You have been there three hours instead of one.

That $185 quote becomes a job where you have eaten the labor cost of two extra hours and $40 in unplanned parts because you did not want to call the customer mid-job and tell them the price went up. Compound this across 50 to 100 small jobs a year, and it adds up fast.

How to fix it

Two changes. First, start charging a diagnostic fee on small jobs. $89 to show up and look at the problem. The fee gets credited toward the repair if they hire you. This way you are not eating the cost of every "quick look" that turns into a 90-minute investigation.

Second, build "if conditions worsen" language into your estimates. "Quote assumes shut-off valves are functional and supply lines are removable without damage. Replacement of seized angle stops or damaged supply lines will be billed separately at $XX per occurrence." Now when you find the seized valve, you make a 30-second phone call and the customer agrees to the additional cost. You are not eating it anymore.

The mindset shift

The plumbers who run profitable shops are not the ones who are afraid to bring up money mid-job. They are the ones who set the expectation up front, put it in writing, and then make a calm, professional phone call when something changes. Customers respect this. The ones who do not are not customers worth keeping.

How to fix all five at once

All five of these mistakes share the same root cause: estimates that are written quickly, by hand or in a basic Word doc, without the discipline to enforce consistent pricing, scope, and terms. The fix is not "try harder" — it is to use a system that does the work for you.

A real estimate tool should: pull current material prices automatically, apply your markup consistently, build trip charges and shop charges into every job, lock in scope of work language so you cannot forget it, prompt you for deposit terms on every estimate, and store conditional language ("quote assumes X") so it is one click instead of remembering to type it. Once those things are baked into your process, you stop losing money to memory and habit.

That is what we built PlumbPro to do. The estimate tool tracks 750+ materials with current pricing, applies your markup automatically, and includes trip charges, shop materials, and scope language as defaults. Every estimate is consistent, complete, and signed by the customer before work starts. The estimates you send look professional because they are professional — not because you spent two hours formatting a Word doc the night before.

The fix is not "try harder." It is to use a system that does the work for you.

PlumbPro

Stop losing money on estimates.

Build professional estimates with current material pricing, consistent markups, and built-in scope language — in minutes, not hours. Try PlumbPro free for 7 days. No credit card required.

Start your free trialNo credit card required
PS

Written by Paul Schumann

15-year union plumber and creator of PlumbPro. Residential, commercial, and large-scale project experience across New York.