← HVAC maintenance contract calculator

How much to charge for an HVAC maintenance contract

A maintenance agreement is sold monthly and incurred annually, and that is where the pricing goes wrong. Two tune-ups a year is easy to cost. The covered customer who calls in July is not on the schedule, carries labour and travel, and generates no separate invoice — and an agreement priced without them is priced for a year that will not happen.

Open the free HVAC maintenance contract calculator

Cost the year, then divide by twelve

  1. Scheduled labour: visits per year × hours per visit × loaded hourly rate.
  2. Travel and parts reserve for each of those visits.
  3. Callback visits per year, at their own hours and cost.
  4. Annual overhead the agreement carries.
  5. Divide the annual cost by (1 − target margin) for the yearly price, and by twelve for the monthly quote.

Worked example

Four visits a year at two hours and a $45 loaded rate is $360.00 of scheduled labour, with $20 travel and a $35 parts reserve per visit adding $220.00. One callback of an hour, at $45 of labour and $25 of cost, adds $70.00, and $120.00 of annual overhead brings the yearly cost to $770.00. That is a break-even of $64.17 a month; at a 20% target margin the agreement prices at $962.50 a year, or $80.21 a month. The single callback is worth noticing — it is $70.00 of the $770.00, so an agreement quoted as though callbacks never happen sits about 9% under its own cost before any margin is added at all.

Two things the annual figure hides

Dividing by twelve assumes the customer stays twelve months and that the plan fee is the only money the agreement earns. Neither is usually true, and they pull the price in opposite directions.

The visits are front-loaded. The first tune-up happens the week the agreement is signed, so the contract is underwater from day one and climbs out of it month by month. On the worked example above, break-even arrives in month 5 — a customer who cancels after month 3 has taken two visits ($337.50 of cost) against $240.63 collected, a $96.88 loss on an agreement whose annual margin reads a healthy 20%. That gap is the case for a term commitment, an enrolment fee, or an annual-prepay discount, and no annual figure will ever show it to you.

The plan fee is not the whole return. Members buy repairs and replacements that non-members defer or give to someone else, and that gross profit belongs in the decision even though it does not belong in the plan price. Counting $600 a year of it against the same example drops the floor from $64.17 to $14.17 a month. Both floors matter: the plan-fee floor says whether the visits pay for themselves, and the lower one says whether the member does. Use a figure from your own invoices — a hopeful guess here quietly justifies any price at all.

Common questions

How much should I charge for an HVAC maintenance contract?

Cost a full year of the agreement, then divide by twelve. Add scheduled labour (visits per year × hours per visit × your loaded hourly rate), the travel and parts reserve for each of those visits, the labour and cost of the callbacks the agreement will actually generate, and the annual overhead the contract carries. That annual cost divided by one minus your target margin is the yearly price; a twelfth of it is the monthly figure to quote. Pricing per visit instead of per year is what leaves callbacks uncounted.

Why do HVAC maintenance agreements lose money?

Because the scheduled visits are the predictable part and the callbacks are not, but only the visits get priced. An agreement quoted from two tune-ups a year looks comfortable until the covered customer calls in July; that trip carries labour, travel, and no separate invoice. One callback a year at an hour apiece is a modest assumption, and it still adds real cost to every agreement. Counting an honest callback rate at quoting time is what separates a maintenance base that funds the business from one that consumes the technician hours the business sells.

What is the break-even price on a service agreement?

It is the monthly figure that recovers the annual cost of the agreement with no profit at all — labour, travel, parts reserve, callbacks, and overhead, divided by twelve. It is not the price to sell at; it is the floor to negotiate against. Knowing it lets you discount deliberately, see what each concession costs, and recognise the point at which a competitor's advertised rate cannot be matched without paying for the privilege of holding the account.

How long must a maintenance customer stay before the agreement pays off?

Longer than most contractors assume, because the first tune-up happens at signing. On the worked example — four visits a year at $145 each, priced at $80.21 a month — collected fees do not cover incurred cost until month 5. A cancellation after month 3 leaves two visits delivered, $337.50 of cost against $240.63 collected, and a $96.88 loss on an agreement whose annual margin reads 20%. Annual margin cannot show this, because annual margin assumes a full year of payments against a full year of visits.

Should repair pull-through be counted in the maintenance plan price?

Count it in the decision, not in the plan price. Plan members buy repairs and replacements that non-members defer or take elsewhere, and that gross profit is a real return on the agreement — counting $600 a year of it against the worked example drops the floor from $64.17 to $14.17 a month. Keep both floors visible: the plan-fee floor says whether the visits pay for themselves, and the lower one says whether the member does. Use a figure measured from your own invoices, because a hopeful estimate here can justify any price at all.

Should a maintenance agreement include a parts reserve?

Yes, if the agreement covers filters, belts, contactors, capacitors, or any consumable replaced during a tune-up. A per-visit reserve spreads the predictable small-parts spend across the year, so a visit that happens to need a capacitor does not read as a loss and a visit that needs nothing does not read as unusually profitable. It is a smoothing figure, not an estimate of any one visit, and it belongs in the cost even when the parts are described to the customer as included.