EstimationCostsPlanningTrades

How to Price a Job So You Don't Lose Money on It

GanttPad Team··10 min read
← Back to blog

Every contractor has had the job that looked fine on paper and finished in the red. The quote was competitive, the customer was happy to sign, and somewhere between the first day and the final invoice the profit disappeared.

It usually isn't one big mistake. It's a rate that never covered the truck, four hours of supply-house runs nobody counted, a day of waiting on an inspector, and a margin that turned out to be a markup. Each one is small. Together they're the difference between a good year and a busy one.

This guide walks through pricing a job the way it actually has to be done: from the work, not from the gut. Six steps and one worked example — a three-day kitchen re-pipe — from first walkthrough to the number you put on the quote.

Most jobs lose money in the schedule, not the quote

Here's the thing that catches people out. A quote is a single number, but the cost behind it is spread across days on a calendar. If you price from the number, you can't see the two days your lead is standing around waiting for the tiler. If you price from the schedule, you can.

That's why this method starts with the work and the calendar, not with "what did we charge for the last one like this."

Step 1. Break the job into work that actually happens

Write down every piece of work between the walkthrough and the final clean-up. Not phases — the actual work.

The test is whether you could hand a line to someone and have them know what to do. "Bathroom" is not a task. "Re-route DWV stack" is. If you're not used to breaking work down this way, the top-down vs bottom-up guide covers both approaches to getting from a job to a list.

Include the work nobody likes to write down, because it's the work nobody prices:

  • Permit pickup, and time spent waiting at the counter
  • The dump run and the dumpster
  • Supply-house trips, including the second one for the fitting you didn't know you needed
  • Protection, masking, and the final clean
  • Attending the inspection

If it takes a person an hour, it belongs on the list. A list that only has the interesting work on it will always come in short.

Step 2. Put honest hours on each line

Not optimistic hours. Not the hours it took the one time everything went right.

Two things help here. First, use your last three similar jobs as the reference rather than your memory of them — memory rounds down. Second, put the hours against the person who'll do the work, not against the job as a whole. Six hours of running PEX with two people on it is twelve labor hours, and it's twelve hours you pay for.

Mark anything you're genuinely unsure about. You'll come back to it in step 5.

Step 3. Build a rate that covers what the person actually costs

This is where most quotes quietly break. A plumber on $32 an hour does not cost you $32 an hour.

Work out the real cost of an hour, one trade at a time:

LinePer hour
Wage$32.00
Payroll tax and workers' comp (~22%)$7.04
Holiday, sick days, training$3.00
Truck, fuel, tools, insurance$12.00
Cost per hour worked$54.04
Divided by 75% billable time$72.05

That last line is the one people skip, and it's the biggest. Nobody bills eight hours out of an eight-hour day. Drive time, supply runs, quoting, paperwork, warranty calls — on a good week a field hand is on billable work maybe 75% of the time. If you only charge for billable hours, those hours have to carry the unbillable ones.

Run the same arithmetic for each trade or level you employ. For this example: lead plumber $72/hr, apprentice $38/hr. These are cost rates, not charge-out rates — margin comes later, in step 6, and adding it here as well is how you end up double-counting and losing the bid.

Step 4. Add materials, and add them at what they cost you today

Price materials off a current supplier quote, not off the last job. Include the small stuff — fittings, fasteners, sealant, blades — as a consumables line rather than pretending it's free. Two to four percent of the material total is a reasonable placeholder if you've never measured it.

Permits, dumpster hire, equipment rental and parking go in here too. They're job costs; they just aren't labor.

Step 5. Add a buffer for what always goes wrong

Something will. The valve behind the wall is a size you don't stock, the joist is where the stack needs to be, the inspector wants a second vent. On any job with demolition or an old building involved, plan on it.

A flat percentage on top of direct cost is the simplest version that works: 5% on new construction, 10% on a remodel, 15% or more when you're opening up a wall in a house built before 1970.

The buffer is not padding and it isn't dishonesty. It's the price of the uncertainty you're carrying on the customer's behalf. If you don't carry it, you're absorbing it — which is another way of saying you're paying for it. Our guide to common risk-management mistakes covers the difference between a buffer that protects you and one that just hides a vague plan.

