Job Costing for Contractors: Turn Actuals Into Prices

July 31, 2026 · Pricebookr Team job costingpricingprice bookmargins

Job costing for contractors means measuring what a finished job actually cost you — fully burdened labor, materials, subs, and truck charges — then comparing that to what your price book estimated and what the customer paid. Run it on every job and the variance pattern tells you exactly which price book lines are underpriced. The report isn't the deliverable; the price change is.

Why job costing for contractors stalls at the last step

Search "job costing" and you'll find the same advice everywhere: capture time in the field, code materials to the job, review the report. All correct. All incomplete. Tracking tells you a job lost money. It doesn't tell you what to change so the next forty jobs don't.

The gap is measurable. A Housecall Pro analysis of over a million jobs found roughly one in three estimates didn't match the final invoice, with HVAC the trade most likely to run over budget.

The upside of closing that loop is equally measurable. The 2024 ACCA Financial Benchmarking Study put median HVAC net profit at 5.8% while the top quartile averaged 13.2%. Same trucks, same trade, same suppliers. The difference is whether last month's actuals ever made it back into the price book.

Job costing is a pricing input, not an accounting chore. If your variance review doesn't end with an edit to a price book line, you wasted the review.

The four numbers you need on every job

Two traps live in that list. First, use a burdened labor rate, not a wage. Payroll taxes, workers' comp, benefits, and unbillable hours typically add 25–40% on top of base pay, so a $35/hour tech really costs you closer to $47. If you haven't run that math, start with how to calculate your labor burden rate.

Second, margin is not markup. Dividing profit by cost instead of revenue will flatter every job on your list. We covered that trap in markup vs margin for contractors, and the margin and markup calculator converts between the two in a couple of clicks.

A worked example: the repair that looked profitable

Condenser fan motor replacement, sold flat-rate at $685.

Cost lineEstimatedActualVariance
Labor (burdened, $48/hr)1.5 hrs — $72.002.6 hrs — $124.80+$52.80
Fan motor$145.00$186.00+$41.00
Truck & disposal$15.00$15.00
Return trip (capacitor)$0.00$50.80+$50.80
Total cost$232.00$376.60+$144.60
Gross margin66%45%−21 pts

Nobody lost money here, which is why this job never gets a second look. But 45% instead of 66% on a line you run 40 times a quarter is roughly $12,000 of margin that quietly evaporated. The job wasn't the problem. The price book line was — it was built on a 1.5-hour assumption and a stale motor cost.

Reading the variance: three patterns, three different fixes

1. Labor hour drift

The same task consistently runs over its booked hours, across multiple techs. This is the expensive pattern because it hides inside "we were busy." The fix is to change the hours on the price book line to what the work actually takes. Coaching a tech to hit a number the task can't be done in just produces callbacks.

2. Material cost creep

Labor lands on target but the parts cost more than the book says. Supplier increases don't announce themselves, and a 12-month-old material cost is a guess. Re-cost the item and let the sell price recalculate to your target margin. If material volatility is a recurring theme in your trade, adjusting pricing when material costs rise covers the cadence.

3. Scope leak

Extra trips, parts that never made it onto the ticket, "while I'm here" work. This one is not a price problem, and raising the price won't fix it. It's a dispatch, diagnosis, or callback-policy problem. Repricing to cover sloppy scope just makes you expensive and still unprofitable.

How to turn variance into price book edits

This is the step the software guides skip. Once a month, block 45 minutes and work this sequence:

  1. Pull the last 90 days of completed jobs with estimated cost, actual cost, and revenue.
  2. Group by price book line item, not by job. One bad job is noise. One bad line item repeated is a pricing defect.
  3. Flag any line that appears three or more times with negative margin variance. Three is enough to rule out a one-off.
  4. Diagnose the pattern — labor drift, material creep, or scope leak — using the three tests above.
  5. Edit the inputs, not the sell price. Change the hours or the material cost, then let the price recalculate to your target margin. Editing the sell price directly hides the real cost and the problem comes back next quarter.
  6. Date-stamp the change and recheck the same line in 60 days.

The practical bottleneck is usually that the "price book" lives in three places — a spreadsheet, the estimating template, and whatever line items got typed into Jobber last year. When they drift apart, an edit made in one place never reaches the quote your tech sends. Keeping one master price book that syncs to your field software (that's the problem Pricebookr exists to solve) means the fix you make on Monday is on the truck by Tuesday.

Set the target margin before you start

A variance review needs a number to aim at. Published 2026 benchmarks for service work gross margin run roughly 30–45% for HVAC, 35–55% for plumbing, and 35–50% for electrical, with top performers sitting at the high end of each range. Install and replacement work generally runs lower, so don't blend the two in one report.

On estimating accuracy, the working target is actuals landing within 5–10% of the estimate. Most contractors who review consistently get there within three to six months — not because they estimate better, but because their price book stops lying to them.

Five mistakes that make job costing useless

If you're rebuilding your pricing from scratch rather than tuning it, start with how to build a price book for your trade business and use job costing to refine it from there.

FAQ

What is job costing for contractors?

Job costing is tracking the actual cost of a completed job — burdened labor, materials, subs, and overhead allocations — and comparing it to the estimated cost and the revenue collected. For a service business, its main purpose is to show which price book items are priced on wrong assumptions.

How often should contractors review job costing?

A weekly 15-minute scan of any job more than 10% off estimate catches problems while the details are fresh. Then run a full line-item roll-up monthly, and a complete price book pass quarterly. Weekly-to-monthly is the cadence most field-service operators land on.

What is a good gross margin on a service job?

For 2026 service work, roughly 30–45% for HVAC, 35–55% for plumbing, and 35–50% for electrical, with strong operators at the top of each band. Install and replacement work typically runs lower and should be benchmarked separately.

Should I raise prices if job costing shows low margin?

Only if the cause is labor drift or material cost creep — those are genuine pricing errors. If the cause is scope leak, extra trips, or misdiagnosis, raising the price makes you less competitive without fixing the leak. Diagnose the pattern first.

Do I need job costing software to do this?

No. A spreadsheet with estimated cost, actual cost, revenue, and the price book line item per job is enough to spot patterns in 90 days of work. Software helps once volume makes manual entry the bottleneck, but the discipline matters more than the tool.

What's the difference between job costing and estimating?

Estimating is a forecast made before the work; job costing is the measurement made after it. Estimating without job costing means you never find out whether your forecast was any good, so the same error repeats on every job that uses that line item.

Liked this? Get the next one.

Markup & margin strategy, price-book tips, and field-service catalog how-tos. No spam — unsubscribe anytime.

Pricebookr is the master price book for the trades.
Bulk pricing, markup schedules, and two-way Jobber sync — free for 14 days.
Start your free trial