Most plumbers lose money on bids in one of two ways. They guess low to win the job and eat the difference, or they price off what the guy down the road charges and never find out whether that number covers their own costs.
Learning how to bid plumbing jobs properly is really about one thing: knowing your true hourly cost, then building every bid up from it instead of down from a competitor’s price.
Step 1: find your real hourly cost
This is the number almost nobody calculates, and everything else depends on it.
Start with billable hours, not working hours. A solo plumber working 40 hours a week is not billing 40. Between driving, quoting, invoicing, parts runs and dead time, 55 to 65 percent billable is realistic. Call it 24 billable hours a week, or about 1,150 a year after time off.
Now total your annual overhead:
- Vehicle payment, fuel, insurance, maintenance: $9,000 to $15,000
- General liability and workers’ comp: $2,500 to $8,000
- Licensing, bonds, continuing education: $500 to $2,000
- Tools and replacement: $2,000 to $5,000
- Phone, software, accounting, bank fees: $2,000 to $4,000
- Marketing, website, Google Business Profile management: $2,000 to $8,000
- Rent or storage, if applicable: $0 to $12,000
A lean solo operation lands around $25,000 to $40,000 a year in overhead.
Now the math. Say $32,000 overhead, 1,150 billable hours, and you want to pay yourself $75,000.
($32,000 + $75,000) ÷ 1,150 = $93 per hour just to break even on your target income. Add a 20 percent profit margin on top and your billing rate is about $116 an hour.
That is the number. If you have been charging $85 because that felt competitive, you have been paying for the privilege of working. Our free job pricing calculator runs this in about a minute with your own figures.
Step 2: price the job, not the hour
Once you know your hourly cost, stop showing it to customers. Bid flat rate.
Flat rate wins for three reasons. The customer knows the price before you start, so there is no argument at the end. You get rewarded for being fast instead of punished for it. And your efficiency stops being the customer’s discount.
The build-up for any job:
- Labor: estimated hours × your rate ($116 in the example above)
- Materials: your cost × a markup of 1.3 to 2.0 depending on the item
- Permit and inspection fees at actual cost
- Subcontractors at their price plus 10 to 20 percent for carrying them
- Contingency: 10 to 15 percent on anything opening a wall or going underground
On material markup, do not apologize for it. You are financing the parts, making the run, warrantying the item and carrying the risk if it fails. Standard markup runs 30 to 50 percent on common fittings and fixtures, and can be higher on low-cost, high-hassle items.
Step 3: estimate hours honestly
Most blown bids are blown here, not on the rate. Some working baselines for a competent solo plumber, including setup and cleanup:
- Toilet replacement, straight swap: 1.5 to 2.5 hours
- Water heater, tank, like-for-like: 3 to 5 hours
- Tankless conversion: 8 to 14 hours (venting and gas line are the variables)
- Kitchen sink and faucet replacement: 2 to 3 hours
- Shower valve replacement with access: 3 to 5 hours; without access, add 2 to 4
- Whole-home repipe, 2 bath, PEX: 24 to 40 hours
- Sewer lateral spot repair: 6 to 12 hours
- Bathroom rough-in, new construction: 12 to 20 hours
Then add your honesty multiplier. Track your estimates against actuals for 20 jobs. If you consistently run 25 percent over, that is not bad luck, that is your estimating bias. Multiply future estimates by 1.25 until the gap closes.
Age of the house is the single biggest swing factor. Anything pre-1970 gets a bump for galvanized pipe, cast iron, non-standard sizing and whatever the last three owners did themselves.
Step 4: walk the job before you price it
Phone quotes on anything bigger than a fixture swap are how you lose money. Things to check on site that change the number:
- Access to the work. Crawlspace height, finished basement ceiling, tile you have to cut.
- Existing pipe material and condition. Galvanized and cast iron mean surprises.
- Shutoff location and whether the valves actually hold.
- Whether a permit is required, and how slow that jurisdiction is.
- Parking and how far you are carrying material.
- Who else needs to touch it. Drywall, tile, electrical.
Photograph everything. Photos protect your bid when the customer later says something was already included.
Step 5: present it so it gets accepted
How you deliver the bid matters nearly as much as the number.
- Give it in writing, same day if possible. Speed wins more work than price does. The customer often takes the first professional quote that arrives.
- Offer three options where the job allows. Good, better, best. Most people take the middle one, and having a premium option makes your real target look reasonable.
- Itemize scope, not cost. List exactly what is included and what is not. Do not break out your labor rate and material cost line by line; that invites negotiation on each piece.
- Spell out exclusions. Drywall repair, tile, painting, unforeseen conditions behind walls. This one paragraph prevents most disputes.
- Put an expiration on it. “Valid 30 days.” Material prices move and it creates a reason to decide.
- State payment terms. Deposit for material-heavy jobs, balance on completion.
Our free invoice and estimate generator builds a branded, printable estimate with all of this in place.
A full bid, worked end to end
Abstract advice is easy to nod at and hard to use. Here is a real one: 50-gallon gas water heater replacement, like-for-like, in a 1985 house with a garage install. Using the $116 per hour rate from earlier.
Labor. Estimate 4 hours: drain and haul the old unit, set the new one, reconnect gas and water, new flex connectors, new T&P and drain line, fill, purge, test, clean up.
4 × $116 = $464
Materials.
- 50-gallon gas water heater, your cost $650 → billed at 1.4× = $910
- Water and gas flex connectors, dielectric unions, T&P valve, drain line, sealant, straps: cost $95 → billed at 1.6× = $152
- Expansion tank (code requires it in most jurisdictions now): cost $70 → billed at 1.6× = $112
Materials subtotal: $1,174
Other. Permit $85 at cost. Old unit disposal $35.
Contingency. This is a straight swap in an accessible garage, so 10 percent on labor only: $46.
Bid total: $1,804. Round to $1,795 and present it as one flat price.
Now notice what happens if you had “just charged $85 an hour” and marked materials up 15 percent. You would land near $1,270, feel competitive, and be roughly $500 short of covering your own overhead and target income on a single job. Do that four times a week and you have lost six figures a year without ever seeing it on an invoice.
Also notice the contingency. Change one detail – the heater is in a finished basement with a tight stairwell and a 40-year-old shutoff that will not seat – and labor goes to 6 hours and contingency to 20 percent. Same job on paper, several hundred dollars apart in reality. That is why you walk it.
Bidding for general contractors and commercial work
Residential bidding and GC bidding are different games, and plumbers who carry residential habits into commercial work get hurt.
- You are bidding to a spec, not a conversation. Read the plans and the specification section. If the spec calls for a particular manufacturer and you priced a different one, your bid is non-responsive and you either eat the difference or lose the relationship.
- Write your exclusions in detail. On commercial work, anything you did not explicitly exclude is often assumed included. Trenching, backfill, concrete cutting, patching, fire caulking, temporary facilities, off-hours work – name them.
- Price the schedule, not just the scope. If the GC wants you mobilizing four separate times instead of once, that is four setups and four drives. Bid it that way or state the number of mobilizations included.
- Understand retainage and payment timing. Commercial GCs commonly hold 5 to 10 percent retainage and pay 30 to 60 days after invoice. That is your money financing their project. Price for it and make sure your cash flow can survive it.
- Get change orders in writing before you do the work. Verbal change orders on commercial jobs are the single most common way subcontractors end up unpaid.
The margin on commercial work is usually thinner per hour but the volume is steadier. Just go in knowing you are trading margin for predictability, rather than discovering it at the end of a job.
Track every bid, win or lose
Keep a simple log: date, customer, job type, your bid, whether you won, and if you lost, what the winner charged if you can find out. Then once a quarter, look at the pattern.
Winning more than about 70 percent of bids usually means you are priced too low. A healthy close rate for quoted work sits somewhere around 40 to 60 percent. If you are winning nearly everything, raise your rate and watch what happens – most plumbers discover their volume barely moves.
Also track estimated hours against actual hours on the jobs you win. That single column will teach you more about your business than any pricing article, this one included.
When to walk away
A bid you should not win is worse than a bid you lose. Red flags:
- The customer leads with price and mentions three cheaper quotes.
- They want you to skip the permit.
- The scope keeps changing before you have even signed.
- They will not agree to a deposit on a job with heavy material cost.
- Something in the conversation makes you want to pad the number. That instinct is usually right, and padding rarely covers it.
Bidding at a loss to keep busy is the most common way small plumbing shops fail. Busy and broke is a real outcome.
FAQ
What should I charge per hour?
Whatever your overhead, target income and billable hours say. For most solo plumbers that lands between $95 and $150. Do not copy a competitor’s rate without knowing their cost structure.
Flat rate or time and materials?
Flat rate for almost everything. Time and materials only makes sense on genuinely unpredictable work like emergency diagnostics, and then with a stated not-to-exceed.
How much do I mark up materials?
30 to 50 percent is standard on common items. You are paid for financing, sourcing, warranty and risk.
Should I charge for estimates?
Charge a diagnostic fee for anything requiring troubleshooting, and credit it toward the work. Free quoting on complex jobs is unpaid labor.
What if I am always the highest bid?
Sometimes that is correct. If you are losing everything, look at how fast you respond and how clearly you present the scope before you cut your price.
Next steps
Bidding connects directly to what you charge and how you get paid. See plumber hourly rate for market context, and the plumbing estimate template for a format you can reuse on every job.
