← All posts
HVAC

Monthly vs annual billing for HVAC maintenance plans

2026-10-18 · 6 min read

Rather not build it yourself? We build the automation on your tools and keep it running. Get it built for me→

It is a Tuesday in early March. Your office manager has the maintenance agreement list open next to the invoicing software, and she is working it two different ways.

The annual customers are the older half of the list. Their renewals went out as invoices three weeks ago. Some paid. Some have a card on file that expired in January, so the charge bounced and nobody saw it. The rest just have not answered, and spring tune-ups start booking in five weeks.

The monthly customers are the newer half. Those renewals mostly take care of themselves, except for the eleven charges that declined on the first of the month. One of those customers called on Friday asking what the charge from your company was for. Another cancelled in February, two months after his fall visit, and nobody can say offhand whether he left owing you anything.

It is the same plan on both lists, and it breaks in a different place on each one.

Annual billing: one big ask, once a year

With annual billing the customer pays the full plan price up front, usually at the fall or spring visit when the tech signs them up. You have the cash before you do the work, and the books are simple: one payment, two visits, done.

The cost lands at renewal. Everything rides on one moment a year, and that moment needs someone to send the invoice, notice who did not pay, and follow up. A year is long enough for a card to expire, for a homeowner to forget they had a plan, and for the person who sold it to have left. The renewal also asks for the whole price at once, which is when a customer is most likely to stop and wonder whether it is worth it.

An annual plan can lapse without anyone deciding to cancel. The renewal goes to an inbox nobody checks, and nothing happens next. I wrote up what that looks like in the post on Batavia maintenance plans.

Monthly billing: small charges, small failures, every month

With monthly billing the plan price is split into twelve charges against a card on file. The renewal mostly disappears, because the charges keep running until someone stops them. A small monthly number is also easier to say yes to at the kitchen table.

The work moves to the first of every month. Some charges decline, and each one turns into a small collections job, because someone has to reach the customer and get a working card before the charge runs again. Customers see a charge they do not recognize and call, or dispute it with their bank. And the plan stops matching the visits. A customer who gets the fall tune-up in October and cancels in December has paid three months for a visit priced on twelve. Your cancellation terms have to cover that, and somebody has to check them every time.

Side by side

Annual billing Monthly billing
When you get paid All up front Spread across the year
Where the chasing happens Once a year, at renewal Every month, on failed charges
How a plan usually lapses Renewal invoice ignored or card expired Card declines and nobody follows up
What customers call about "Did I already pay for this?" "What is this charge?"
Cancellation math Rarely needed Needed every time: visits used against months paid
Who it suits Customers who would rather pay once Customers who balk at the full price
What the office has to track Renewal dates Charge status, retries, visits owed

Neither one is better in general. It comes down to what your office is set up to handle. If the person running the office can block out one focused week before each season, annual billing is less work overall. If nobody ever gets that week, monthly billing keeps money coming in, provided failed charges get handled the day they fail.

What collecting looks like with a system behind it

Most of the setup is the same either way, and none of it is unusual.

  • Each agreement gets one record: start date, end date, billing type, the visits included, the visits used, and the card on file. Everything else runs off that record.
  • Saved cards stay current. Payment processors can update saved cards when the bank issues a replacement. Stripe, for example, says it automatically attempts to update saved card details when a customer gets a new card, and that this is widely supported for U.S. Visa, Mastercard, American Express and Discover cards (checked October 18, 2026). That removes some of the declines before anyone sees them.
  • Annual plans get a notice before the charge. Thirty days out, the customer gets a short message in your words: what the plan includes, the price, the date it renews, and a link to update the card or book the next visit. If you auto-renew, check your state's rules on automatic renewal terms and disclosures first.
  • Monthly plans get a retry and a text the same day. When a charge declines, the system retries on a schedule you choose and sends the customer a link to update their card. After a set number of failures, the account goes on a short list for a person to call.
  • The charge shows up as your company name and the word "maintenance," and the monthly receipt lists which visit is next.
  • When someone cancels, the record already shows months paid against visits used, so the office applies your terms without digging through old invoices.
  • Each morning the office opens one list: declined charges, renewals coming up, and customers with a visit due and nothing booked.

I have built the payment side of this for a Chicago-area pool service company. It is the same seasonal shape: one group of customers who all need the same service at the same time each year, with Stripe payments and lead tracking wired into the site so collecting does not depend on who remembers what during a busy week.

What stays human

The price and the terms are yours. What the plan costs, what it includes, whether monthly customers commit for a year, and what someone owes if they cancel early are business decisions, and nothing I build makes them for you.

Customers who call get a person. A homeowner asking about a charge, or saying money is tight this month, should get your office manager, and the automated sequence should stop the moment they reply.

The visit is the tech's. Billing gets you a booked tune-up and a paid account. Whether the furnace is safe and what the homeowner needs to hear about a fifteen year old unit are for the person standing in the basement.

Where to start

Pull last year's agreement list and count two things: annual plans that did not renew, and monthly charges that failed and were never recovered. Whichever number is bigger tells you where the work is. If you want help reading it, I will go through it with you in a free 20 minute process audit and tell you which parts are worth automating. Book it here, or see what else I build for HVAC contractors.

08 / Start here

Tell us the task. We build it and keep it running.

Tell us what you use today and we'll reply within one business day with what it would take. $500 to build, 30 days of monitoring included, then $99/mo. Cancel the monthly anytime.

Email

pgorski@newfacedesign.com

Phone

+1 (773) 627-2176

Based in

Chicago area

Working with clients everywhere

Skip the form: grab a 20 minute slot.

Open the calendar →