Maintenance agreements are the closest thing to guaranteed revenue an HVAC contractor can have. You know exactly what work is coming, you know when it's coming, and you know what you're getting paid. Compare that to waiting for breakdown calls and you'll understand why the most profitable HVAC shops in the country run 40-60% of revenue through agreements.
But the agreement itself has to be right. A vague or incomplete maintenance contract creates disputes, sets the wrong expectations, and often gets ignored by both sides. Here's what a solid HVAC maintenance agreement needs to include.
The 8 Sections Every HVAC Maintenance Agreement Needs
1. Covered Equipment
List every unit by make, model, and serial number. "The HVAC system" is not a description. If a homeowner has two units and one of them is a 20-year-old builder-grade system that's three months from failure, you need to know exactly which equipment you've committed to maintaining. Be specific, and photograph everything at the initial inspection.
2. Covered Services
Break out exactly what each visit includes. For a typical residential agreement this means:
- Filter replacement (specify filter type and MERV rating)
- Coil cleaning (evaporator and condenser)
- Refrigerant level check (not recharge — specify this clearly)
- Electrical connection inspection and tightening
- Thermostat calibration check
- Blower motor and belt inspection
- Drain line flush and condensate check
- Safety control test
List what is NOT included just as clearly. Refrigerant recharge, repairs, and parts replacements should be outside the agreement scope unless you're specifically including them.
3. Visit Schedule
Two visits per year is standard for residential: one cooling check (spring) and one heating check (fall). Define the scheduling window — not "spring" but "March through May." Give yourself buffer. The calls you can't make in April stack up fast.
4. Pricing and Payment Terms
State the annual price, whether it's billed annually or monthly, and what happens if a payment is missed. Monthly billing at a small premium (typically 10-15%) reduces churn but creates more admin. Annual upfront billing is cleaner and gives you a cash flow boost at renewal time.
Include a price escalation clause — something like "pricing may be adjusted annually with 30 days written notice, not to exceed 5% per year." Without this, you're eating cost increases.
5. Priority Service Clause
Agreement customers should get priority scheduling. Put this in writing: "Agreement customers receive priority scheduling with a target response time of [X] hours during business hours." This is a genuine selling point, and it gives you a concrete benefit to pitch at the door.
6. Agreement Discount
Repair discounts (typically 10-15%) are one of the most effective retention tools. State it clearly: "Agreement customers receive a 15% discount on all parts and labor for repairs performed on covered equipment." This alone often justifies the agreement cost to the homeowner.
7. Transferability
Decide whether agreements transfer when a home is sold. Non-transferable is simpler; transferable is a selling point for homeowners who may sell. If transferable, spell out the process and any transfer fee.
8. Cancellation Terms
What happens if the customer cancels mid-term? If they've received services, can you prorate and refund the rest? Or do you charge a cancellation fee? Either approach is defensible — just write it down. Disputes almost always happen because this was left vague.
Common Mistakes to Avoid
Not documenting the initial inspection. Walk through every unit, photograph what you find, and note anything that's already failing or marginal. If a capacitor is obviously near end of life at the time you sign the agreement, that needs to be documented. "Pre-existing conditions" disputes are the number one source of maintenance agreement friction.
Bundling agreements with repairs. Some contractors try to sell agreements at the point of a repair, offering to include the repair cost in the first year's agreement price. This creates a muddled accounting situation and can make agreements look unprofitable when they aren't.
No auto-renewal clause. Renewals should be opt-out, not opt-in. State that the agreement automatically renews at the end of the term unless the customer cancels in writing at least 30 days before renewal. Without this, you're chasing renewals every year.
Managing Agreements Without Losing Track
The logistics problem with maintenance agreements is tracking them at scale. Even 50 active agreements creates a scheduling and reminder management challenge that spreadsheets can't handle well. WerkOps includes a maintenance agreement module that tracks agreement status, scheduled visits, renewal dates, and sends automated reminders — so you're not manually chasing down which customer is due in April.
Pricing Your Agreement Right
A common rule of thumb: price the agreement at 1.5x the cost of labor for both visits. If a single maintenance visit takes your tech 1.5 hours at $150/hr fully loaded, the two visits cost you $450 in labor. Price the agreement at $675-$700 and you've covered labor with a reasonable margin before you factor in the value of guaranteed future repair work.
Don't discount agreements aggressively to get sign-ups. A customer who signed at a heavy discount is harder to renew at a fair price, and your most price-sensitive customers generate the most friction. Price confidently and let the priority service and discount benefits sell it.
Put this into practice with WerkOps
Run accurate load calculations, build estimates, and send invoices - all in one tool.
Start Free Trial
Written by
Dina Good
Founder, WerkOps
Dina grew up in the trades. Her father was a contractor, then a building inspector, and the job site was her classroom long before any formal one was. She went on to own her own contracting company, which is where she first felt the pain of running a skilled trade business on bad software and worse spreadsheets. A love of data pulled her into programming, and the two worlds eventually collided into WerkOps - software built by someone who has actually been on the truck.