bdevy.

Guide · 6 min read

How to Invoice an HVAC Job: Step-by-Step Guide for Contractors

The eight steps from finished job to recorded payment, with a full worked repair invoice and the arithmetic shown at every stage.

Published 12 September 2026 · BDEVY

# How to Invoice an HVAC Job: Step-by-Step Guide for Contractors

The invoice is the last thing that happens on a job and the first thing that goes wrong.

Not usually because anyone is careless. It goes wrong because the information needed to produce it is spread across a phone, a paper ticket, a van and somebody's memory, and it has to be reassembled by a person who was not there.

This is the sequence that stops that happening, worked through on one real repair.

The job: no cooling at a residential property. Outdoor unit humming, condenser fan not turning. Mike Johnson attended Tuesday morning, ninety minutes on site.


Step 1 — Complete the job properly on site

An invoice is only as good as what the technician submitted, and this is the step that determines everything downstream.

Four things, and only four:

WhatWhy the office cannot invoice without it
What was doneIt is the description on the invoice
Parts usedThey are line items
Hours on siteThey are the labour line
What should happen nextIt is the next job

A completion form that asks for twenty fields on a phone in a driveway does not get filled in on the driveway. It gets filled in from memory at nine that evening, which is exactly where the errors come from. Ask for what you need and nothing else.


Step 2 — Document the work in the language of the work

This is the difference between an invoice that gets paid and one that generates a phone call.

Weak:

Replaced capacitor.

Strong:

Found the dual run capacitor reading 18.2 µF against a 45/5 µF rating — failed on the fan side, which is why the compressor was humming and the fan was not turning. Replaced with a matched 45/5 unit. Verified compressor and condenser fan amp draw within nameplate. Temperature split 19°F at the return on departure. System operating normally.

The second version costs about forty seconds to type. It contains a measurement, a diagnosis, a fix and a verification, and a customer reading it can see what they bought. The first version is a number with a word in front of it.

Write down the reading. The number is what makes it credible.


Step 3 — Record the parts at cost and at price

Both. This is the step most often skipped, and skipping it is what makes job costing impossible six months later.

PartCostPrice
Run capacitor, dual 45/5$22.00$118.00

The cost column never leaves the office. But without it you cannot answer the only question that matters about a job after the fact — did it make money — and you certainly cannot answer it across two hundred jobs.


Step 4 — Record the labour at both rates

Same principle, and the one contractors most often get wrong.

  • Customer labour rate: $125/hr — what appears on the invoice
  • Burdened labour cost: $45/hr — wage, payroll taxes, workers' comp, insurance, vehicle, non-billable time

One technician, 1.5 hours on site:


Charged:  1.5 hrs × $125 = $187.50
Cost:     1.5 hrs × $45  =  $67.50
Margin on labour:           $120.00  (64.0%)

Both numbers are true. A system that stores only the first one cannot report a margin on anything.


Step 5 — Review the pricing in the office

The technician records what happened. The office decides what it costs. Things the technician either could not know or should not be deciding in a driveway:

  • Whether this customer's maintenance agreement discount applies
  • Which tax jurisdiction the property sits in
  • Whether the diagnostic is waived because the repair went ahead
  • Whether this is a callback inside a warranty period and should not be charged at all

That last one is worth a policy rather than a judgement call each time.


Step 6 — Build the invoice

ItemCategoryQtyUnit priceAmountTaxed
Diagnostic / service callDiagnostic1$129.00$129.00No
Run capacitor (dual 45/5)Parts1$118.00$118.00Yes
Service laborLabor1.5$125.00$187.50No

Subtotal                                    $434.50
Discount — maintenance agreement, 10%       −$43.45
Sales tax, 7.25% on $106.20                   $7.70
                                            -------
Total                                       $398.75

Why tax is charged on $106.20 and not $118.00. The only taxable line is the capacitor. The 10% discount comes off the whole invoice, so it comes off that line too: $118.00 × 0.90 = $106.20. Tax is due on what the customer actually pays for the goods, not on the list price.

Applying the discount after tax would overcharge the customer and leave you holding tax you collected on money nobody paid.

Whether labour is taxable where you work is a different question, and it varies by state and county. Confirm your own treatment with your accountant.

Build one with your own numbers: HVAC invoice calculator →


Step 7 — Send it the same day

Every day between finishing the work and sending the invoice is a day added to when you get paid. It is the cheapest improvement available to most contractors and it requires no negotiation with anybody.

Include:

  • A clear balance due and a due date
  • The terms, stated on the document
  • A way to pay online
  • Enough description that the customer knows what they bought

Send it by whatever the customer actually reads. For most residential work that is email with an SMS saying the email has arrived. For commercial accounts it is whatever accounts payable specified, which is often a portal and a purchase order number, and ignoring that requirement is a reliable way to wait sixty days.


Step 8 — Track the payment against the invoice

Against the invoice, not against the customer's balance in general.

SituationWhat the system should show
$398.75 receivedPaid
$200 received, still inside termsPartially Paid, $198.75 outstanding
Nothing received, due date passedOverdue
$200 received, due date passedOverdue — a part payment does not reset the clock
Paid three weeks latePaid, not overdue

That last row is the one systems get wrong. An invoice settled after its due date is paid. Showing it in red forever is how an aging report stops being read.


What the job actually made

Now the useful part, which is only possible because cost was recorded in steps 3 and 4.


Revenue (pre-tax, after discount)             $391.05
  Less labour cost      1.5 × $45              −$67.50
  Less parts cost                              −$22.00
  Less diagnostic cost (the hour it took)      −$42.00
  Less drive time and vehicle                  −$28.00
                                              --------
Gross profit                                  $231.55
Gross margin   $231.55 ÷ $391.05  =             59.2%
Markup         $231.55 ÷ $159.50  =            145.2%

Note that tax is excluded from revenue. The $7.70 was collected for the state and passed through; counting it would inflate the figure and understate the margin.

Note also that gross margin is before overhead. Rent, office wages, advertising, software, insurance and the owner's pay all still come out of that $231.55. A healthy gross margin is not the same as a profitable company.

HVAC job costing calculator →


The eight steps

  1. Complete the job on site — work, parts, hours, recommendation
  2. Document the work in the language of the work, with the measurement in it
  3. Record parts at cost and at price
  4. Record labour at both rates
  5. Review pricing in the office — discounts, tax, waivers
  6. Build the invoice, applying the discount before tax
  7. Send it the same day, with terms and a way to pay
  8. Track the payment against that invoice

Steps 1 to 4 happen in the field. Steps 5 to 8 happen in the office. The whole point of invoicing software is that the handover between them is not a paper ticket in a van.

See these steps in a working demo →

hvac service software hvac software for contractors hvac invoicing

Turn missed calls into booked jobs

Every unanswered call gets a text back within seconds, every lead gets followed up, and the schedule fills without another person in the office.