Trades & Services · October 2026

Job Costing for Contractors: Track These 5 Numbers on Every Job

Tablet with job costing data on a toolbox at an active construction site

Job costing for contractors means tagging every dollar of revenue and direct cost to a specific job, so you can see profit per job, per crew, and per customer. Once those numbers are clear, you bid with more confidence, drop work that quietly loses money, and know how much you can actually pay yourself.

Example: the HVAC owner whose busiest year paid him the least

Example based on the kinds of owners we work with; names and numbers changed.

Tony ran an HVAC company doing about $2.5M a year with four crews. Every truck was out every day. Revenue was up, and he wanted to add a fifth crew and finally take home the draw he felt he'd earned.

At year-end, the company made less than the year before, and Tony took home less than his lead tech. His P&L showed one blended margin, and every job "felt" fine.

He was working 60-hour weeks, missing his kid's games, and bidding more of the same work because it kept the trucks busy. He knew where he wanted to go. He couldn't tell which jobs were getting him there and which were pulling him backward.

His fractional CFO started by tagging every job with its labor, materials, subs, and truck time. Within two months, the picture flipped.

His big new-construction installs, the work he'd been chasing, were running close to break-even once burdened labor and callbacks landed. His service and maintenance work was carrying the company.

Tony repriced installs, shifted one crew to service, and held off on the fifth truck. A year later, revenue was about the same and his draw was up.

What is job costing for contractors?

Job costing is tracking revenue and direct costs for each job so every job shows its own profit. Labor with burden, materials, subs, and equipment sit next to that job's invoice. With that in place, you can see which work to chase, which to reprice, and which to drop, instead of guessing from one blended margin.

For a contractor doing roughly $500K to $10M, that's usually where the expensive questions live. Hire another tech? Chase more install work? Keep the customer who always negotiates?

Those calls get a lot easier with per-job numbers in front of you.

Why do jobs that look profitable end up losing money?

Most of the cost that sinks a job never gets coded to it. Payroll taxes and workers' comp on the crew, truck and tool time, unbilled callbacks, and the job's share of overhead sit in company-wide buckets. Add them back, and a job that looked like 40% gross on the bid sheet can land at break-even.

A lot of shops think they're already job costing because QuickBooks has projects turned on. Then they look closer and find materials in a monthly supply-house total, labor in payroll with no job tag, and equipment never allocated at all.

Here's how that played out on one of Tony's installs:

LineAmount
Install price$12,000
Materials$4,500
Crew wages$2,700
Gross profit on the bid sheet$4,800 (40%)
Payroll taxes, workers' comp, and benefits (~30% of wages)$800
Truck and tools, 4 days at ~$250/day$1,000
Unbilled callback two weeks later$600
Overhead share (~20% of revenue)$2,400
What the job actually leftAbout $0

Each of those costs sat somewhere else in the books: payroll, the fleet budget, overhead. The job report never saw them, so the company P&L kept telling a comforting story.

The burden line is the one owners underestimate most. Employer Social Security and Medicare alone add 7.65% to every wage dollar (IRS Topic 751, reviewed Sep 24, 2026). Stack workers' comp, unemployment insurance, and benefits on top, and a trades crew can get close to 30%.

That pattern shows up across plumbing, HVAC, electrical, landscaping, and other crew-based trades. The big work owners think of as the breadwinner is often being carried by small service calls they treated as filler.

The spread is wide in the data too. Across about 1.75 million completed jobs, Level found a median job gross margin of 44.3%, with the bottom tenth of jobs near 11% and the top tenth near 75% (updated Oct 7, 2026). A blended company number averages all of that away.

What costs should be included in job costing?

