Skip to content
Join the waiting list

HVAC software: two compulsory codes, one price list

HVAC software for a trade Ontario makes compulsory twice over: the ticket beside yours on the same roof, the markup that has to survive a quote, and the subcontractor slip in March.

Steamfitter/Pipefitter · Refrigeration and A/C Mechanic · Gasfitter A/B · Sprinkler Fitter

The master data screen: folders down the left for the kinds of item a business keeps, and on the right a table of material rows, each carrying an item number, a unit, a cost, a markup in percent and the sell price that falls out of the two — the same row a quote line is built from.

A heating and cooling firm in Ontario quotes three things in one afternoon: a furnace, a coil, and the duct that feeds them. Three tickets, potentially three people, and only one of them is yours.

Refrigeration and air conditioning systems mechanic is compulsory in Ontario under two codes, 313A and 313D. Gas work is licensed separately again. And the sheet metal worker who hangs the duct is compulsory too, under 308A and 308R — in a province whose list of twenty-three compulsory trades does not contain a single carpenter, bricklayer, painter, roofer or drywall finisher.

That is worth stating plainly because it is the opposite of what a firm coming from Australia or the United States expects. There, the metalwork on a building is mostly unlicensed. Here it is named twice.

The price list is the quote, not a copy of it

An HVAC quote lives and dies on the difference between what a unit costs you and what it costs the customer. In Zirko a material carries an item number, a unit, a cost, a markup in percent and the resulting sell price in the same row — no second spreadsheet, no "current pricing" tab that somebody forgot.

A service is an assembly of cost types: labour minutes from a wage group, material, equipment, subcontracted work. The quote takes the assembly rather than a number typed once and never revisited, which is how a compressor price change reaches next week's quotes without anybody opening twenty documents.

What has to be on the invoice once the job passes five hundred dollars is a separate and precise question — the $500 tier and holdback.

Job costing per cost type, because subcontracted work is where it leaks

A job in Zirko carries its costing next to its documents: total costs against the estimate, and a bar per cost type. Labour, material, equipment, subcontracted work and other, each against its own budget, each in Canadian dollars, and each red when it passes the line.

Subcontracted work having its own cost type is not tidiness. If construction is your primary source of business income, payments to subs have to be reported — primarily construction income means reporting your subs — and the figure is far easier to produce from a cost type than from a bank statement in March.

Whether the person was a sub at all is a different question, and the contract is not the answer to it: why the contract does not answer it.

What the technician records at the customer's kitchen table

On the phone it is the same application, not a cut-down second one. Report templates are built from blocks — date, period, crew, a number field, free text, photo and a signature taken with a finger — and fields you mark as required stop a report being closed half-written. The customer signs on the phone: no account, no printer, no trip back to the office.

Line items on the phone come from a reading view that carries no amounts at all. That is decided in the database, not in the interface, so an apprentice sees assigned jobs and released folders and nothing about margin. Tap targets are built larger than usual because there is a glove in between, and while the application is open, hours and job messages can still be written with no signal in a mechanical room.

An hour taken into a document carries an origin marker and leaves the selection, so the same hour cannot be billed twice. An issued invoice cannot be changed either: a correction is a credit note or a cancellation with its own number.

What it does not do

No recurring maintenance generator, so seasonal service plans are not created for you. No dispatch board that optimizes routes or forecasts capacity, no map of your vans, no clock-in with location checking, no load calculation and no equipment catalogue from a distributor. Zirko issues no certificate and validates no licence number. Nothing in it is decided by a language model — the automation is eleven fixed rules you switch on one at a time, and a dry run goes through the same functions and sends nothing.

Plans are counted in office seats, with field licences for anyone who only works on site, and the mobile application comes with every office seat. Nothing is metered by jobs per month, which decides more than the headline price in a trade whose winter and summer look nothing alike. Fourteen days free, no payment details, and the trial ends by itself.

Frequently asked questions

  • Is refrigeration and air conditioning a compulsory trade in Ontario?

    Yes, and under two codes rather than one: 313A and 313D both appear on Ontario's list of twenty-three compulsory trades. Gas work sits beside them under its own licensing, and the sheet metal worker who runs the ductwork is compulsory as well, under 308A and 308R. A firm that quotes a furnace, a coil and the duct to feed it is quoting across more than one ticket.

  • Why does the sheet metal ticket matter to an HVAC firm?

    Because it is the sharpest contrast Canada offers. In Australia and the United States the sheet metal trades on a building are largely unlicensed, while Ontario names the sheet metal worker twice on its compulsory list and British Columbia certifies the trade as well. The ductwork beside your unit is therefore not an extension of your certificate — it is somebody else's. Zirko holds no register of tickets and checks nobody's number.

  • How does a markup survive from the price list into the quote?

    A material in Zirko carries an item number, a unit, a cost, a markup in percent and the resulting sell price in the same row, and a service is an assembly of cost types: labour minutes from a wage group, material, equipment, subcontracted work. The quote takes the assembly rather than a typed figure, so a change in the cost of a compressor does not have to be chased through twenty saved documents.

  • Does Zirko create next year's maintenance visits?

    No. There is no recurring maintenance generator, so a seasonal service plan is not created for you, and there is no dispatch board that optimizes routes or forecasts capacity. What exists is a scheduling board you fill yourself, from one week to half a year, with absences already on it, and reminder rules that fire on a status you named rather than on a calendar Zirko invented.

  • What does the T5018 slip have to do with a heating contractor?

    If construction is your primary source of business income, payments to subcontractors have to be reported, and the reporting is built on what you actually paid rather than on what you meant to pay. In Zirko subcontracted work is a cost type of its own on the job, visible against its budget in job costing, so the figure exists before the slip is due rather than being reconstructed from bank statements in March.

Be there at launch

Zirko launches late 2026. Sign up and we'll let you know the moment it goes live — one email, nothing more.

Available from late 2026

One email at launch, nothing else. You confirm with a click, you can unsubscribe at any time, and the list is deleted after launch. Details in the privacy policy.

By trade