Selling HVAC maintenance plans: the recurring-revenue playbook
How to price, tier, and actually sell service agreements so they smooth your shoulder seasons and lock in first-call loyalty: attachment-rate benchmarks, what to include, how to not lose money on unredeemed visits, and the Canada notes.
RDNE Stock project · PexelsA maintenance agreement is the closest thing a service business has to guaranteed recurring revenue. Members call you first when something breaks, renew year after year, and refer more than one-time customers. Recurring service agreements are a huge share of the HVACR services market overall, but don’t confuse the category with your shop: a typical individual shop earns only a low single-digit percentage of revenue from plans, while a strong program targets ~15-25%+. That gap is the opportunity. This is how to build the program so it gets there, instead of becoming a pile of unredeemed tune-ups you sold too cheap.
Why the plan matters more than the tune-up
The tune-up is the deliverable; the relationship is the asset. What a plan actually buys you:
- Retention. General service customers retain at maybe 40-60%; maintenance-agreement members retain at 80-90%. Keeping a customer costs roughly 5-7× less than acquiring a new one. The plan is your cheapest marketing.
- First call + the replacement pipeline. When a member’s system dies, you’re the call, and you already know the equipment’s age. Members are where your system-replacement leads come from, and a replacement is the big ticket.
- Shoulder-season cash flow. Spring and fall tune-up visits fill the calendar in the slow weeks between the cooling and heating rushes, turning dead time into billable, pre-sold work.
- Lifetime value. Members are widely cited at ~25% higher lifetime value (some operators claim 3-5×), because the plan compounds: renewals, priority repairs, upsells, and the eventual changeout all flow through it.
How to price and tier it
Residential plans commonly land $150-$500/year, with the everyday anchor around $175-$350/year. The classic price point is roughly $200/year (~$17/month). Monthly billing lifts sign-ups (it reframes the cost) and improves cash flow. Offer it.
A clean three-tier ladder (name them for your brand, but this is the shape):
| Tier | Typical price | Core inclusions |
|---|---|---|
| Basic | ~$150-200/yr | 2 seasonal tune-ups (spring AC, fall heat), standard filter check |
| Standard | ~$200-400/yr | Everything in Basic + priority scheduling + 15-20% repair discount + no trip charge |
| Premium | ~$300-600/yr | Everything in Standard + waived diagnostic fees + no-overtime emergency service + extended/labor-coverage tie-in |
The two seasonal visits (one in spring to prep cooling, one in fall to prep heating) are the backbone. The tiers are built out of the things that cost you little but the customer values a lot: priority, waived fees, and discounts.
Don’t underprice it. Do the math before you set a number. The #1 way shops lose money here is pricing the plan below what two real visits plus the promised discounts cost to deliver. Cost out a single tune-up first:
- Loaded tech labor: ~$85-$120/hr × 1.5-2 hrs on-site + travel/windshield
- Consumables: ~$15-$25 (filters, etc.)
- Dispatch/insurance/admin overhead: ~$10-$20
That’s roughly $150-$200 of direct cost per visit. With two visits a year plus a repair discount you’re giving away, price the plan at ≥ ~1.8-2.2× your direct cost: e.g. a ~$180 delivered cost points to a ~$350-$400 minimum on the fuller tiers, not $150. A plan that loses money on every renewal is a liability that compounds.
How to actually sell it: attachment rate is the whole game
A great plan nobody buys does nothing. Attachment rate is where the program is won or lost, and it’s a process problem, not a pricing one:
- Attach at the moment of value. The best time to sell the plan is at the end of a repair or a new install, when the customer is already thinking about reliability. “I’ve got your system running right. Let’s keep it that way” beats a cold pitch every time.
- Benchmarks to manage to: a service tech should convert at least ~25% of service calls into agreements; dedicated maintenance techs hit 70%+. Shops that pay a per-agreement bonus report tech-driven attach rates above 35%. If your techs are under 25%, it’s a scripting and incentive problem. Fix that before touching price.
- Script it and make it a habit, not an ad-lib, and leave a one-page value recap. A close that works at the end of a repair: “System’s running solid now. The two visits in the plan catch the small stuff before it becomes an $800 repair, and you get priority scheduling and a repair discount that pays for itself on the first call. It’s about $17/month, or $199 up front. Which works better for you?”
- Pay for it, and make it visible. A $25-$50 bonus per agreement (paid on the first payment, clawed back if the customer cancels within 90 days), or ~10-15% of first-year plan revenue, moves the needle, but only with a weekly leaderboard. Bonuses nobody sees do nothing. Track attach rate per tech and coach the laggards.
- Bundle with labor coverage, with guardrails. Pairing the plan with a discounted labor warranty pushes attachment to ~60-70% versus ~25-35% standalone, and a maintained system fails less and keeps the manufacturer warranty valid (documented annual service is often required; see the warranty guide). But cap the repair discount around 15% or you bleed margin on the very repairs that fund the program, and don’t bundle parts coverage on plans under ~$500 without a pre-inspection and an equipment-age cap (below).
How to not lose money running it
- Book both visits. Don’t bank on breakage. “Breakage” (members who pay and never schedule) looks like free money but it’s a renewal-killer: a member who got nothing all year cancels. Proactively schedule both seasonal visits; software that auto-prompts the fall/spring booking is worth it.
- Handle cancellations with a prorated rule, in writing. Standard practice: refund the unused prorated portion less the single-visit rate for each visit already performed (e.g., a $249 plan, one of two visits done at a $149 single-visit rate → refund ~$100). Put it in the agreement so it’s never a fight.
- Use real service-agreement software (ServiceTitan, Housecall Pro, and similar) to track members, auto-remind renewals, and trigger seasonal booking. Manually tracking a growing member base in a spreadsheet is how renewals quietly leak.
- Beware the old-system trap. Selling a full-coverage plan on a 15+ year-old system without inspecting it first is how you buy a year of unprofitable emergency calls under your own discount, and a member who cancels anyway when it dies. Inspect before you enroll aging equipment, and use a basic (visits-only) tier or an age cap on the coverage-heavy tiers.
- Fight renewal leakage. Send members a mid-year value statement (visits performed, discounts used, priority calls) so they see what they bought. Auto-renew with a 30-day notice beats manual renewal by a wide margin (respect provincial notice rules in Canada).
- Measure the program: active members, renewal rate (target 80%+; below 70% triggers a root-cause look, usually unbooked visits or price/value mismatch), attach rate per tech, revenue per member (target ~$350-$500 including pull-through repairs), and % of members redeeming both visits (target >85%).
🇨🇦 Canada notes
The model is identical; two things to get right:
- Tax: maintenance agreements are a taxable supply: charge GST/HST on the plan (and PST/QST where it applies) per your province. Build it into the price so the plan math still clears margin after tax (see the taxes guide).
- Consumer-protection / contract rules on auto-renewal and cancellation vary by province and can be stricter than the US. Spell out renewal and cancellation terms plainly, and in Québec provide the agreement in French. Don’t auto-renew silently where the province requires notice.
Checklist
- Design a 3-tier plan (Basic / Standard / Premium) built on 2 seasonal visits + priority + discounts.
- Cost a tune-up and price every tier to clear delivery cost + the repair discount, with margin.
- Offer monthly billing to lift sign-ups and smooth cash flow.
- Script the pitch, attach at the end of every repair/install, and track attach rate per tech; add a per-agreement bonus.
- Bundle the plan with labor coverage. It lifts both attach rates and keeps manufacturer warranties valid.
- Proactively book both seasonal visits every year. Don’t rely on breakage.
- Put a prorated cancellation rule in the written agreement.
- Run it in service-agreement software; track members, renewal rate, attach rate, revenue/member.
- Canada: charge GST/HST (+PST/QST); comply with provincial renewal/cancellation rules; French contracts in Québec.
The bottom line
Maintenance plans turn one-time buyers into members who retain at 80-90%, call you first, and hand you the replacement when the system dies. The revenue is real and predictable, but only if you price above your delivery cost, drive attachment as a coached process (not a hope), book the visits you sold, and bundle coverage so the plan and the warranty reinforce each other. Get those right and the plan becomes the flywheel the whole shop runs on.
General information for HVAC business owners, not legal or tax advice. Pricing, retention figures, and consumer-protection/tax rules vary by market and change. Confirm current requirements for your jurisdiction.
This guide is general information for independent HVAC shop owners, not legal or financial advice. Some outbound links may be affiliate or sponsored links, which are disclosed and never affect our recommendations.