You’re staring at a leaky pipe job, but your last quote lost money or the customer ghosted you. This guide shows you how to quote plumbing jobs without undercharging or losing the customer. Follow these steps to price fair, win bids, and keep cash flowing.
How to Calculate Your Base Costs First
Start with your real costs. Add up truck gas, tools wear, insurance, and shop rent. Divide by your billable hours each year. That gives your hourly overhead—say $25 if you work 1,500 hours a year on $37,500 overhead.
Next, figure labor. If you pay yourself $40 an hour after taxes, add 30% for benefits and payroll taxes. That’s $52 per hour minimum. Track jobs to know average time—a faucet swap takes 1.5 hours, not 4.
Materials next. List every pipe, fitting, and glue. Use supplier prices plus 20% waste. For a toilet install, that’s $150 parts if you buy a $120 unit and fittings.
Pick Flat Rate Over Hourly Pricing
Hourly scares customers—they see the meter run. Flat rate gives a firm number up front. Build a price book from past jobs: toilet install $450, drain clear $200.
Flat rate covers surprises better. Add 20% buffer for old houses where pipes hide rot. Customers like the no-surprise price; it beats vague “time and materials.”
Test it on small jobs first. Track if flat rates beat hourly profits by 15-20%. Adjust yearly for rising copper costs.
Step-by-Step Quote Formula That Wins Jobs
Estimate time from real data, not guesses. Faucet repair: 1 hour labor at $100 flat, $80 parts, $30 overhead, $30 profit markup. Total $240.
Add travel and dump fees. $50 minimum call-out covers gas and time. Itemize: “1-hour labor $100, parts $80, travel $50, total $230.” No hidden junk.
Markup smart. Double materials for profit and waste. Labor at 1.5x your base rate. Total job: costs x 1.3 for profit. Review every quote—cut losers.
Include These 5 Must-Have Quote Items
Your quote needs your logo, customer name, job address, quote number, and date. List services like “replace 50-gal water heater, remove old unit.” Add prices per line.
Scope clear: “Install PEX lines, 20 feet, fittings included.” Validity 30 days. Terms: 50% deposit, balance on finish. Photos of parts build trust.
Taxes separate. Note permits if needed—check local code. Warranty: “1 year on labor, parts per manufacturer.”
Walk the Customer Through Your Quote
Email or text the quote same day. Call: “Here’s the $450 toilet job—$150 parts, 2 hours labor, travel. Questions?” Explain value: “This Kohler lasts 20 years.”
On-site? Show pipe rot photo. “See this? Cheap fix now saves $2,000 flood later.” They sign faster when they get why it’s not $200.
Upsell soft: “Add shutoff valves for $50 more?” Total updates live. Builds loyalty—they see you care.
Avoid Undercharging Traps Plumbers Fall Into
Skip phone quotes unless tiny. Visit first—customer says “small leak,” it’s a full repipe.
Don’t match lowball competitors. They skip overhead and lose money. Your $450 job covers profit; their $300 fails on callbacks.
Track every job in a spreadsheet. Average toilet job really 1.8 hours? Update prices. Raise 5% yearly for inflation.
Old houses eat time. Add 25% buffer for surprises. Quote ranges if unsure: “$400-550 based on access.”
Keep Customers Without Cutting Price
Value beats cheap. “We finish same day, warranty included.” Repeat customers pay 10-15% more for trust.
Follow up: “Job done right?” Text thanks. Offer yearly check for $99—spots leaks early.
Loyalty perks: 5% off for repeats. Maintenance plans lock them in: $20/month for priority and discounts.
Be reachable. Answer calls fast. On-time trucks win bids—late guys lose.
Common Quote Mistakes and Quick Fixes
Vague scopes lose jobs. Fix: “Clear kitchen drain, snake 50 feet.” Not “fix clog.”
Forgetting fees. Add travel, after-hours x1.5. Weekend? x2.
No terms. State payment: “Cash or card on complete.” Avoid “net 30” fights.
Quotes expire? Note “valid 30 days—prices rise.” Protects you.
Build a Price Book for Speed
List 50 common jobs: water heater $1,200-1,800 by size. Update quarterly from suppliers.
Group by tiers: basic $200 drain, pro $400 with camera inspect. Fits house type.
Software helps, but paper works. Phone pics of quotes refine it.
Sample Toilet Install Quote
Joe’s Plumbing
Quote #123 | May 3, 2026
Customer: John Doe, 123 Main St
- New Kohler toilet: $150
- Fittings, wax ring: $50
- Labor 2 hrs: $200
- Travel/disposal: $50
Total: $450
Valid 30 days. 50% deposit. 1-yr warranty.
Approve? Sign here.
Handle Tough Customers Who Haggle
They say “too high”? Ask: “What did others quote?” Beat by service, not price.
Break it down: “Parts alone $200 at Home Depot.” Shows fair.
Walk away polite: “Budget tight? Call for smaller fix.” Frees time for yes jobs.
Scale Quotes for Big Jobs
Whole repipe? Measure footage on-site. PEX $3/ft material, $80/hr labor. Buffer 20%.
Permits? Add $100-300—check city hall. Subcontractors? Their bid x1.2.
Phased pay: 30% start, 40% rough-in, 30% finish. Low risk.
Tools That Make Quoting Dead Simple
The AI prompt pack for plumbers handles quote math fast. Feed it job details like “toilet swap, 2 hours, $150 parts.” It spits a full quote with markups, buffers, and terms ready to send. Cuts guesswork so you quote right every time without spreadsheets.
Frequently Asked Questions
How often should I update my prices?
Check costs every 6 months. Raise 3-5% for inflation or supply jumps. Test on new customers first.
Flat rate or hourly—which wins more jobs?
Flat rate 80% of time. Customers hate open-ended bills. Use hourly only for diagnostics.
What if the job takes longer than quoted?
Buffer covers most. If not, eat it or upsell add-ons like “upgrade valve $75.” Track to fix next time.
Do I need site visits for every quote?
Yes for over $200 jobs. Phone guesses lose money 50% of time. Charge $75 diagnostic fee, credit to job.
How to quote emergencies?
x1.5 labor after 5pm. Minimum $300. Clear scope: “Emergency drain clear, after-hours.”
Can I quote over text?
Short jobs yes. Send photo quote template. Always confirm scope: “This the sink?


