Job profitability guide

Why Contractors Lose Money on Jobs: The Underbidding Math

You didn't lose money because the customer haggled. You lost it because you quoted from memory, and the memory was a year old. Here's the arithmetic, line by line.

The $500 job that paid you nothing

A furnace blower motor dies. The tech has done this job thirty times, so he quotes $500 without opening anything. That number formed in his head back when the motor cost $190. The customer says yes on the spot, which should have been the first warning.

Here's where the $500 actually went:

Line itemAmount
Quote (from memory)$500.00
Blower motor at today's counter price−$268.00
Consumables: foil tape, sealant, fasteners, rags−$14.00
Card processing (2.9% + $0.30 on $500)−$14.80
Fuel: 60 miles round trip, 18 mpg, $3.60/gal−$12.00
What's left$191.20

Now the hours. Not the wrench-time hours. All of them.

Where the time wentHours
Drive (45 minutes each way)1.5
Diagnosis (unpaid, before the quote)0.5
Install2.5
Writing the quote, invoicing, chasing payment0.5
Total5.0

$191.20 divided by 5.0 hours is $38.24 an hour. That looks survivable until you remember it isn't pay. It's revenue. None of your overhead is in it yet: no truck payment, no liability insurance, no phone, no tool replacement. Charge that hour even a lean $25 overhead share and you took home $13.24 an hour. There are warehouse stores paying more than that to people who never crawl under a furnace, and they cover the vehicle.

Nothing about this job was unusual. The tech worked clean, the customer paid same-day. The only thing broken was the number, and it was broken before he rang the doorbell.

The costs contractors forget

Underbidding is rarely one big mistake. It's six small ones that always travel together:

None of these show up when you price a job in your head. All of them show up at the bank. That's the whole argument for applying real markup to real costs instead of a gut number to a guess.

Your break-even hourly rate

There is one number that ends underbidding, and most contractors have never calculated it:

Break-even rate = (annual overhead + target salary) ÷ billable hours

Worked example. Say your overhead runs $47,600 a year: truck payment and commercial auto, liability insurance, health coverage, fuel, tool replacement, phone and software, license renewals, marketing, bookkeeping. For a one-truck operation that's lean, not padded. Say you want to pay yourself $70,000.

($47,600 + $70,000) ÷ 1,200 billable hours = $98 per hour

Why 1,200 and not 2,080? Because billable hours are not working hours. Fifty working weeks at 40 hours is 2,000 hours, and a real field schedule loses about 40% of them to driving, diagnosing, quoting, supply runs, callbacks, and paperwork. That leaves 1,200 hours anyone actually pays for. Divide by 2,000 and you'd get $58.80, a rate that feels safe and bankrupts you slowly.

Now hold the blower motor job against that number. It consumed 5.0 hours, so at break-even it needed to clear 5.0 × $98 = $490 after materials and fees. It cleared $191.20. That single "fine" job came in $298.80 short of break-even, and the tech left the driveway feeling good about it.

Want the uncomfortable version? Pull up your last completed job and run it through the free contractor quote calculator. Real material cost, every hour including the drive, your markup. See what you actually made. It takes two minutes and it usually stings.

Run your last job through it

Price drift: how a profitable template goes stale

Templates are good. Stale templates are how profitable jobs rot in place. You priced the job carefully once, the math was right, and then you copied that quote for months while the underlying prices moved.

Say you built a water heater swap template in March: $589 for the unit, $94 for fittings, flex lines, and a pan. Materials, $683. You quote the job at $1,400, so everything above materials, $717, covers your labor, overhead, and profit. By June the same unit is $649 and the fittings basket is $103. Materials are now $752. You're still sending the March quote, so the job now throws off $648 instead of $717. That's $69 gone per job, and you never made a decision. Do that job twice a month and the drift costs you $138 a month, $1,656 a year, on one template. Most contractors are running ten.

The fix isn't re-pricing everything quarterly. It's pricing from live numbers instead of saved ones. FieldQuote pulls current prices from 16 suppliers, including Home Depot, Lowe's, Grainger, and Ferguson, so the material line in your quote is what the store charges today, not what it charged the day you built the template. The same drift hits every trade: it's why pricing HVAC jobs off last season's parts costs goes wrong, and why a plumbing estimate copied across a copper price move quietly loses money.

The 60-second profit check habit

You don't need a spreadsheet night every week. You need one habit: before any quote leaves your phone, run four checks.

That last one is the test of your whole setup. If you can't see the profit line before you hit send, you're not quoting. You're guessing, and the blower motor job is what guessing pays.

Job profitability FAQ

Why do contractors lose money on jobs?

Because the quote is built from memory instead of current numbers. Material prices move, drive time and diagnosis time go unbilled, and processing fees and consumables come off the top. Each one is small, but stacked on a $500 job they can take your real wage below what a fast-food shift pays.

How do I calculate my break-even hourly rate?

Add your annual overhead to the salary you want, then divide by your billable hours, not your working hours. Example: $47,600 of overhead plus a $70,000 salary is $117,600. Divided by 1,200 billable hours, that is $98 per hour before you have made a dollar of profit.

What costs do contractors forget when quoting?

Drive time, time spent diagnosing and writing the quote, consumables and shop supplies, card processing fees, callbacks and warranty returns, insurance allocated per job-hour, and the second trip for the part you did not have on the truck.

How do I know if a quote is profitable before sending it?

Price the materials at today's cost, count every hour the job will take including the drive, apply your markup, and look at the profit line in dollars. If your quoting tool does not show you a profit line, you are guessing.

How often should I update my pricing?

Check material prices on every quote, not on a schedule. A template priced in March can quietly lose money by June. FieldQuote pulls live prices from 16 suppliers, including Home Depot, Lowe's, Grainger, and Ferguson, so the number in your quote is the number at the store today.

Related guides

Stop finding out at the bank

Run the numbers before the quote goes out, not after the check clears. No account needed for the calculator.

Run a free profit check Get FieldQuote on iOS