Pricing & Profit

HVAC Job Costing: Find Out Which Jobs Actually Make You Money

Revenue feels like success โ€” the phone rings, trucks roll, big tickets close. But some of those "big" jobs quietly lose money, and without job costing you can't tell the winners from the losers. You end up chasing revenue that never becomes profit and repricing blind. Job costing shows you the truth: what each job really costs, and what it really earns.

By the HVACTrade Team๐Ÿ“… June 2026ยท 11 min read

High revenue with thin profit is the most common trap in HVAC โ€” and job costing is how you escape it. Most owners track what a job billed and stop there. But a job's real profit is the revenue minus all of its true costs: fully-burdened labor, materials, overhead, and even the warranty callback three weeks later. Add those up honestly and some of your proudest tickets turn out to be break-even or worse. Job costing gives you the number that actually matters, per job and per job type, so you can price and sell with your eyes open.

What job costing actually is

Job costing means tracking every real cost tied to a job and subtracting it from the revenue to get the true gross profit and margin. Not "revenue minus parts" โ€” all the costs: burdened labor, materials, equipment, allocated overhead, and any direct costs like commissions, financing fees, or warranty work. Do it per job, then roll it up by job type, and the picture of your business changes.

Why it matters

  • It separates winners from losers. You finally see which job types actually make money and which just make noise.
  • It exposes underpricing. Jobs that "felt fine" but barely cleared cost jump out โ€” the foundation for an accurate price book.
  • It sharpens estimates. Comparing estimated to actual costs reveals exactly where your quotes leak.
  • It directs your focus. Do more of what's profitable, fix or drop what isn't โ€” the essence of pricing for real profit.

The costs owners forget to count

Where the ticket really goes Job revenue (what you billed) Burdened labor Materials Overhead Wrnty Profit Count only parts and wages and the "profit" looks big. Count everything and the real sliver appears.
The gap between "revenue minus parts" and true profit is where HVAC shops fool themselves.
  • Fully-burdened labor โ€” not the bare wage. Add payroll taxes, benefits, workers' comp, and non-billable time. A tech who costs $25/hr in wages often costs far more fully loaded.
  • Overhead allocation โ€” your cost of doing business per hour (rent, office, software, insurance) applied to the job. Nail this in know your numbers first.
  • Warranty and callbacks โ€” a return trip on that install is a real cost of that job; see cutting callbacks.
  • Other direct costs โ€” commissions/spiffs, financing fees, and credit card processing all come out of the job.

How to do job costing (step by step)

  1. Set your burdened labor and overhead rates first. You can't cost a job without knowing what an hour of your team truly costs. Start with your numbers.
  2. Track actual costs per job. Use the job-costing feature in your field service software or job/class tracking in your accounting system so labor, materials, and costs attach to each job.
  3. Capture time accurately. Techs must log real hours per job โ€” fuzzy time makes every cost number a guess.
  4. Compare estimated vs. actual. For every quoted job, put the estimate next to the actual. The variances are your leaks and your estimating lessons.
  5. Roll up by job type. Group installs, service calls, maintenance, and specific repairs to see the margin of each category, not just individual jobs.
  6. Act on it. Reprice the losers, do more of the winners, fix cost overruns, and tighten the estimates that keep missing.
The estimated-vs-actual loop is the whole point
The single most valuable habit job costing builds is comparing what you thought a job would cost with what it actually cost. Over time that loop turns your estimates from hopeful guesses into reliable numbers โ€” which is exactly what makes your flat-rate price book accurate and your margins predictable. A shop that runs this loop for a season prices with a confidence its competitors can't match.

What job costing tends to reveal

When owners finally run the numbers, common surprises show up: installs that looked great until warranty labor ate the margin, service calls that under-earn because overhead wasn't counted, and cost variance between crews doing the "same" job. None of these are visible from a revenue report โ€” and all of them are fixable once you can see them.

Do this first
Pick your last five installs and five service calls and cost them fully โ€” burdened labor, materials, overhead, and any warranty. Compare the real margin by type. You'll likely find at least one "good" job that lost money, and that single insight will change how you price going forward.

FAQ

Job Costing Questions

Job costing is the practice of tracking every real cost tied to a specific job โ€” fully-burdened labor, materials and equipment, allocated overhead, and direct costs like commissions, financing fees, and warranty callbacks โ€” and subtracting them from the job's revenue to find its true gross profit and margin. It goes well beyond "revenue minus parts." Done per job and then rolled up by job type, it shows you which categories of work actually make money, exposes underpricing, and turns your estimating into a data-driven process instead of a guess. It's the foundation of profitable pricing.
Add up four buckets. First, fully-burdened labor: the tech's wage plus payroll taxes, benefits, workers' comp, and an allowance for non-billable time โ€” not just the hourly wage. Second, actual materials and equipment cost. Third, allocated overhead: your cost of doing business per hour applied to the hours the job took. Fourth, direct costs specific to the job, such as commissions, financing or credit card fees, and any warranty or callback labor. Subtract that total from what the job billed to get true gross profit. The overhead and burdened-labor pieces are the ones most shops leave out โ€” and they're often what turns an apparent winner into a loser.
Usually because the costs you're not counting scale up with the job. A big install carries more labor hours (at fully-burdened rates, not bare wages), more overhead, more materials, and more warranty exposure โ€” and if any of those were underestimated or left out of the price, the extra revenue gets eaten. Big tickets also tempt owners to discount to win them, thinning already-tight margins. Job costing reveals exactly which of these is happening: run the estimated-versus-actual comparison on a few large jobs and you'll typically find the specific cost that's quietly turning revenue into break-even work.
It's the true hourly cost of a tech, not just their wage. Start with the base pay, then add payroll taxes, benefits, workers' compensation insurance, and a factor for non-billable time โ€” training, drive time, and idle hours you still pay for. The result is often significantly higher than the wage alone. Using bare wages in job costing is one of the biggest reasons shops overestimate their profit: a job that looks profitable at a $25 wage may be marginal once you use the real burdened rate. Calculate it once as part of knowing your numbers and use it in every job cost from then on.
Not to start โ€” you can cost a handful of jobs in a spreadsheet to get the insight quickly. But to do it consistently across every job, software makes it practical. Many field service platforms have built-in job costing that attaches labor and material costs to each job automatically, and accounting systems support job or class tracking that does the same on the financial side. The real requirement isn't fancy software; it's accurate time capture from your techs and honest cost inputs. Get those right and even a simple system will tell you which jobs make money.

Join the HVACTrade Discord

A free community of HVAC owners and techs trading tactics, tools, and wins โ€” and where every new guide drops first. Jump in, it's free.