Enterprise DNA
Guide Intermediate Omni Ops

How to Track HVAC Job Profitability in Real Time

Track HVAC job profitability as work happens by connecting labor, materials, subcontractors, and billed revenue before month-end.

Sam McKay |
How to Track HVAC Job Profitability in Real Time

Month-end tells you what went wrong

An HVAC job can look profitable when the estimate is signed and turn marginal before the crew finishes. A technician stays late to diagnose a control issue. A second trip is needed because a part wasn’t on the truck. The customer approves extra work over the phone, but the change order doesn’t make it into the invoice. Meanwhile, the subcontractor’s bill arrives after the job has closed.

If you only compare estimated costs with accounting totals at month-end, those changes arrive too late to act on. You might see that a job missed its target, but the crew has already moved on and the same estimating or scheduling pattern may be repeating.

Real-time job profitability means bringing the expected revenue and costs for each job together while work is underway. It doesn’t require a perfect live connection to every system on day one. It does require a shared job identifier, timely updates, and a clear distinction between costs already incurred and costs still expected.

For an HVAC company, the core pieces are labor, materials, subcontractor costs, and billed revenue. Connect those four, and you can see which jobs are tracking to plan, which need attention, and whether a change in scope needs to be priced before more work is done.

Start with one job record

The job number should follow the work from the estimate through dispatch, time entry, purchasing, subcontractor invoices, and billing. If each tool uses a different identifier, someone has to reconcile records by customer name, address, or memory. That creates delays and makes near-live reporting unreliable.

For each job, capture a small set of fields:

  • Customer, site, job number, and assigned crew
  • Job type, such as service repair, replacement, or planned maintenance
  • Approved estimate and any approved change orders
  • Estimated labor hours and burdened labor cost
  • Expected materials and subcontractor costs
  • Work status, from scheduled through completed and invoiced
  • Amount billed, amount collected, and any balance still to invoice

Your field service or dispatch system may be the best place to own job status. Accounting may remain the source of truth for invoices and payments. The point isn’t to force every activity into one product. It’s to make sure each system passes the same job number with its updates.

If you’re comparing systems or tightening up your existing setup, our guide to HVAC job profitability software covers the information to look for. For companies managing parts across vehicles, real-time truck inventory tracking is another piece of the same picture. A part pulled from a truck needs to land against the right job, not disappear into a general materials total.

Bring four cost and revenue streams together

A useful view shows both the original estimate and the latest expected result. Don’t overwrite the estimate when new costs arrive. Keeping both lets you see whether the job is running above plan and how much margin remains.

Labor

Technicians need a simple way to record time against a job while the work is fresh. Capture regular hours, overtime, travel where it belongs in your costing policy, and any return visit. Then apply a burdened rate that reflects the company’s chosen labor-cost method, rather than using take-home pay or a flat wage alone.

A time entry should include the technician, job number, hours, and work date. If a technician splits a day across jobs, each part needs its own job assignment. Otherwise, the hours may appear in payroll but never reach job cost.

Use the same rules across estimates and actuals. If estimates account for payroll burden but actuals use wage alone, the margin comparison gives a false sense of performance. Your accountant or finance lead can help set the rate and decide how to handle travel, training, and non-billable time.

Materials

Materials should move through a few clear states: expected, ordered, received, issued to the job, returned, and billed or credited. For common parts stored on a truck, record the issue against the work order. For special-order equipment, record the purchase and tie it to the job as soon as it is known.

Don’t wait for a supplier statement to show every expected cost. A purchase order or received item can give you a current commitment, while the final invoice later replaces or adjusts that amount. Keep the record clear enough that you don’t count both the commitment and the supplier invoice as separate costs.

Returns matter too. A compressor ordered for one replacement job may go back to the supplier or be used elsewhere. Without a return or transfer entry, the first job stays overstated and the next job looks artificially cheap.

Subcontractors

Record a subcontractor’s expected cost when the work is approved or committed, then replace that estimate with the invoice when it arrives. Include the subcontractor’s job number or your own work order reference on the purchase order and invoice process.

This is particularly important when a job includes electrical work, crane service, ductwork, or another specialist. If you only recognize the cost when the bill lands, the job may look healthy for weeks while a substantial expense is missing.

Billed revenue

Track approved contract value, approved change orders, billed revenue, and collections as separate figures. A customer saying “go ahead” may not be enough to count extra work as approved revenue. Follow your company’s documentation rules and get the authorization recorded before adding it to the job’s expected revenue.

Billed revenue is not the same as cash received. The owner needs to know both whether the work has been invoiced and whether payment has arrived, but those answer different questions. For job profitability, compare the costs with the revenue the company has earned or can support with approved scope. Use collections to monitor cash flow and outstanding receivables.

Calculate the margin while the job is open

At a minimum, show these figures for each job:

  • Estimated gross profit and gross margin
  • Actual costs to date
  • Remaining expected costs
  • Forecast total cost at completion
  • Approved revenue and revenue still to bill
  • Forecast gross profit and margin at completion
  • Variance from the original estimate

The basic calculation is straightforward:

Forecast gross profit = approved revenue minus forecast total job cost

Forecast gross margin = forecast gross profit divided by approved revenue

Use a consistent definition of cost. If your company includes only direct field costs in job margin, don’t compare it with a report that also includes office overhead. A useful measure is one the team understands and applies the same way from estimate through closeout.

