A heating and cooling company fighting to keep technicians in a competitive market was tracking bonuses by hand, and the hand-tracking kept quietly dropping people's pay. A ServiceTitan-synced, multi-role plan closed the gaps CSRs and installers could actually see.
Ask a technician why they left one HVAC company for another, and the honest answer is rarely just the base wage. It is usually some version of not trusting that the extra effort was going to show up in the paycheck. A bonus plan that is hard to explain, slow to calculate, or occasionally just wrong is functionally the same as no bonus plan at all, because a technician who cannot predict their own pay stops factoring it into the decision to stay.
That was the quiet risk sitting underneath a heating and cooling company competing hard for technician talent in a crowded regional labor market. The company runs a small in-house install crew, a CSR team fielding both inbound bookings and outbound follow-up calls, and a lead-installer structure pairing senior and junior technicians on jobs. Leadership knew, in the way most owners know these things without a report proving it, that pay was supposed to be a competitive advantage in a market where every technician has recruiters calling. The problem was that the mechanics behind the bonus were held together with hardcoded fields and manual fixes that quietly broke something new almost every pay period.
A Bonus Plan That Needed a Human to Babysit It Every Cycle
The specific failures were small individually and corrosive in aggregate. When a technician got deactivated and re-added in the system, sometimes for something as routine as a payroll correction, their install attribution for that period silently disappeared. One technician's entire June install credit went missing this way, caught only because someone happened to notice the number looked low and went digging. Assignment fields tying a job to the technician who actually worked it were hardcoded rather than pulled live, which meant they needed to be manually corrected almost every pay period as crews shifted and jobs got reassigned midstream.
The deeper structural problem was in how average ticket, the number a chunk of technician commission was based on, got calculated. With no minimum sample size built into the math, a technician who happened to complete only three or four jobs in a slow week could see their average ticket swing wildly based on a single unusually large or unusually small job. One specific case made the flaw obvious: a technician showed five completed jobs against only three counted opportunities in the underlying data, a mismatch that meant the average-ticket number driving part of their commission was built on a broken denominator. A technician doing solid, ordinary work in a slow week could watch their commission swing based on noise in the data rather than anything they actually controlled.
None of this was any single person's fault. It was what happens when a bonus plan grows more complex than the manual process behind it can reliably support. Every fix was reasonable in isolation, a hardcoded field here, a quick correction there, but the accumulation of small manual patches is exactly the kind of thing that erodes a technician's trust in their own paycheck, one confusing pay period at a time.

Building One Plan That Covers Every Role, Not Three Separate Patches
ShareWillow rebuilt the incentive structure around a simple principle: every role on the team needed a bonus mechanism that pulled from live ServiceTitan data rather than a field somebody had to remember to update. Installers moved to a tiered percentage of revenue, with a lead and helper split of 60 percent to 40 percent on jobs run by a two-person crew, so attribution followed the actual job record instead of a hardcoded assignment that could silently break when a crew roster shifted.
The CSR team's booking-rate bonus was rebuilt as a genuine tier structure instead of a single threshold. An 85 to 90 percent inbound booking rate qualifies for the base tier. Cross 90 percent and each qualifying call is worth $1.00. Cross 95 percent and that same call is worth $1.50, a 50 percent jump in per-call value for the CSRs converting at the highest rate. Layered on top of the booking-rate tiers is a separate outbound call-volume qualifier requiring at least 40 completed outbound calls a month, plus a quality score pulled from the company's own call-review process, so a CSR chasing the top tier cannot do it by rushing calls or padding volume without substance behind it.
Every role, CSR and installer alike, now also earns a flat $15 bonus for every five-star review tied to their work, a small, direct incentive connecting a technician's on-site conduct to a customer's public feedback, paid the same way regardless of which role generated it. And to close the average-ticket problem directly, the new plan requires a minimum of five completed opportunities before a technician's average-ticket number counts toward their commission at all, which stops the kind of three-job, wildly-swinging month that had been quietly distorting pay under the old structure.
Two target numbers anchor the whole plan and give the team something concrete to aim for rather than an abstract sense of doing better: a service average ticket above $600, and a maintenance average ticket above $250. Both numbers came from the company's own historical job data rather than an industry rule of thumb, which means every technician is being measured against what this specific team, doing this specific work, in this specific market, has actually shown it can produce.

Profit sharing
made simple.
Give your team a stake in the company’s success. ShareWillow helps you create and manage profit-sharing programs that motivate employees and drive business results.
What Changed, Concretely
- Install attribution now pulls live from ServiceTitan, closing the gap that had silently dropped a technician's credit after a routine deactivation.
- Assignment fields are no longer hardcoded, removing the need for a manual correction almost every pay period.
- A five-opportunity minimum now gates the average-ticket calculation, ending the small-sample swings that let one unusual job distort a technician's commission.
- CSR booking-rate bonuses moved from a single threshold to a real tier structure, with per-call value climbing from a base tier to $1.00 to $1.50 as booking rate crosses 90 and then 95 percent.
- A flat $15 bonus now rewards every five-star review, regardless of role.
None of these changes required the company to spend more on incentive pay overall. What changed was where the accuracy problems lived. A plan that used to need a person checking hardcoded fields and re-deriving averages by hand now checks itself against the same live data the field team is already generating, which means the hours that used to go into manual reconciliation go somewhere else, and the team spends less time wondering whether this month's number is actually correct.
Why the Fix Mattered More Than the Dollar Amount
It would be easy to read this story and focus only on the mechanics, the tiers, the qualifiers, the split percentages. The more important piece is what those mechanics were actually protecting against. In a labor market where a technician can get a competing offer with one phone call, a pay plan that occasionally, unpredictably shortchanges someone through no fault of their own is not a neutral bug. It is a retention risk hiding inside the very tool that was supposed to be a retention advantage.
A technician who watches their commission swing because of a three-job sample size, or discovers their install credit vanished after a routine system change, does not usually file a complaint. They just quietly start taking recruiter calls more seriously. The cost of that kind of erosion never shows up as a single line item. It shows up months later as a resignation letter, and by then it is far too late to point to the specific hardcoded field that started the doubt.
Building a bonus structure that ties every role's pay to live, verifiable data is not just a payroll accuracy project. It is one of the few retention levers an owner can pull that a technician actually notices week to week, in a way a general wage increase, spread thin across every pay period, often does not. A CSR who sees their per-call value jump from $1.00 to $1.50 the moment they cross 95 percent booking rate is getting a real-time signal that effort translates directly into pay, and that signal is worth more to retention than most owners give it credit for.
Companies weighing a similar rebuild, closing the gap between what a bonus plan is supposed to reward and what a manual process can actually track accurately, can see how ShareWillow structures multi-role incentive pay plans that stay synced to live field data across every role on a crew. HVAC companies specifically can look at what a typical HVAC incentive plan looks like when installers, CSRs, and lead technicians are all covered by the same accurate, automated structure.
The lesson worth carrying into your own shop is not about the specific tiers or the specific dollar figures. It is that a bonus plan complex enough to need constant manual babysitting will eventually drop something a technician notices, and in a market this competitive, one dropped paycheck is sometimes all it takes to lose someone you spent years training.
Conclusion
In a tight labor market, a pay plan nobody can explain is not a retention tool, it's a rumor waiting to cost you your best technician.
Create incentives
that
drive results
You shouldn't need complex equity plans to align your team. ShareWillow makes it simple to create transparent profit-sharing programs that motivate employees and grow your business.

Incentive plans to help
small businesses thrive.
.png)
"I was able to leverage the knowledge of the ShareWillow team to learn how other companies were designing their bonus plans. The template was extremely helpful."

