What We Learned Building PolarPath with a Real HVAC Contractor Workflow
There is a version of building software where you stay in a room, read industry reports, and ship features based on what sounds logical. We tried the other version: sitting inside a working HVAC and mechanical contractor's operation, watching how the days actually moved, and building from what we saw.
What we learned changed the architecture of PolarPath in ways we did not expect. This post is an honest account of one of those lessons, because we think it is useful whether or not you ever use our platform.
The Assumption We Had to Unlearn
Before we went deep with a real contractor operation, we thought the core problem was data entry duplication. The assumption: people were typing the same thing into multiple tools, so the fix was to sync those tools together or replace them with one.
That assumption was partly right, but it missed the more expensive problem.
The real damage was not the re-keying. It was the handoff gaps between departments where no one was technically wrong, but the baton got dropped anyway.
Here is what that looks like in practice inside a mixed HVAC operation doing both reactive service calls and planned mechanical projects.
The Handoff That Nobody Owns
A service call comes in. Dispatch books a tech. The tech shows up, does the work, identifies that the commercial unit needs a part that has to be ordered, and documents it on paper or in a dispatch app. The call gets marked complete.
Now: who follows that PO? Who ties it back to the original work order when the part arrives? Who makes sure the tech goes back, completes the install, and that the completed work triggers an invoice?
In most shops the answer is: someone does it, eventually, if they remember. There is no system handoff. There is a person who has to hold that context in their head, notice the part arrived, find the original work order, re-dispatch, and then manually connect the billing.
When that person is busy, which is always, things slip. The work gets done but the invoice is late. Or the invoice never goes out at all because the work order was never formally closed. The labour and the part are a cost on the books. The revenue is not.
This is not a technology failure. It is a workflow architecture failure. The tools being used were not designed to maintain continuity across that kind of hand-off. Each one was designed to be good at its specific job: dispatching, or invoicing, or tracking parts. None of them were responsible for the thread connecting all three.
What We Saw in the Margin Numbers
When we started mapping this with the contractor team, we were not looking at margin at first. We were looking at scheduling conflicts and missed follow-ups.
But the margin numbers surfaced quickly. Not because anyone handed us a report, but because when you trace a work order from intake to invoice and look at how many of them actually closed clean, the gap between "work performed" and "work billed" becomes very visible.
Change orders were a version of the same problem, but worse, because they often happened mid-project and were documented loosely. A field tech scopes additional work, the customer agrees verbally or over text, the work gets done. Nobody disputes it. But if the change order is not formally captured and attached to the project before invoicing, it does not get billed. It just becomes margin erosion.
We were not building a billing tool. But we quickly understood that if we did not solve the continuity problem, we would be building something that looked like a solution and acted like one more silo.
The Lesson: Continuous Operational Truth
The phrase we landed on internally was "operational truth." It means: at any given moment, someone in the business should be able to see the real state of any job, quote, crew, or invoice without having to call someone or open three different apps.
That sounds simple. It is not.
Achieving it required us to think about PolarPath not as a set of modules that happen to share a login, but as one continuous workflow where an event in one part of the business automatically updates the state everywhere it matters.
Here is a concrete way to think about it for your own shop, regardless of what tools you use:
A Simple Audit: Trace Five Jobs End to End
Pick five jobs from the last 60 days. For each one, answer these questions:
- Intake to quote: How long between the customer request and a quote in their hands? Where did that request live before the quote was created?
- Quote to dispatch: When the quote was accepted, did dispatch know automatically, or did someone make a call or send an email?
- Field to change order: If the scope changed on-site, how was that captured? Is it attached to the job record, or is it in a text thread or email somewhere?
- Completion to invoice: From the moment the tech marked the work done, how long until an invoice went out? Who initiated that? Was there anything that required the tech's information to be re-entered somewhere else?
- Invoice to collection: Once the invoice was sent, what happened if it was not paid in 30 days? Was there an automatic follow-up, or did someone have to notice and act?
If you can trace all five cleanly without relying on a person's memory or chasing information across tools, your workflow architecture is solid. Most shops we talk to cannot.
The gaps in that trace are where margin leaks. Not in dramatic ways, but steadily. Late invoices, unbilled change orders, parts that were ordered and installed but never connected back to a billing event.
What This Meant for How We Built
The practical consequence for PolarPath was that we stopped treating modules as features and started treating them as stages in a continuous chain. A quote accepted by a customer does not just update a CRM record. It creates a work order. That work order drives dispatch. What the tech does in the field drives what gets invoiced. A change order captured on-site attaches to the project and surfaces in margin tracking before the job closes.
QuickBooks stays in place as the accounting system of record. We do not compete with it and we do not try to own the general ledger. PolarPath owns the operational execution layer, which is the part where the business events actually happen: the quote, the dispatch, the field work, the change order, the work order close. When those events are captured cleanly and continuously, what flows into QuickBooks is accurate, not a reconstruction from memory.
That distinction matters. A lot of the reconciliation pain contractors feel at month-end is not an accounting problem. It is an operations data problem. The accounting software can only work with what it receives.
The Practical Takeaway
If you are evaluating your own workflow architecture or considering new tools, the question worth asking is not "does this tool do the thing I need?" Almost every tool does the thing. The question is: does this tool hand off to the next stage automatically, or does it require a human to carry information across the gap?
Every gap that requires a human is a gap that depends on that human being available, remembering, and prioritizing correctly. In a 30-person shop running reactive service and planned projects simultaneously, that is a lot of dependence.
Map your handoffs. Find the ones that live in someone's head or in a text thread. Those are your margin leaks.
We built PolarPath to close those gaps for field-service and project teams that have outgrown founder-led coordination. But even if that is not where you are, the audit above costs nothing and will tell you exactly where your operation is losing money it already earned.
If you want to see how the workflow maps to your specific operation, we are happy to walk through it. Book a walkthrough at polarpath.ca.