Five numbers per job get you most of the decision value: revenue including change orders, labor with burden, materials, subcontractors, and an equipment or truck allocation. Gross profit is revenue minus those direct costs. You don't need a 40-line cost code list on day one to start bidding with better numbers.

  1. Revenue tagged to the job (invoice plus change orders).
  2. Labor with burden (wage plus payroll taxes, workers' comp, and benefits).
  3. Materials coded to the job at purchase, so the supply-house bill splits across the jobs that used it.
  4. Subs tied back to the same job ID.
  5. Equipment and truck allocation (even a simple day rate is a big step up from leaving it out).

Divide gross profit by revenue and you have job margin. Pick a floor (many service-heavy shops use about 35% gross) and review every job below it each week.

Profit and cash still need separate reports. In Billd's 2026 National Subcontractor Market Report (released Jun 23, 2026), subs said they wait an average of 51 days to get paid after a pay app, while GCs estimated 35. A profitable job can still drain your account for close to two months.

If cash is the fire this month, start with our post on why contractors struggle with cash flow.

What you can decide once you see profit by job

Like Tony, owners with one clean month of job data usually start asking sharper questions:

  • Which job types hit our margin target most weeks?
  • Which customers pay on time and leave margin?
  • Which crew's utilization and gross margin support adding a truck?
  • Which work should we reprice or politely stop chasing?

That's usually when the stress starts to come down. The next bid carries real labor cost, growth stops quietly eating your draw, and when your banker asks how the business is doing, you can answer with real job and crew numbers.

That's the core of our trades accounting for crew-based businesses: books set up so every week's jobs roll into a report you can make decisions from.

How do I set up job costing in 30 days?

Start with the software you already have. Pick five job categories, get labor coded to jobs first, then pull materials and subs onto the same job IDs, and run a completed-job margin report at month end. One clean month is enough to start repricing, and you don't need to rebuild three years of books first.

This is the order I'd work in:

Week 1. Pick five job categories you can maintain (for example: service call, install, T&M, maintenance contract, change order). Map every open job to one category and one job ID in QuickBooks, Jobber, ServiceTitan, or Housecall Pro.

Week 2. Make labor the priority. If I could only fix one thing, it would be this, because labor is usually the biggest cost and the least tracked. Get techs coding time daily, even roughly.

Week 3. Pull materials and subs onto the same IDs. Split each supply-house invoice across the jobs it served.

Week 4. Run a completed-job report for the month: revenue, direct cost, margin. Sort worst to best. Reprice or rethink the bottom 10%, and go after more of the top 10%.

After 90 days you'll know things about your own mix that most contractors never learn.

When do contractors need more than job costing?

Once job costing shows what your finished work earned, the next question is usually about the future: hiring a crew, buying a truck, or riding out a slow stretch of receivables. Answering that takes a forward cash forecast and a monthly decision call, which is the work a fractional CFO adds on top of clean job data.

That forward look is what a fractional CFO does. If you're a Utah contractor and want it stacked together (books, job costing, a 90-day cash view, and a monthly decision call), here's how we work with contractors from Salt Lake City through Utah County.

For the broader view of the role, see what a fractional CFO does in 2026.

A full-time construction CFO often costs well into six figures a year once salary, benefits, and taxes are loaded. Most shops between about $500K and $10M don't need that seat filled 40 hours a week. They need job-level numbers every week and a clear read before the next expensive call.

Frequently asked questions

How is job costing different from regular bookkeeping?

Bookkeeping records every transaction and reconciles the accounts so your books are accurate. Job costing adds a job tag to each of those transactions so you can see which work made money. You need both, and job costing only works on top of clean monthly bookkeeping, so most shops fix the books first.

What margin should a contractor aim for?

It depends on trade and mix. Level's data puts service-heavy HVAC, plumbing, and mechanical shops around 38% to 45% gross, electrical around 35% to 42%, and roofing around 28% to 35%. Net margin after overhead of roughly 8% to 15% is a common healthy range. Your own job data beats any average.

Can I do job costing in QuickBooks?

Yes. Use QuickBooks Projects or customers-as-jobs, require a job tag on every expense and timesheet, and review job profitability weekly. Most shops already own software that can handle it. The hard part is getting the field to code time and materials every day. Cleaning up a messy file usually takes about 30 to 60 days.

When should I bring in outside help?

When you can't say with confidence which jobs, crews, and customers are profitable, and the decisions on your desk (a hire, a truck, a price change, a big bid) are bigger than you can model in your head. Under about $500K in revenue, clean books and a simple job log are often enough.

About the author: Enoch Sng is Managing Partner of Black Lotus Financial Group, where we provide bookkeeping, fractional CFO, and advisory work for owner-operated businesses. He started his finance career in 2019 in real estate private equity, then owned and operated one of the largest self-storage facilities in Utah, so he has run the numbers from the owner's chair too.

See which jobs are carrying your business

If you want a straight read on whether your books can support real job costing, book a 30-minute call in the next two weeks. Bring one recent month of job data if you have it. We'll tell you what's usable, what's missing, and whether we're the right team to build it with you.