How to Prove and Protect the Labor on HVAC Maintenance Agreements

Maintenance agreements are the steadiest revenue an HVAC or plumbing shop has — and the easiest to quietly lose money on. With no invoice per visit to anchor the time, tune-ups get rushed, skipped, or run long. Here is how to prove the visit happened and protect the margin.

Maintenance agreements are the steadiest revenue an HVAC or plumbing shop has — and the easiest to quietly lose money on. With no invoice per visit to anchor the time, tune-ups get rushed, skipped, or run long. Here is how to prove the visit happened and protect the margin.

The Revenue You Can Count On, and the Cost You Can’t See

Every healthy HVAC or plumbing shop is built partly on maintenance agreements — the spring and fall tune-ups, the annual checks, the priority-service plans customers pay for up front. They smooth out the seasonal swings. They keep techs busy in the slow weeks. They feed the replacement and repair work that follows. It’s the steadiest revenue you have.

It’s also where margin quietly disappears. A normal repair call ends in an invoice, and that invoice forces someone to account for the hours. A maintenance visit doesn’t. The customer paid months ago, so when the tech rolls up to a prepaid tune-up, nothing downstream is counting the labor. Run 30 minutes long and the overage just vanishes into payroll. Rush it, skip the coil cleaning, and nobody notices — until the system fails in July. The fixed price collides with variable, untracked labor, and you find out how it went only at renewal time. Or when the callback comes.

Why Agreements Behave Differently From Billable Work

Maintenance visits need their own attention because the problem runs backwards from the usual field-service one.

With billable calls, the risk is unbilled labor — time the tech spent that never made it onto an invoice, the gap between paid hours and billed hours that quietly tanks utilization. That’s its own headache, and it’s worth understanding where billable and non-billable hours actually go.

A prepaid maintenance visit flips it. The revenue is already booked, fixed, done. Now the risk is unmanaged cost: labor running against a price that can’t move. Every minute over the expected duration is straight margin erosion, and because there’s no invoice to reconcile against, it’s invisible by default. You can’t manage what you never measured. And most shops never measure maintenance labor at all.

The Three Ways Agreements Leak

The leaks are mundane. That’s exactly why they persist.

Visits that run long. A tune-up that should take 45 minutes takes 75, every time, for a particular tech or a particular plan. Across hundreds of prepaid visits a year, that drift adds up to a serious labor number. And it’s nowhere in your reporting.

Visits that get rushed or skipped. Under time pressure, a prepaid visit is the easiest thing in the world to short. Skip a step, cut it to 20 minutes, or quietly let it slide off the schedule entirely. It saves time today and costs you a callback, a failed unit, or a non-renewal later. You can’t coach what you can’t see.

Visits you can’t prove happened. At renewal, a customer asks what they got for last year’s plan — and all you have is a tech’s word that someone came out. No arrival record. No time on site. No proof of delivery. That’s a renewal you’re now defending instead of closing.

Download ShiftFlow on the App Store or Google Play

Capture the Visit, Not Just the Day

The fix is to treat each maintenance visit as a tracked event in its own right — tied to the agreement, located at the customer, and measured against what it should take.

Clock in and out at the customer’s address, per agreement. A location-stamped punch when the tech arrives and leaves proves they were on site and for how long, and binds that labor to the specific maintenance agreement. Now the “did anyone ever come?” question at renewal has a timestamped answer.

Measure actual time against expected. Once you know how long each agreement type should take, you can compare every visit’s real on-site time to it. The visits that routinely run long surface as a pricing or training issue. The suspiciously short ones surface as a quality risk. Either way, you’re managing the labor instead of guessing at it.

Tie the labor to the agreement’s cost. Roll the tracked visit time up against each agreement and you can finally see plan-level profitability — which agreements pay for the labor they consume, and which are underwater. It’s the same discipline as costing labor against any job, applied to the recurring revenue most shops never cost at all.

Give customers proof of service. The arrival record and time on site become something you can show the customer — evidence the service they prepaid for was delivered. That’s half of why they renew.

Make the Steady Revenue Actually Profitable

Maintenance agreements only work as the reliable floor under the business if the labor inside them is visible — proven to the customer, measured against expectation, costed against the price. Capture each visit at the door, and the steadiest revenue you have stops being the quietest place you lose money.

If your maintenance visits are running on trust and a paper schedule, see how a time and visit system built for plumbing and HVAC teams stamps each agreement visit with arrival, location, and time on site — or put ShiftFlow on your techs’ phones and turn prepaid visits into something you can prove and manage.

Frequently Asked Questions

Why are maintenance agreement visits easy to lose money on?

Because the customer already paid, there’s no per-visit invoice forcing anyone to account for the labor. A tech can run long on a prepaid tune-up and the overage disappears into general payroll, or rush and skip steps to save time, and you won’t see either until renewals or callbacks tell the story. The fixed price meets variable, untracked labor, and margin leaks through the gap.

How do you prove a maintenance visit actually happened?

A location-stamped clock-in and clock-out at the customer’s address, tied to the specific agreement, proves the tech was on site and for how long. That record settles the “did anyone ever come out?” dispute at renewal time and gives the customer confidence the service they prepaid for was delivered.

How much labor should a maintenance visit take?

It depends on the equipment and scope, but the point is to know your own number. Track actual time on site against the expected duration for each agreement type, and you can see which visits routinely run long, which techs are fast or thorough, and whether your pricing reflects the labor it actually consumes.

Is tracking maintenance visits different from tracking billable jobs?

Yes. A billable job has an invoice that captures the labor by definition. A prepaid maintenance visit doesn’t — the revenue was booked up front — so you have to track the labor deliberately or it goes unmeasured. The risk is the opposite of a billable call: instead of unbilled work, you get unmanaged cost against a fixed price.

Download ShiftFlow on the App Store or Google Play