What is job costing? A worked example for contractors

Affiliate link: we may earn a commission if you sign up, at no extra cost to you.

Job costing means adding up what one job actually cost you, line by line, and holding that next to what you estimated and what you charged. The gap between the estimate and the real number is the useful part. It tells you which line ate the profit, so the next quote can fix it.

That's the whole idea. The rest of this post walks one made-up job from quote to final count so you can see it with numbers.

The estimate

Say you quote a deck rebuild at $7,500. Before you priced it, you worked out your overhead rate: $60,000 a year of costs that don't belong to any one job (truck, insurance, phone, software, the office), spread over 3,000 labor hours a year. That's $20 for every labor hour.

Your estimate looked like this:

Direct cost comes to $5,300. Overhead is 40 hours times $20, or $800. Full job cost: $6,100. At $7,500 you expected $1,400 profit, an 18.67% margin.

What the job really cost

The crew finished in 52 hours, not 40. Two joists were rotten under the old boards and there was an extra run to the lumber yard. Materials came in $250 over. Everything else landed where you said it would.

Estimate vs actual for the example deck job
LineEstimateActualDifference
Labor ($45/hour)$1,800 (40 h)$2,340 (52 h)+$540
Materials$2,400$2,650+$250
Electrician$600$600$0
Dumpster$350$350$0
Permit$150$150$0
Direct cost$5,300$6,090+$790
Overhead ($20/labor hour)$800$1,040+$240
Full job cost$6,100$7,130+$1,030
Profit at $7,500$1,400 (18.67%)$370 (4.93%)−$1,030

The customer paid the same $7,500 either way. You kept $370.

Reading the gap

Of the $1,030 you lost, $780 traces back to those 12 extra hours: $540 in labor and $240 in overhead. The materials overrun was the smaller problem.

Why does overhead go up when the job runs long? Your rent and truck payment didn't change. But those 12 hours were hours the crew couldn't spend on the next paying job, and your overhead rate assumes every hour carries its $20 share. Leave it out and a slow job looks better than it was.

And the rotten joists? If your quote didn't cover hidden damage, that was extra work, and extra work belongs on a change order that the customer signs before you do it. A change order template takes a few minutes on site. Bill the extra hours and lumber that way and the margin stays close to what you estimated.

One job running over is a story. Five decks in a row running 20 to 30% over on labor is a pricing problem, and that's the pattern job costing exists to catch.

Tracking it without software

You need two habits. Everything else is arithmetic.

First, hours by job. Each person writes down their hours on that job every day, not from memory at the end of the week. One time card per job works, with the job name in the box at the top. So does the back of a notebook, if it's honest.

Second, receipts by job. Write the job name on every receipt before it goes in the truck's door pocket. If your supplier lets you put a job name or PO number on the account invoice, use it. That saves guessing later.

When the job closes, put the actuals into the job costing calculator next to your price and compare them with the estimate. If your labor rate is only the wage, you're undercounting; the labor burden calculator adds payroll taxes and workers' comp to get the real hourly cost.

I'd do this on every job for a couple of months, then on a sample after that. The first few will probably surprise you.

When the paper version gets old

Doing this by hand works until you have several crews and dozens of open jobs. Then the receipts pile up faster than anyone types them in.

Jobber has job costing built in. Per its feature page, labor cost comes from the hours each person tracks in the app times the rate you set for them. Material costs carry over from the quote's line items, and receipts can be logged against the job from the field. Price, costs, profit and margin stay up to date while the job is running, and it can flag a job that drops below your profit target. Its pricing page lists job costing on the Grow plan and above, and the 14-day free trial gives full access to Grow, with no credit card needed. Sign up through our link and you also get 20% off your first 6 months.

Try Jobber free for 14 days (opens in a new tab)

Comparing a few options first? Our field service software guide puts them side by side.

The deck job is an example with made-up numbers. This is general information, not accounting or tax advice; your bookkeeper or accountant can tell you how to set up job costs in your own books.