All posts

Recurring Maintenance Contracts: A Guide for Service Businesses

9 min read

The short answer: A recurring maintenance contract sells a defined set of scheduled visits for a fixed price, billed monthly or annually. Price it off your real cost per visit, loaded labor plus materials plus a margin, not off a competitor's sticker. Write the scope tightly so what is included and what is billed separately is unambiguous. Then put every visit on the schedule the day the contract is signed, so the work happens without anyone remembering to book it. Done well, maintenance contracts smooth cash flow, fill slow weeks, and turn one-off customers into a book of business you can forecast.

Most service businesses live on whatever came in this week. A maintenance program is the antidote: revenue you can see coming, crews you can plan around, and a customer relationship that renews instead of restarting.


What a maintenance contract actually is

It is a written agreement to perform specified work on a defined schedule for a defined price. Three parts, all of which must be explicit:

  • Scope. Exactly which tasks are performed on each visit.
  • Cadence. How many visits per year, and roughly when.
  • Price and terms. The amount, the billing frequency, the length of the agreement, and how it renews or cancels.

Everything that goes wrong with maintenance plans traces back to one of those three being vague.


Why recurring revenue changes the business

Cash flow becomes predictable. Monthly billing across a book of agreements gives you a floor under the month before a single new job is sold. That floor is what lets you cover payroll in a slow February.

Slow weeks get filled. Maintenance visits are flexible on timing within a window. When the project calendar goes quiet, you pull scheduled visits forward and the crew stays productive.

Repair work follows. A technician on site twice a year finds the failing part before the customer does. The plan is not just revenue, it is a lead source with a standing appointment.

Retention rises. A customer under contract does not shop your competitor when something breaks. They call you, because they already have a relationship and a file.

The business is worth more. Contracted recurring revenue is the part of a service business a buyer will actually pay a multiple for.


Designing the plan: scope first

Write the scope before the price. Pick a small number of tasks you can perform consistently, in a predictable amount of time, on every property in the category.

Good scope lines are specific and checkable:

  • "Replace the return-air filter, sizes up to 20x25."
  • "Clear all gutters and downspouts, ground level and single-story."
  • "Flush the water heater and test the pressure-relief valve."

Bad scope lines are open-ended: "general system inspection and any necessary adjustments." That sentence is how a 45-minute visit becomes three hours, and it is unenforceable in either direction.

Equally important is the exclusion list. State plainly what the plan does not cover, typically parts, refrigerant, equipment replacement, emergency after-hours calls, and any repair over a stated threshold. Those become separate quoted work, which is the correct outcome, not a failure of the plan.


Tiers, if you want them

Two or three tiers is the practical maximum. A common shape:

  • Basic. The minimum viable visit cadence, typically once or twice a year, plus priority scheduling.
  • Standard. More visits, a discount on repair labor, and no diagnostic fee.
  • Premium. The above plus faster response commitments and a discount on parts.

Resist adding a fourth tier. Each one multiplies the scheduling, pricing, and training you have to keep straight, and customers presented with four options tend to choose none.


Pricing the plan

Price from the bottom up. Never from what the shop down the road charges.

Step 1: Time the visit honestly. Use real numbers from jobs you have already done, including drive time. A "one-hour" tune-up with 25 minutes of travel and 10 minutes of paperwork is a 95-minute visit.

Step 2: Apply your loaded labor rate. Wage plus payroll taxes, workers' comp, and benefits, not the raw hourly wage. See how to calculate labor burden rate.

Step 3: Add consumables at cost. Filters, belts, lubricants, bags, whatever the visit consumes. Value stock at average cost, not the price on the last invoice, see average cost inventory for job materials.

Step 4: Add your margin. Apply the same target margin you use on project work, unless you are deliberately pricing the plan thinner because it reliably generates repair revenue. If you make that trade, make it on purpose and write down the number you expect to earn back. Confirm the margin clears overhead, see how to calculate overhead rate.

Step 5: Divide into billing periods. Annual contract price divided by twelve is the monthly charge. Monthly billing wins on conversion because the number is small; annual prepay wins on cash and on churn. Offering both, with a modest discount for prepay, covers both preferences.

