Skip to content
True Trade Cost

Job Costing: How to Tell if a Job Actually Made Money

Updated

A job notebook with columns of numbers and a highlighter on a workbench

Job costing takes 5 numbers per job, and in our painting sample those 5 numbers turn a $3,400 job that was quoted to leave $950 into one that lost $373.50. The numbers are the quoted price, estimated hours, estimated materials, actual hours and actual materials. Multiply the hours by your break-even rate, subtract, and you know if the job made money.

The examples below are the sample Job Log rows that ship with our calculators for 8 trades, worked out with each trade's own break-even rate. They are made-up jobs built to show how the log works. The reasons they ran over are modelled on problems owners we studied described in their own businesses.

The five numbers, and the one rate that turns them into profit

Two of the five numbers come from the quote and three come after the job; the rate that ties them together is your break-even rate, not the wage you pay.

Number When you write it Where it comes from
Quoted price When you send the quote The quote the customer accepted
Estimated hours When you send the quote Total crew hours, not days (2 people x 8 hours = 16)
Estimated materials and outside costs When you send the quote Materials, dump fees, rentals, subs, permits
Actual hours The day the job ends Timesheets, a notebook, a phone clock
Actual materials and outside costs The day the job ends That job's receipts, including the second supply run

The formula is left over = price - actual materials - (actual hours x break-even rate). The break-even rate is what each billable hour has to bring in to cover wages, payroll costs and overhead. It is explained step by step in the true hourly rate guide, and the free calculator works yours out.

Use the wage instead and every job looks better than it was. The painting sample's break-even rate is $49.25 an hour; its best-paid person earns $35.

Worked example: a $3,400 painting job that lost $373.50

The job was quoted at 40 hours and took 62, so the $950 it was meant to leave became a $373.50 loss. This is the losing row in the sample Job Log of the Painting Pricing Calculator: an exterior trim repaint, break-even rate $49.25.

Estimate Actual Difference
Quoted price $3,400 $3,400 none
Hours 40 62 +22 (55% over)
Labour at $49.25 an hour $1,970 $3,053.50 +$1,083.50
Materials $480 $720 +$240
Left over $950 minus $373.50 $1,323.50 gone

The extra hours cost 4.5 times more than the extra materials. That is the usual shape of a losing job, as the next section shows.

The row is modelled on a common painting problem: the same part of the work, like soffits and fascia, runs over on job after job. Job costing tells you by how much, so you can raise that one line instead of guessing. Here the trim job took 55% more hours than quoted, so if that happens again, the hours on the trim line of the price list need to go up by about that much. Rot found mid-job should also have been priced as a change order before it was fixed.

A normal row from the same log for comparison: a $1,900 job estimated at 20 hours and $310 took 21 hours and $300, leaving $565.75 against the $605 planned.

Losing jobs from 8 trades: hours, not materials, did the damage

In every losing or thin row across the 8 sample logs, the extra hours cost more than the extra materials, usually several times more. Left over is worked out the same way in each: price minus actual materials minus actual hours at that trade's break-even rate.

Trade (sample row) Quoted Hours: est. to actual Left over: planned to actual Extra hours cost Extra materials
House cleaning $255 5 to 7.5 (+50%) $18.20 to minus $94.20 $110.40 $2
Lawn care, per month $195 2.6 to 3.9 (+50%) $32.89 to minus $42.67 $75.56 $0
Pressure washing $250 2 to 5 (+150%) $116.38 to minus $61.55 $162.93 $15
Painting $3,400 40 to 62 (+55%) $950 to minus $373.50 $1,083.50 $240
Plumbing $2,150 14 to 24 (+71%) $530.70 to minus $218.80 $699.50 $50
Fencing $4,300 30 to 49 (+63%) $991.90 to minus $288.23 $1,050.13 $230
Drywall $14,200 120 to 162 (+35%) $2,664 to minus $668.60 $2,532.60 $800
Roofing $14,200 80 to 118 (+48%) $3,416 to $211.10 (thin) $2,604.90 $600

Break-even rates used: cleaning $44.16, lawn $58.12, pressure washing $54.31, painting $49.25, plumbing $69.95, fencing $55.27, drywall $60.30, roofing $68.55. The winning rows in the same logs mostly finished within about 6% of their estimated hours.

Why jobs run over: four common causes

