The HVAC year is not twelve equal months, and that is what makes annual bookkeeping unhelpful for this trade. Revenue and spend both spike through the cooling and heating peaks and fall away between them. A single year-end figure says the business made money; it does not say whether the fortnight when everything failed at once was profitable, or whether overtime, emergency supply runs and rush-priced equipment ate the difference.
How the spend gets captured
- Paper counter tickets — photograph the supply-house receipt from your phone; vendor, date and amount are read off the picture.
- Emailed invoices — connect Gmail once and a nightly scan reads supplier, material, equipment-rental and subcontractor receipt emails, writing each as a row in a Google Sheet in your own Drive with the original email kept as documentation. It labels what it has read so nothing double-counts, and never sends or deletes email.
- 🚫 No supply-house integrations exist and none are needed — the mechanism is the receipt itself, whoever sent it. A local wholesaler counter account works the same as a national chain, and switching suppliers mid-season changes nothing.
Service-call mileage: ExpenseBot reads job addresses from Google Calendar and estimates drive distance at the country rate (IRS/CRA/HMRC). No background GPS app. Because it works from calendar entries rather than recorded drives, the distances are estimates — confirm with your tax professional.
Profit per job — HVAC has two shapes that fail in opposite directions:
| One-off install | Maintenance plan | |
|---|---|---|
| Cost profile | One equipment line dominates | Many small visits across a year |
| Where margin is decided | Unit cost vs what was quoted, often weeks earlier | Whether every visit added up stays under the plan price |
| What hides the problem | Fittings, refrigerant, the second trip for a part | No single cost is big enough to notice |
Tag equipment, parts, mileage and the incoming payment to the same job (by customer, address or job number) and costs roll up against what the job billed.
Big equipment purchases: a threshold rule decides whether a purchase is expensed in the year or capitalised and written down. The threshold varies by country and changes over time, so no number is printed here — high-value HVAC equipment frequently sits close enough to the line that it is worth asking. ExpenseBot's job is to make sure the purchase is captured, categorized and still findable with its invoice attached. Estimates — confirm with your tax professional.
Seeing the season while it is happening: income is tracked alongside expenses, so what you have is a running profit-and-loss built from what has actually been captured — a record kept current, not a projection or a model. In a seasonal trade the value is reading the peak during the peak instead of six months later.
🚫 Not a dispatch or field-service management system. ExpenseBot does not schedule or dispatch techs. It sits alongside whatever scheduling software you run and deals with the money side.
Year end: categorized Google Sheet in the user's own Google Drive, kept if they leave; push to QuickBooks Online or Xero, or generate a Sage 50 / Sage Intacct import file; accountants and bookkeepers use ExpenseBot free.
🔗 HVAC bookkeeping & expense tracker · Wider trade: contractors · roofers