A worked example. Two visits a year at 1.6 hours each is 3.2 hours. At a $62 loaded rate that is $198 of labor. Add $40 of consumables for $238 of cost. At a 40% gross margin the annual price is about $397, or roughly $33 a month. Round to $35 and the plan is priced on your numbers, not on a guess.


Scheduling the visits

The single most common failure mode is not pricing. It is that the visits never get scheduled, the year ends, the customer got two visits for the price of three, and the renewal conversation is uncomfortable.

Fix it structurally:

  • Book every visit at signing. Put all of the year's visits on the calendar the day the contract starts, even if the dates move later.
  • Use seasonal windows, not fixed dates. "Spring visit, March through May" gives you routing flexibility while still committing to the work.
  • Cluster geographically. Group contract visits by neighborhood so a maintenance day is one route, not six round trips. Drive time is the hidden cost that turns a profitable plan into a break-even one.
  • Backfill slow weeks. When a project falls through, the scheduled maintenance backlog is the first thing you pull forward.

For the mechanics of building routable crew days, see field service scheduling and capacity planning for field crews.


Billing and renewals

Bill on a fixed day each period, the same day every time, so customers recognize the charge. Send the invoice with a payment link rather than expecting a check, and keep a record of every visit performed against the agreement, so the value is visible when the renewal comes up.

Renewals go better when they are not a surprise. Reach out 30 to 60 days before the term ends with a short summary of what you did during the year, what you found, and the price for the next term. Price increases are far easier to accept when they arrive alongside a list of completed work rather than in a bare notice.

Auto-renewal with a clear cancellation window reduces churn, but only when the terms were stated plainly at signing. A surprise renewal costs you the customer and the referral.


Tracking whether the plan is actually profitable

A maintenance program can quietly lose money for years, because the individual visits are small and nobody costs them. Watch three numbers:

  • Actual hours per visit versus the hours you priced. This is where plans leak. If the real average is 2.1 hours against a priced 1.6, the plan is 30% underwater on labor before anything else.
  • Consumables per visit versus the allowance. Small overruns compound across hundreds of visits.
  • Repair revenue generated per contract. If you priced the plan thin expecting pull-through repair work, verify the pull-through is real.

The only way to check the first number is real clock-in and clock-out data tied to the job, not hours reconstructed on Friday. Everything else is an estimate wearing a costume. For the full method, see job costing for service businesses and how to run a post-job profitability review.


FAQ

How long should a maintenance contract run? Twelve months is standard and easiest to sell. Multi-year agreements improve retention and are worth offering at a discount, but they require a clear annual price-adjustment clause, otherwise inflation erodes the margin over the term.

Should the plan include parts? Usually no. Include consumables the visit needs, filters, belts, lubricants, and exclude parts and equipment. Parts costs are too variable to price into a flat plan without padding it beyond what customers will pay. A parts discount for members is a better lever than parts inclusion.

What discount should members get on repairs? Ten to fifteen percent off labor is common and meaningful without giving away the repair margin, which is typically where the profit on the relationship actually sits.

How do I sell a maintenance plan without being pushy? Offer it at the end of a completed job, when the customer is satisfied and the equipment is fresh in mind. Frame it around what the visit prevents rather than what it includes. Conversion at that moment is far higher than any cold outreach.

What if a customer wants to cancel mid-term? Decide the policy before you need it and write it into the agreement. A common approach is to allow cancellation with 30 days' notice, and to recapture any prepay discount on visits already delivered. Fighting a cancellation is rarely worth the reputational cost.

How many contracts do I need for this to matter? Enough recurring revenue to cover a meaningful share of fixed monthly overhead. Work backward: divide your monthly overhead by the monthly price of the plan and that is your target count. It is usually a smaller number than people expect.


Getting started with CRMb

A maintenance program is an operations problem more than a sales problem. The contracts are easy to sell and hard to run, because the visits, the crew hours, the materials, and the invoices all live in different places.

CRMb keeps them on one record. Recurring visits go on the crew schedule with job sites already attached. Crew hours punched in Punch flow onto the job as real labor cost, so you can see what a visit actually costs against what you priced. Materials pulled from truck or warehouse stock land on the job at average cost. Invoices go out with public share links customers can open and pay, and Reports show margin on real punched hours, per job and per customer.

Start a 14-day free trial at crmb.io, price one plan off your own numbers, and put the first year of visits on the calendar.

More from the blog