Skip to content
A fresh start for your HVAC business.Explore HVAC365 membership grants 3 months up to 1 year, subject to review and participation requirements.
← All HVAC guides

Job costs & margins

HVAC job costing: a labor and materials worksheet you can actually use

A $1,200 invoice does not tell you what the job earned. Follow one fictional repair from the estimate to a cost review, including the extra trip that changes the result.

These guides draw on verified IKOK product workflows. Examples and diagrams are fictional illustrations, not customer results.

Illustrative $1,200 job revenue split into $530 direct costs and $670 remaining before overhead, with a $90 return visit reducing that remainder to $580.
Workflow illustration · adapt the steps to your team. Open full-size diagram ↗ for HVAC job costing: a labor and materials worksheet you can actually use

Start with the question the invoice cannot answer

For a small HVAC company, a useful first cost review is simple: what did this specific job sell for, what did delivering it consume, and what changed after the estimate? Keep those three answers separate. The labor amount shown to the homeowner is a selling price. It is not automatically the cost of employing the technician.

The example below is a fictional operational worksheet in US dollars, not a customer result, industry benchmark or built-in IKOK profitability report. Use your own cost definitions consistently and have the person responsible for your books agree how you treat labor, tax and overhead.

Work through one repair

Suppose the agreed repair price is $1,200 before sales tax. Your team estimates three technician hours at an internal cost of $45 per hour, $320 of parts, and $40 of other direct job costs. That makes estimated direct cost $495 and the remainder $705, or 58.75% of revenue.

The technician actually spends four hours. A supplier credit reduces the parts cost to $310, and other direct costs remain $40.

Item Estimated Actual What to check
Technician labor 3 × $45 = $135 4 × $45 = $180 Hours and the agreed internal cost basis
Parts used on this job $320 $310 Supplier document, quantities, returns and credits
Other direct costs $40 $40 What was specifically attributable to this job
Total direct cost $495 $530 No duplicated labor or materials
Revenue before tax $1,200 $1,200 Approved scope and invoice adjustments
Revenue less direct cost $705 $670 Amount remaining before overhead

The actual direct-cost margin is ($1,200 − $530) ÷ $1,200 = 55.83%. This is not net profit: office salaries, rent and other costs may still need to be covered. It is also not markup, which uses cost as the denominator. Label the metric so two people do not compare different calculations.

Include the visit that happens after the invoice

Two days later the same technician returns for two hours, with no additional customer charge. At the same $45 internal hourly cost, the extra $90 reduces the remainder to $580, or 48.33% of the original revenue. If the second trip also used materials, add them as well.

Keep the return visit related to the original work in your review. Otherwise the first job appears healthier than it was and the return visit looks like an isolated loss. Record the reason in neutral terms: missing part, incomplete scope, documentation gap, workmanship issue, or an unrelated new problem. A return visit is not automatically a technician error. The closeout guide shows how to capture enough context to investigate it.

Build a small worksheet before building a dashboard

Use one row per job and these columns:

  • Job reference and service property, so similarly named customers do not get mixed together.
  • Approved revenue, excluding tax collected and accounting for approved discounts or credits.
  • Estimated hours and actual hours, with a consistent internal labor-cost basis.
  • Parts purchased, parts actually used, and credits associated with the job.
  • Other direct costs and any later return-visit costs.
  • The variance, its explanation, and the action owner.

If you cannot substantiate a cost yet, mark it pending rather than entering zero. Review a small completed batch every week. Investigate the largest unexplained differences first; a worksheet nobody reconciles is not better than a notebook.

Where IKOK fits

IKOK connects the customer, job context, proposals, invoices and service documentation that support this review. Quote and invoice presentation can use your reusable wording and document templates. A customer-facing labor or materials amount describes what you charge; do not repurpose it as an internal payroll or purchasing ledger without checking what the field represents.

Keep the cost worksheet alongside your accounting review unless the demonstrated reporting setup covers your exact calculation. The QuickBooks Online integration exchanges supported records; it does not turn a synchronized invoice into proof of job profit or payment settlement.

Customization is useful here because your estimate should explain the work you sell, while your internal review should explain the resources it consumed. The two documents serve different readers. Use customer-facing scope and terms in the quote and keep internal reasoning in the appropriate staff records.

Make the review change the next estimate

For the example above, ask why the fourth hour was needed. If access arrangements were missing, improve intake. If a repeatable task was absent from the estimate, revise the scope template. If the return trip needed a model or serial number nobody captured, fix the equipment record. Raising every price would not answer any of those questions.

Bring one completed job to an IKOK walkthrough. Ask the team to trace its proposal, service record and invoice, then identify which data is available for your cost worksheet and which remains in your accounting process. That is a more useful evaluation than a generic promise of higher margins.