63% of contractors cannot accurately state their profit margin on completed jobs, according to a 2023 Construction Industry Survey by MyQuoteIQ. That is not because they are bad at business. It is because they are tracking revenue instead of profit.

You can invoice $15K on a job and lose money on it. If you are not cross-referencing invoice totals, actual labor hours, burdened labor rates, materials, and drive time on every job, you have no idea whether your business is working.

Why your most "productive" tech might be your biggest liability

Here is a scenario seen across dozens of contractor accounts: your highest-volume tech is constantly busy, invoicing more than anyone else on the team. He has the highest callback rate, the longest average drive time per job, and uses 15% more materials than the next tech. His real margin is 19%.

Your quieter tech - the one who does fewer jobs - runs at 42%. Who do you dispatch first when a $3,000 job comes in?

This is not a hypothetical. This is the exact output the Job Costing and Profit Tracker by Tech automation produces. We built a step-by-step recipe for this that cross-references your invoices, timecards, and material costs weekly and ranks every technician by true margin - not just revenue.

What does "true margin" actually mean by technician?

Most job costing setups only subtract direct material costs from invoice revenue. That gives you a number that feels good and means almost nothing.

True margin requires subtracting the technician's burdened labor rate (not their hourly wage), drive time treated as billable hours consumed, material receipts tied to that specific job, and a proportional overhead allocation. The Construction Financial Management Association (CFMA, 2025) found that nearly 35% of contractors miscalculate profit targets because they use base wages instead of actual loaded labor costs. A tech earning $25/hr costs you $40-$55/hr when you add employer taxes, insurance, benefits, and overhead.

The Home Service Business Institute (HSBI, 2025) adds another layer: field technicians bill only 58% to 65% of their total working hours. In a 2,080-hour work year, that is roughly 1,200 to 1,350 billable hours. Every hour of drive time, admin, and shop time eats into that number - and it varies significantly by tech.

The gap between what contractors think they make and what they actually make

The average contractor thinks they are running 35-40% profit margins, according to MyQuoteIQ's 2023 industry data. Once systematic job costing is applied, the real number lands at 15-22%. That 15-20 point gap is not rounding error. It is the difference between building a business and slowly liquidating one.

The 2024 ACCA Financial Benchmarking Study puts it in hard numbers: the median net profit margin for HVAC contractors is 5.8%. The top quartile averages 13.2%. That 7-point gap does not come from the top-quartile contractors working harder - it comes from them knowing which jobs, which service types, and which technicians are actually making them money.

Rodriguez HVAC is a documented example from BuildFolio (January 2026). When they started tracking job costs, they discovered service calls generated 45% margins versus 22% on replacements. That single data point changed their entire dispatch and marketing strategy.

What callbacks are quietly costing you every year

Callbacks are where margin goes to die, and callback rates vary dramatically by technician. If a callback takes 3 hours including drive time, that is 3 hours a tech could have spent generating $400-$600 on a billable call. Industry data from CEO Finance Academy (April 2026) puts the average cost of a callback at $350 per trip when you account for labor, fuel, and opportunity cost.

On 1,000 jobs per year with a 1-2% callback rate, that is $35,000 to $70,000 in lost margin annually. That margin shows up nowhere on your P&L because it was never invoiced. It simply vanishes.

Until you track callbacks by technician, you cannot identify which techs are generating them or what it is costing you. This is also why reducing technician turnover matters financially beyond just recruiting costs - experienced techs with low callback rates are worth dramatically more than their invoice totals suggest.

Why QuickBooks alone does not solve this

QuickBooks records what happened at the business level. It was not built to answer the question: "Was this specific HVAC installation profitable after the callback two weeks later, factoring in Mike's drive time and the extra parts he had to order?"

ServiceTitan has a job costing module. Most contractors who use it have never opened it. Jobber and FieldPulse both have job costing features too.

The tools exist. The problem is connecting them, interpreting the output, and making the data actionable on a weekly basis rather than letting it sit in a dashboard no one looks at. Manual job costing processes delay financial visibility by 2-4 weeks, according to Dapt.tech (2026). By the time you find out last month's margin by tech, the month is closed.

Automated systems reduce that reconciliation time from days to minutes. If you are serious about managing material costs and understanding where your margin actually goes, the data infrastructure matters as much as the intent.

Get the Job Costing Automation Recipe

Get Started

How the automation actually works

The Job Costing and Profit Tracker by Tech uses QuickBooks, Google Sheets, and ServiceTitan together. The input is weekly job data: invoice totals, labor hours, material receipts, and drive time. The AI layer matches costs to jobs, calculates true margin per job, and then aggregates by technician.