Each of the sample losses is modelled on a problem owners we studied described, and in each one the fix came from writing the hours next to the estimate.

  • Cleaning, a flat price too low for the house. A clean quoted as a short visit turns into a full day once the crew is inside a house that is dirtier or bigger than it looked. The sample row planned 5 hours and took 7.5. One cleaning owner we studied fixed this by moving to hourly pricing with a four-hour minimum.
  • Lawn, a yard that changed. A yard that was quick when you priced it gets new trees, beds or fencing, and every visit now takes longer at the same price. If your route averages a healthy rate per man-hour but two lawns earn half of it, time those two and raise them, instead of raising everyone.
  • Pressure washing, a minimum job that grew. A small job at a minimum price is planned for about an hour. The sample row, at $250, took 5 hours, so it paid about $50 an hour before materials against a $54.31 break-even rate.
  • Drywall, walls taller than the plans. Prints show 8 ft walls, but the house has 9 to 10 ft walls and vaults. That is 12% to 25% more board and finishing on every wall before counting the vaults, and on one drywall owner's job it took a $17,000 price to about $26,000 to $27,000 of work.

The sample rows for fencing, roofing and plumbing have no cause written on them, so we don't give one.

Read the log monthly for patterns, not single jobs

One job over is noise; the same job type over three times is a wrong production rate on your price list. A useful job costing sheet shows three things: how accurate your estimates were, which jobs, customers and crews make money, and where materials are wasted.

What to check once a month:

Check What it tells you Example
Average hours over If most jobs run 15% long, your hours per unit are too low The sample logs show average hours over at the top
The job type that loses Which work to reprice or stop chasing Tall walls on drywall, second-storey trim on painting
Steps missing from the quote A task that keeps showing up in actuals belongs on the price list A machined part quoted at 7 hours takes days because deburring was never on the quote
The finish stage Close-out time is the most underestimated Split each job into prep, build and finish; finish is where most estimates come up short

Compare against the estimate, not the bank balance. Say a job is estimated at 33 hours and runs to 40. If the crew costs $60 an hour, those 7 extra hours are $420, which can wipe out a 10% profit on a $4,000 job. The bank account can still look fine, because overhead money for next month is sitting in it. Where that overhead money should go is covered in overhead and profit.

Turn the log into better estimates

Change the production rate on your price list, not just the next quote, because that is where the 55% overrun came from. If jobs you priced at 40 hours take 62, your hours per room, per square or per linear foot are too low.

  • Hours per unit. Divide actual hours by the job's units (rooms, squares, feet) and use the average of your last several jobs.
  • Minimums. The cleaning and pressure washing rows show small jobs lose on drive and setup. The log tells you the job size below which a minimum charge has to apply.
  • Which work to chase. After a year or two of rows, you can give a new customer a realistic number from similar past jobs in minutes, and you can see which job types earn the most per hour and go after more of them.
  • Profit you add. If the log shows your profit is thinner than planned, check the percentage you add with markup vs margin.

The log also records quotes you lost. What your win rate says about your prices is in quote vs estimate.

A job costing template you can copy

Ten columns are enough; log every quote when you send it, including the ones you lose.

Quote # Customer Quoted price Est. hours Est. materials Won / Lost Actual hours Actual materials Left over Hours over
PT-162 (sample) $3,400 40 $480 Won 62 $720 minus $373.50 55%
  • Left over = quoted price - actual materials - (actual hours x break-even rate).
  • Hours over = actual hours / estimated hours - 1.

Each of our trade calculators has this built in as the Job Log tab. It uses your own break-even rate from the Shop Setup tab and marks each job MADE MONEY, THIN (under half the profit you expected) or LOST MONEY, with your win rate, average hours over and number of losing jobs at the top.

Start with the next job you finish: five numbers, about two minutes.

Questions owners ask

What is job costing?

Comparing what a job was supposed to cost with what it really cost. You log the quoted price, estimated hours and estimated materials when you send the quote, then actual hours and actual materials when the job is done. In the painting sample on this page, that comparison turns a job planned to leave $950 into one that lost $373.50.

How do you do job costing for a small business?

One row per job in a spreadsheet. Fill in five numbers, multiply actual hours by your break-even rate, and subtract that and actual materials from the price. It takes about two minutes per job if you do it the day the job ends.

What is the difference between job costing and estimating?

Timing. Estimating happens before the job and predicts hours and materials. Job costing happens after and checks the prediction. The log from one feeds the other: if jobs keep running 20% over on hours, the estimate's hours are wrong, not the crew.

Do I need job costing software?

No. The math is one subtraction per job, and a spreadsheet with ten columns handles it. Software earns its keep once several crews clock in from phones and you want hours pulled in automatically.

What hourly rate should I use for actual labour in job costing?

Your break-even rate, not the wage. It includes payroll costs and overhead, so the leftover is real profit. In the painting sample that is $49.25 an hour against a top wage of $35; using the wage would hide the loss.

How often should I review job costs?

Monthly, on top of costing every job as it finishes. One bad job is noise. The same type of job running over three times in a month is a production rate you need to change on your price list.