Checking HVAC and mechanical supplier invoices
An air conditioning or mechanical services invoice mixes a few expensive lines, the indoor and outdoor units, with a long tail of pipe, duct, fittings and refrigerant.
Who you buy from, and how it's billed
The indoor and outdoor units are where a price a few per cent over costs the most, and the pipe and refrigerant are where the unit of measure on the invoice drifts from the one you agreed.
- HVAC and refrigeration wholesalers
- Split, ducted and VRF indoor and outdoor units each, by model and capacity, at your account's trade price or a price quoted for the project.
- Refrigeration pipe and refrigerant
- Insulated pair coil by the roll or cut to the metre, ACR copper tube by the length, and refrigerant by the kilo or the cylinder.
- Duct and air distribution
- Flexible duct by the roll, spiral and sheet metal duct by the metre or fabricated to the job's drawings, and grilles, diffusers and dampers each.
- Controls, electrical and fittings
- Zone controllers, thermostats and isolators each, brackets and fittings each or by the pack, and tape by the roll.
- Cranes and access
- Crane trucks by the hour to lift units onto roofs, and scissor lifts by the day or the week.
What CostCode checks, and from when
Anything it can't check yet shows as Unverified, with the reason. It's never marked as fine. Why a line is unverified
From your first invoice
The same invoice twice, GST over ten per cent, or no ABN on a tax invoice.
Once a supplier has billed you a few times
A price up on what you've paid before
Checked, for you onlyFor an item with no agreed price, once there are three earlier prices for it from the wholesaler, a price up on them holds the invoice for you. What you've paid before is never put to the wholesaler.
Once your prices are in
Import each supplier's price list from a spreadsheet or a PDF, or let CostCode suggest one from invoices you've already uploaded, for you to confirm.
Units billed above your agreed price
CheckedEach line against the price list in force on the invoice date, and held when it's at least $25 and 3% over. Each model is its own item, found by the wholesaler's model code where the line and your price list both carry it.The project's quote not applied
CheckedLoad the wholesaler's quote for a job's equipment as that job's own prices, with the date it's valid until, and it's used on that job's invoices ahead of the wholesaler's prices for every job.Pair coil billed per metre when you agreed per roll
CheckedHeld as billed in a different unit, with both shown. CostCode doesn't work out how many metres are on a roll.Refrigerant billed per cylinder against a price per kilo
CheckedBilled per each against a price per kilo, the line is held as billed in a different unit. Printed as CYL, a unit CostCode doesn't recognise, it shows as Unverified rather than a guess at what the cylinder holds.Brackets or fittings by the pack against a price each
Asks you firstA pack can hold any number, so the line shows as Unverified, asking how many are in one.Freight, small-order fees and card surcharges
CheckedChecked against the charge you agreed. With nothing agreed, the line shows as Unverified, with the reason.
A worked example, made up
Sample HVAC Wholesale (made up)
SAMPLE-2583
Held$510.00
| Item | Amount | Your prices |
|---|---|---|
| 7.1kW reverse cycle split system6 EA × $2,045.00 | $12,270.00 | Above the agreed rate$510.00 over |
| Above the agreed rate. Agreed $1,960.00 per unit on the price list from 1 Jul 2026 | ||
6 units at $2,045.00 against an agreed $1,960.00 per unit is $510.00 over (4.34%). That's at least $25 and 3%, the default floors, so the invoice is held.
On a unit that costs thousands, a gap past the percent floor is well past the dollar floor too, so the percent floor is the one that decides. A price closer to the agreed one stays quiet: lower the percent floor in Settings if you want those held as well.
Billed at $1,995.00 per unit instead, the line would be $210.00 over (1.79%): more than $25 but under 3%, so it wouldn't be held.
What CostCode doesn't check
- Units billed against what was delivered or installed. CostCode doesn't read delivery dockets or commissioning records, so whether each unit billed arrived, and is the model specified, is yours to check.
- Rebates or promotions the wholesaler or the manufacturer pays you later.
- Credits for returned equipment. A credit line isn't price-checked.
Questions
Our wholesaler quotes each project's equipment. Can CostCode check invoices against the quote?
Yes. Load the quote for that job, with the date it's valid until, and its prices are used on that job's invoices ahead of the wholesaler's prices for every job. A line is checked against the quote when it carries the same model code or wording.
Pair coil is agreed per roll but sometimes billed per metre. What happens?
The line is held as billed in a different unit, with the agreed unit and the billed one side by side. CostCode doesn't work out how many metres are on a roll, so you decide whether the money is right, and nothing goes to the wholesaler unless someone in your team sends it.
Will CostCode query the wholesaler for us?
Not by itself. Supplier email starts off, so CostCode writes the query, quoting only your agreed price list, for you to copy into your own email. Nothing reaches a supplier unless someone in your team sends it.
Got a supplier invoice handy? Check it now.
About ten seconds. No account. We don't keep the file.
Or start free: 20 invoices a month, no card