A practical method for plumbing businesses to price jobs profitably: true labor cost, billable hours, overhead, materials, flat-rate vs. time and materials, with a worked example.
Many small plumbing businesses price by copying competitors or by adding a bit to the technician’s hourly wage. Both can leave the business busy but unprofitable. A technician paid $30 an hour does not cost $30 an hour: payroll taxes, workers’ compensation, insurance, vehicles, tools, office staff and unbillable time all have to be paid from the hours you can actually bill to customers.
To record clock-ins, breaks and overtime automatically, see EZTime time and attendance software.
The method below is a framework. Every number in the examples is fictional; use your own figures from payroll, your accounts and your time records.
Start with the wage and add the costs that come with it: employer payroll taxes, workers’ compensation, benefits, paid time off and any other employment costs. Then account for unbillable time: driving between jobs, picking up parts, training, callbacks and admin. If a technician is paid for 2,080 hours a year but only 1,400 of those hours are billable, every billable hour has to cover the cost of about 1.5 paid hours.
| Item | Amount |
|---|---|
| Annual wages (2,080 hours × $30.00) | $62,400 |
| Payroll taxes, workers’ comp, benefits and PTO (example: 30%) | $18,720 |
| Total annual employment cost | $81,120 |
| Billable hours per year | 1,400 |
| Labor cost per billable hour | $57.94 |
Our labor burden calculator helps with the burden rate, and our work hours in a year guide explains annual hours.
Overhead is everything the business spends that is not tied to a single job: vehicles and fuel, insurance, rent, office staff, software, phones, marketing, licenses and tools. Add up a year’s overhead and divide by total billable hours across all technicians. With $180,000 of overhead and four technicians billing 1,400 hours each (5,600 hours), overhead is about $32.14 per billable hour. See our overhead rate calculator.
Add labor cost and overhead per billable hour to get your break-even hourly rate, then add your target profit margin. Using the figures above: $57.94 + $32.14 = $90.08 break-even. To earn a 20% profit margin on the price, divide by 0.80: $90.08 ÷ 0.80 = $112.60 an hour. Note the difference between margin and markup: a 20% margin is not the same as a 20% markup. Our profit margin calculator and selling price calculator show both.
Materials need their own markup to cover the time spent sourcing, collecting and stocking parts, warranty risk and the cost of carrying stock. Decide on a consistent markup policy, which can be tiered: a higher percentage on small, low-cost parts and a lower one on expensive fixtures such as water heaters. Track actual material costs per job so quotes stay current when supplier prices change.
Estimate the labor hours for the job from experience and, better still, from data. If your technicians record time per job, you can see how long common jobs actually take, for example replacing a 40-gallon water heater, clearing a main line or installing a kitchen faucet, including travel and cleanup. Over time this gives you a reliable price book. See job costing with time tracking and our job labor cost calculator.
| Item | Calculation | Amount |
|---|---|---|
| Labor | 3.5 hours × $112.60 | $394.10 |
| Materials | Heater and fittings at cost $900 + 25% markup | $1,125.00 |
| Disposal fee | Fixed | $40.00 |
| Permit | Pass-through, as charged | $75.00 |
| Total quote | $1,634.10 |
Round as your pricing policy allows, and check the result against local market prices. If you are far above the market, look at billable hours and overhead before cutting the rate.
| Model | How it works | Pros | Cons |
|---|---|---|---|
| Flat rate | A fixed price per task from a price book | Customers know the price upfront; rewards efficient technicians | Needs good data; risk on unusual jobs |
| Time and materials | Hours worked × rate plus materials | Fair for uncertain or complex work | Customers worry about the final bill |
| Hybrid | Flat rate for common tasks, time and materials for diagnostics or complex work | Flexible | Needs clear explanation |
Whichever you use, the rate behind it should come from steps 1 to 3. Explain trip or diagnostic charges clearly before arriving.
Night, weekend and holiday calls cost more to deliver. Technicians may be paid overtime or an on-call or call-out premium, the work disrupts the next day’s schedule and the job often takes longer in the dark or without supplier access. Price these calls with a clear after-hours rate or a fixed emergency call-out fee, calculated from the real extra cost rather than a guess. For non-exempt technicians, remember that hours worked over 40 in the workweek must be paid at time and a half, and any differential you pay belongs in the regular rate. See on-call pay rules and on-call schedules.
A clear quote wins more work than a cheap one. Put it in writing, describe the scope in plain words, list what is included and excluded, state how long the price is valid and explain what happens if the technician finds hidden problems once work starts. For larger jobs, offering two or three options, such as repair versus replacement, lets the customer choose without feeling pushed. Record which quotes are accepted and which are not; a low acceptance rate on one job type may point to a price, a presentation problem or a market that does not value that service.
Quotes are only as good as the hours behind them. Compare estimated hours with actual hours on each job every month. If certain jobs consistently run over, raise the estimate or find out why: missing parts, unclear scope or travel. Review your hourly rate at least once a year and whenever wages, insurance or fuel costs change significantly.
With EZTime, technicians clock in and out of each job from the mobile app, with optional GPS location, and time can be assigned to jobs and clients with job and client tracking. That gives you actual hours per job type for your price book and job costing, plus accurate hours for payroll. See EZTime for plumbing and HVAC.
| Leak | Fix |
|---|---|
| Travel and parking not priced | Add a trip charge or include travel in the rate |
| Small jobs priced like big ones | Set a minimum charge |
| Materials at cost | Add a markup for handling, storage and warranty |
| Callbacks not tracked | Log callback hours by job and technician |
| Estimates never checked | Compare estimated and actual hours weekly |
Use our labor burden calculator, overhead rate calculator and profit margin calculator.
Maintenance agreements smooth out seasonal swings. Price them from the expected visits per year, the time each visit takes, travel and any included parts or discounts. Add the value of priority scheduling. Review renewal rates and the real time spent each year, and adjust prices if visits take longer than planned. See how to start an HVAC business for a similar model.
Tick each item that is true for your business.
0 of 6. You may be working for less than you think. Start with true labor cost.
It depends on your costs and market. Calculate your true labor cost and overhead per billable hour, add your target profit and compare with local prices.
Flat rate gives customers certainty and rewards efficiency but needs good data. Time and materials suits uncertain work. Many businesses use both.
Divide your annual overhead costs by the total billable hours across your technicians.
Set a consistent policy that covers sourcing time, warranty risk and stock costs. Many businesses use tiered markups by part cost.
Many businesses use a trip charge or build travel into the hourly rate. Explain it clearly upfront.
Compare estimated and actual hours per job and track profit margin by job type each month.
EZTime tags hours by job, client and role and shows real-time labor costing on the schedule, so estimates can be checked against actual hours. Pricing starts at $2 per employee each month, with a $20 monthly minimum.