hose, flexibility, equipment, tube, metallic, chrome, nature, steel, silver, metal, pipe, shower, water, pipeline, technology, construction, iron, circle, connection, objects, stainless, faucet, pressure, tool, repairing, plumber. How to build a plumbing contractor pricing and profit book
Photo by ds_30 on Pixabay

Guides

How to build a plumbing contractor pricing and profit book

A step-by-step method for plumbing contractor pricing and profit: truck daily cost, billable hours, four-stage task timing, and awkward-job surcharges.

What to take away

  • Plumbing contractor pricing and profit starts with one unitthe truck for a day, and the billable hours it actually sells.
  • Time each task in four stages (access and protection, the work, testing, cleanup) and price the awkward version as its own line.
  • Write the sentence your technician says when the awkward condition appears, then put it in the book. Unspoken surcharges get absorbed.
  • Set one materials markup policy and apply it everywhere, including customer-supplied parts.
  • Rebuild the numbers when labor, insurance, materials, or your route density move, because every task price descends from them.

The unit is a truck for a day

A service plumbing business does not sell hours. It sells a fitted-out van, a licensed plumber, and a day of both, and the van costs the same whether the phone rings or not.

So build the cost in that unit. Add the van's payment or depreciation, insurance, fuel, and maintenance. Add the plumber's burdened labor, which is wage plus payroll taxes, workers' compensation, benefits, and paid time that is not billed. Add the truck's share of the office, software, phones, licensing, and the owner draw the business has to support.

Call the total DC, the daily cost of one truck on the road.

Two omissions wreck this figure. Leaving out the owner draw turns a business into a job with paperwork. Using bare wage instead of burdened labor understates the cost by everything payroll adds.

For a sanity check on local wage levels, the Bureau of Labor Statistics publishes wage estimates by occupation, area, and industry through its Occupational Employment and Wage Statistics program. Treat those tables as an input, never as a price.

Count only the hours a customer pays for

Take the working day and subtract what nobody buys. That includes travel between jobs at your real average. It also includes supply house runs. Add setup and protection that sits outside quoted job time. Include paperwork and invoicing. Also subtract the share of the day your records show is lost to no-access calls and cancellations.

What is left is BH, billable hours per truck per day. In most service operations it is far smaller than the working day, and owners who guess at it guess high every time.

Recovery rate = DC divided by BH

Call that R. It is what an hour of on-job time must bring in before materials for the truck to pay for itself. R is not your hourly rate. It is the input under every price in the book.

Two contractors with identical DC and different BH derive rates that differ by more than either would believe. Measure BH first.

Profit is not a line you add at the end. It is what survives after DC, overhead, and the unbillable part of the day have been recovered, which is why the owner draw sits inside DC and why BH deserves as much attention as the wage rate. Every task price either protects that margin or eats into it.

Time the task in four stages

This is the step that separates a task book from a wish list, and it is where plumbing differs from trades that price by the job.

For each task on your menu, record the time it takes on the buildings you actually serve. Split that time four ways: access and protection, the work itself, testing, and cleanup.

A drain clearing in a finished basement spends most of its time in stage one.

A water heater swap spends most of its time in stage four, because the old unit has to leave with you.

Record condition and access next to the time. You are not collecting one number per task, you are collecting a distribution, and its shape tells you where to set the price and where a separate awkward line is needed. Keep timing until new jobs stop changing your view.

Build the task price

Task price = (measured time x R) + materials + per-job direct costs

Per-job direct costs attach to the job rather than the hour: disposal, permit fees you are not passing through separately, card processing, and task-specific consumables. What counts as a consumable rather than a material follows from what the van stocks, so make that stocking decision once and apply it to every job. The equipment checklist for new owners covers the van itself.

Materials need one written policy, not a decision per job. Mark them up by a set percentage, or bill at cost with a handling charge, or fold them into the task price. Pick one and hold it. Customer-supplied parts belong under the same policy, so the handling rule applies whether the part came off your van or out of the customer's box. The pricing and profit guide goes deeper on the policy.