Step 6. Add margin — and know it isn't markup

Margin and markup are not the same thing, and confusing them is a reliable way to work all year for less than you thought.

  • Markup is a percentage added to your cost. Cost $6,620 + 25% markup = $8,275.
  • Margin is a percentage of the final price. To land 25% margin, divide by 0.75: $6,620 ÷ 0.75 = $8,827.

Same "25%", $550 apart on a single mid-size job. Run twenty of those in a year and you've lost more than a truck.

Decide the margin you need to run the business — overheads, office, slow months, an actual profit — and price to it. Then check the number against the market. If your honest price is well above what the job goes for locally, that's information about your costs or your niche, not a reason to quietly cut the margin.

The worked example: a three-day kitchen re-pipe

A copper-to-PEX re-pipe in a 1970s house. Tub and toilet reset at the end, tile by others.

Labor

TaskWhoHours
Walkthrough and measureLead2
Permit pickup and water shutoffApprentice2
Demo old fixtures and tile accessApprentice6
Haul-off and dumpster runApprentice4
Re-route DWV stackLead4
Run new PEX hot/coldLead + apprentice6 + 6
Tub drain and P-trap installLead4
Shower valve rough-inLead4
Pressure and DWV testLead2
Attend inspectionLead1
Set tub and surroundLead + apprentice4 + 4
Set toilet and fixturesLead4

Lead: 31 hours × $72 = $2,232 Apprentice: 22 hours × $38 = $836 Labor total: $3,068

Everything else

LineCost
Materials (PEX, fittings, valve, tub, toilet)$2,400
Permit and dumpster$550
Direct cost$6,018
Buffer, 10% (remodel, pre-1980 house)$602
Cost to carry the job$6,620
Margin at 25% ($6,620 ÷ 0.75)$2,207
Quote$8,827 — call it $8,830

Now look at what that tells you that a lump-sum guess wouldn't. Labor is 46% of the price. If the re-pipe takes a day longer than planned, roughly $850 comes straight out of the margin — a third of it. That's not a reason to panic; it's a reason to know which day is the risky one before you start.

The four ways the money actually leaks

Dead time between trades. Your lead finishes rough-in Tuesday and can't set fixtures until the tiler is done Thursday. If he's on your payroll and standing on that site, you're paying for Wednesday. The fix isn't a faster tiler — it's knowing on Monday that Wednesday is open, so you can put him somewhere else. That's what a day-level job schedule is for.

Unbilled hours. Every supply run and every quote written on a Sunday is real cost. The 75% utilization line in step 3 is what carries them. Leave it out and you'll be short on every job you ever price.

The "while you're here" job. The customer asks for one more shut-off valve. It takes forty minutes and you don't charge for it, because it feels small and you're standing right there. Do that four times on one job and you've given away a half-day. Price it, even small — or say plainly that you're including it, so it registers as something you gave.

Rework and callbacks. These aren't in any estimate, which is exactly why they hurt. Track them for six months and you'll have a real number to build into your buffer instead of a guess.

Check the price against the calendar before you send it

Put the tasks on a timeline with their real durations and dependencies, and look at the shape of the job rather than the total. Two things show up immediately: the days a crew is booked but not productive, and the chain of work that actually controls the finish date. That chain is the critical path, and on a priced job it's also the chain where every day of slip costs you money directly.

If the timeline shows your lead idle on Wednesday, you have a scheduling problem worth fixing before you have a pricing problem worth arguing about.

What to show the customer

Show the sequence and the dates. Show what you're assuming — access, water off, who supplies fixtures, when decisions are needed. Don't show your loaded rates or your margin; those are your business, not the customer's.

A quote with a timeline attached lands differently from a quote with a number on it. The customer can see what they're buying, and when a change comes along later you have a shared picture to talk about instead of two different memories. Our guide to communicating an estimate to the customer covers how to present ranges and assumptions without inviting a negotiation on every line.

The short version

Price from the work. Build a rate that carries the truck, the tax and the hours nobody bills. Buffer the uncertainty you're actually carrying. Add margin, not markup. Then check the whole thing against a calendar before it goes out.

None of it takes long once the numbers are set up. What takes long is finding out in November which jobs you lost money on.