Consider a hypothetical replacement job with $8,400 of approved revenue. The estimate allows $1,856 for labor, $2,400 for materials, and $900 for a subcontractor, for total expected cost of $5,156. Forecast gross profit is $3,244, or about 38.6%.

During the job, labor rises to 47 hours at a burdened rate of $58, and material cost reaches $2,960. The subcontractor estimate remains $900. That brings forecast cost to $6,586 and gross profit to $1,814, or about 21.6% of approved revenue. The margin has fallen by roughly 17 percentage points before the job is closed.

That change doesn’t automatically mean the job was handled badly. There may be a valid reason for the extra hours or material. But a live view gives the owner a chance to investigate while the crew is still there. Was the scope different from what the estimate described? Was a return visit avoidable? Is there approved extra work that still needs to be billed? Those questions are harder to answer weeks later.

Set useful alerts, not more noise

A dashboard alone won’t change what happens in the field. Set a few rules that bring the right exception to the right person. The thresholds should reflect your own pricing, job types, and target margins, not a generic industry number.

For example, an alert might fire when:

  • Actual labor hours pass the estimate by a set amount
  • Forecast margin falls below the company’s target for that job type
  • A job has materials issued but no purchase or transfer record
  • A subcontractor commitment has no invoice or completion status
  • Work is marked complete but approved revenue remains unbilled
  • A change in scope is recorded in a field note but not in the approval process

Each alert should state the job, what changed, the financial effect, and the next action. “Job is over budget” isn’t enough. “Labor is 12 hours over the estimate. Confirm the additional scope and review the open change order before the crew returns” gives the owner or manager something to do.

Start with a small number of exception rules and review them weekly. If a rule flags too many normal jobs, adjust it. If a job type regularly exceeds estimates for the same reason, that may point to a pricing, parts, or scheduling issue rather than a technician problem.

What an agent workflow looks like

An AI agent can help move information between the systems and follow up when a required step is missing. It should work from your job rules and permissions, not make financial decisions on its own.

A practical flow looks like this:

  1. A signed estimate creates the job record, including the job number, approved revenue, planned hours, expected materials, and target margin.
  2. Dispatch assigns the work. When technicians clock in, their time is matched to the job. A missing job number becomes an exception rather than an invisible gap.
  3. Parts issued from inventory, purchase orders, and received materials update the job’s current and expected cost. Returns and transfers adjust the record.
  4. Subcontractor commitments are attached to the job. When an invoice arrives, the system checks it against the commitment and flags a mismatch for review.
  5. Approved change orders update revenue. Unapproved additions remain visible as work needing authorization, not as assumed income.
  6. The job view recalculates forecast cost and margin as new information arrives. If a company-defined threshold is crossed, the assigned manager receives an alert with the reason and next step.
  7. When the work is complete, the workflow checks for missing time, materials, subcontractor invoices, and unbilled approved work before the job is closed.

People still approve costs, resolve disputed scope, and decide whether to send a crew back. The agent reduces the time spent chasing records and makes gaps visible sooner. Begin with one job type, such as replacements or larger repairs, and test whether the team can trust the numbers before expanding.

There are other workflows that protect job value as well. The AI warranty tracking guide for trades businesses covers how warranty dates and service obligations can be made easier to track after a job closes.

Don’t ignore the calls and follow-up around the work

Profitability isn’t only a spreadsheet problem. If the owner is dispatching, chasing parts, and trying to answer every incoming call, time spent on management gets pulled away from estimating and reviewing work in progress.

Missed service calls can mean lost jobs. The value of a missed job varies by trade, urgency, and company. And when crews are on the tools and calls go to voicemail, some callers won’t leave a message.

Voice and estimate follow-up agents can help keep work moving into the schedule and reduce manual chasing that can crowd out job review.

If missed calls are part of your wider operations issue, the After-Hours Call Recovery Plan for Trades is a practical worksheet for checking what happens when a call comes in after hours. You can also download the plan directly and use it to map your current process.

Make the first month manageable

Don’t try to connect every system and clean every historical record before you start. Pick a recent set of jobs and trace each one from estimate to invoice. Note where labor hours, parts, subcontractor costs, and approved revenue currently live. Then identify which updates arrive too late or don’t have a job number.

For the first live test, use a manageable group of jobs and assign an owner for each data gap. Agree on how labor burden is calculated, when materials count as committed, and what documentation makes a change order approved. Check the job view at least weekly with the person who can act on exceptions.

You may find that the main problem isn’t a lack of software. It may be that technicians don’t know which job number to use, purchasing doesn’t see the work order, or invoices are held until a batch is processed. Fixing those handoffs can make existing tools more useful before you consider a larger system change.

Find the leakage before it compounds

Across trades businesses, missed costs or revenue can add up. The amount that applies to your business depends on job volume, margins, repeat work, and how much cost or revenue gets missed between field activity and the books. A few jobs with unrecorded labor, late material costs, or approved work that never gets billed can make a noticeable difference.

A focused review can show where the gaps sit and which changes are worth making first. An Omni Audit can map the current workflow and identify operational gaps. No deck. You leave with a working plan, not a presentation.

Book a 60-min Omni Audit to map the handoffs between your field service tools, accounting process, and job-cost view. You can also see Omni for trades businesses and review how the audit is tailored to trade operations.

The goal is simple: know which jobs are drifting while there’s still time to respond. Start with the work you already do, get the job number and cost rules consistent, then add alerts and agent support where information is arriving late. If you’d like to decide what to fix first, book your Omni Audit. For details on the trades-specific review, visit the AI audit for trades businesses.