The output looks like this: "Mike's margin is 42%, Dave's is 19%." It also surfaces which service types are most and least profitable across your whole operation.

Setup time is approximately 4 hours and it is built as a copy-paste script. You do not need to be a developer. You do need clean data coming out of your field software, which means technicians need to be logging start and stop times per job. ServiceTitan's GPS timestamps make this automatic.

ServiceTitan users save an average of 30-60 minutes per month per employee on payroll prep alone by automating gross pay calculations (ServiceTitan, official platform documentation). That is before counting the margin visibility gains.

What this tells you that revenue-per-tech never could

Revenue per technician is a useful benchmark - CEO Finance Academy sets the target at $250K to $400K per tech per year, with below $200K being a danger threshold. But revenue per tech tells you how busy someone is. Margin per tech tells you whether keeping them busy is profitable.

MetricMikeDave
Weekly invoiced revenue$9,200$11,400
Burdened labor cost$2,100$3,800
Material cost$1,900$3,600
Drive time cost$420$890
Callback cost (week)$0$700
True gross profit$4,780$2,410
True margin52%21%

Dave invoices more. Dave is losing you money relative to his potential. You would never know this without per-job cost tracking.

A contractor documented a similar pattern via MyQuoteIQ (December 2025): commercial work felt like strong revenue with big invoices and steady contracts. Job costing revealed it barely covered costs after crew travel time and equipment wear.

They reduced commercial focus and shifted to residential. Annual profit increased 23% with the same revenue. Same trucks, same team, completely different outcome from understanding where their margin actually came from.

If you are thinking about how to price jobs correctly or debating flat-rate versus hourly pricing, per-technician job costing data gives you the ground truth you need to make those decisions with real numbers.

Overhead rate: the number almost no one calculates correctly

Oryx Horn's HVAC Job Costing Guide (May 2026) gives a clean example: if your annual overhead is $480,000 and your team works 8,000 total hours, your overhead rate is $60 per hour. That $60 gets applied to every job proportionally. Skip it, and every margin number you calculate is wrong.

This is also why managing cash flow requires job-level data, not just monthly P&L. You can have strong revenue months and still be funding unprofitable work.

For HVAC operators in particular, pairing this with service agreement revenue creates a cleaner picture. Agreement work tends to produce different margins than one-off calls, and knowing which techs execute agreement visits most profitably changes how you staff and schedule.

For contractors looking to build a technician sales training program, job costing data is the foundation. You cannot train toward profitability if you do not know which behaviors drive it.

Frequently Asked Questions

How do I calculate which technician is actually profitable, not just who invoices the most?

You need four data points per technician per job: invoice total, actual time on-site plus drive time, materials used, and their burdened labor rate (not hourly wage). Cross-referencing these weekly gives you a profit per hour figure by tech that tells you far more than revenue alone.

A tech can invoice $20K a week and still drag down your margins if their drive time, callbacks, and material waste are not factored in.

My techs earn $30/hr - why does job costing show my labor cost is so much higher?

Payroll burden is real. The CFMA (2025) found that a technician earning $25/hr actually costs $40-$55/hr when you include employer taxes, insurance, benefits, and other overhead. For a tech at $30/hr, you are realistically looking at $42-$48/hr in true cost.

If your job costing math only uses the wage rate, you are understating labor costs by 30-40% on every job.

How often should I review job costing by technician?

Weekly, minimum. Monthly reviews are autopsies - by the time you find a pricing or efficiency problem, the month is closed. Dapt.tech (2026) found manual job costing delays visibility by 2-4 weeks, which means monthly reviews are actually giving you data that is 6-8 weeks old.

The automation described here produces a weekly report automatically, so there is no reason not to review it every Monday morning.

Does not ServiceTitan already track job costs?

ServiceTitan's job costing module tracks costs at the job level. It does not automatically rank your technicians by true profitability, flag which service types are underperforming, or produce a weekly summary that forces a decision.

The automation layer connects ServiceTitan's raw data to an AI that interprets it for your specific business context and surfaces the decisions you need to make.

What is the difference between a high-ticket tech and a profitable tech?

A tech with a high average ticket is generating revenue. A profitable tech is generating margin. Those are not the same thing.

BuildFolio (January 2026) data shows HVAC service calls at 45% gross margin versus 22% for replacements. A tech who runs high-revenue replacement jobs could be generating half the margin of a tech running service calls at lower ticket values. The only way to know is to run the job costing numbers.

---

If you have been running your business off invoice revenue and gut feel, the automation described here is the first real visibility tool you will have on where your money actually goes. Build the Job Costing and Profit Tracker by Tech this week. Four hours of setup work will change how you dispatch, how you price, and how you evaluate every person on your crew.