TaskStages timedAwkward triggerSurcharge line
Drain clearingAccess, work, test, cleanupCast iron or a finished ceiling belowPriced separately
Water heater swapAccess, work, test, cleanupConfined space or failed shutoffPriced separately
Fixture replacementAccess, work, test, cleanupCorroded stop or no isolation valvePriced separately

The awkward version gets its own price

Every task has a version that takes twice as long: the fitting that will not break free, the cabinet that has to come out, the older pipe nobody expected.

Padding every price to cover it makes you expensive on the easy job and still wrong on the hard one. Define the awkward version as a separate priced item with an entry condition the technician can see and point at.

Then write the sentence the technician says when that condition appears, and put it in the task book. It should name the condition, name the added price, and ask for a yes.

Something close to: "The shutoff under this sink is corroded and will not hold. Replacing it is its own priced line in the book, and it adds time to this visit. I can do that now, or I can leave the water off and you can book it separately."

The sentence is the difference between a surcharge that gets applied and one that quietly disappears into the day.

Test the book on a bad day

A price that works only on a good day is not a price. Run three checks before you publish.

  • A day with one no-access call and one cancellation. Does the remaining work still cover DC?
  • A day where two jobs turn awkward. Does the surcharge line actually get used, or does the technician absorb it?
  • A day with one long drive to the edge of your territory. Does the travel charge cover the hours, not just the fuel?

When a test fails, the fix is usually in BH, in your minimum job value, or in route density. It is rarely in the headline price.

Compare with the market last

Only now look at local prices.

If your derived prices sit well above the market, do not cut them first. Ask which input is out of line. Sometimes it is service mix: too much of the day goes into services that contribute little toward DC, and the contribution analysis in the ranking of which plumbing services pay shows which ones carry their share of the truck.

Usually it is BH, because too much of the day goes to travel, supply runs, or unpaid diagnosis.

Sometimes it is the van itself, and the constraints are set out in the equipment and setup guide.

If your derived prices sit well below the market, recheck BH. A rate that low almost always means billable hours were overestimated.

What you may say about the prices

Anything you publish is advertising. The Federal Trade Commission enforces Section 5 of the FTC Act, which prohibits deceptive advertising, and the agency's guidance for small businesses requires claims to be truthful and substantiated, with an offer's conditions stated where the offer appears.

Three things follow. Publish ranges where work varies, and say what moves them. Put the conditions of any guarantee in the same block as the guarantee. And make sure a quoted price and a published price for the same task can be reconciled, because a customer who finds they differ will ask why.

Keep the derivation alive

Rebuild DC and BH twice a year, and immediately after a change in labor cost, insurance, material prices, or territory. Every task price descends from R, so one rebuild updates the whole book. That is the main reason to build it this way.

Keep the inputs where you can find them. The Internal Revenue Service standard for records that clearly show income and expenses covers the financial side, and stage times need the same discipline. If you are building the book from nothing, the phased startup plan puts the same steps in start-up order.

Common questions

What margin should a plumbing contractor aim for?

No single figure fits every shop, because margin is what remains after the truck's daily cost, the unbillable part of the day, and your overhead are all covered by the prices you charge. That number comes out of the derivation above, and a margin borrowed from someone else's operation arrives without the cost base it was built on. Shops that copy the target without copying the cost base are the ones that end up busy and broke.

Should I price by the hour or by the task?

By the task for anything you can measure, by the hour for genuinely unpredictable work. R sits underneath both, so you are not maintaining two systems or two sets of habits.

How many jobs do I need to time before I can price a task?

Enough that one unusual house does not move the average, and enough to see the shape of the distribution. When new measurements stop changing your view, you have enough.

What if a competitor is much cheaper?

They may carry a lower cost base, a denser route, a different service mix, or they may be losing money without knowing it. Matching a price without matching a cost base is how a shop ends up busy and broke.

More in Guides

Latest from Trade Desk