How HVAC Companies Are Filling Slow Months Without Cutting Prices
HVAC companies lose 40-60% of revenue in shoulder months. Here's how top operators use maintenance automation and reactivation campaigns to stabilize cash flow year-round.

There's a chart that every HVAC owner has seen but nobody wants to talk about. It's their monthly revenue graph, and it looks like a roller coaster. July and January spike. April and October crater. The gap between peak and valley is typically 40-60% of total revenue — and that gap is where most HVAC companies bleed out.
The normal response? Cut prices in slow months. Run a "$49 tune-up special" in October and hope volume makes up for margin. It rarely does. You end up training your market to wait for discounts, devaluing your work, and still not filling the schedule.
The HVAC companies that have figured this out aren't discounting. They're systemizing. And the difference in their bank accounts is dramatic.
The Real Cost of Shoulder Seasons
Let's put real numbers on this. Say your company does $1.2 million a year. In a typical HVAC operation, about 65% of that revenue comes in four months — June, July, December, and January. The remaining eight months split the other 35%.
That means during a shoulder month like October, you might bring in $50,000-60,000 against $80,000 in fixed costs. Trucks, insurance, payroll, rent — none of that cares what the weather is doing.
So you're losing $20,000-30,000 per month during shoulder seasons. Over a year, that adds up to $100,000-$150,000 in losses that your peak months have to cover. Your July profits aren't really profits — they're paying back October's deficit.
This is why so many HVAC companies hover around 5-8% net margins despite charging $150/hour for labor. The money comes in, but it leaks out during the months the phone doesn't ring.
The companies pulling 15-20% margins? They've solved the shoulder season problem. Not by working harder in July, but by building systems that generate revenue in April and October.
Why Discounting Doesn't Work
The instinct to discount during slow months makes sense on the surface. You have empty schedule slots. Filling them at a discount seems better than leaving them empty. But here's what actually happens:
You attract price shoppers. The customer who hires you for a $49 tune-up is the same customer who calls three companies for quotes on a repair. They have zero loyalty and will leave the moment someone undercuts you.
You devalue maintenance. If a tune-up is worth $49 in October, why would anyone pay $149 in May? You've anchored the price in your customer's mind. Now every time you charge full price, they feel ripped off.
You burn technician time on low-margin work. Your best tech is driving across town to do a $49 tune-up instead of selling a $4,000 replacement to a customer whose system is on its last legs. That's not just lost revenue — it's opportunity cost.
You create a feast-or-famine training cycle. Staff learn that slow months mean discounts, busy months mean premiums. They stop trying to fill the schedule during shoulder months because "that's just how it is." The problem becomes self-reinforcing.
The alternative isn't more marketing or deeper discounts. It's building three specific systems that create predictable revenue regardless of temperature.
System 1: Maintenance Agreement Automation
Maintenance agreements are the foundation of HVAC revenue stability. Every HVAC owner knows this. The problem is execution.
Most companies sell maintenance agreements inconsistently. A tech mentions it after a repair if they remember. The office sends renewal notices sometimes. Agreements lapse because nobody follows up. The base stays small, and shoulder seasons stay empty.
Here's what a systemized maintenance program looks like:
Automatic enrollment offers after every service call. When a tech closes a job, the customer gets a text within two hours: "Thanks for choosing [Company]. Want to make sure this doesn't happen again? Our maintenance plan covers two tune-ups a year and priority scheduling — here's what's included." Link to sign up. No pressure. Just a clear offer at the moment they're most aware of their HVAC system.
30-60-90 day renewal sequences. Agreements don't lapse silently anymore. Ninety days before expiration, the customer gets a friendly reminder. Sixty days out, they get a "here's what you saved this year" recap showing the value they received. Thirty days out, the office gets flagged to make a personal call. The renewal rate on a system like this runs 75-85%, compared to 40-50% when you rely on manual follow-up.
Seasonal scheduling campaigns. In February, every maintenance customer with AC coverage gets a message: "Spring tune-up slots are opening — grab yours before the rush." In August, furnace customers get the same. The system books appointments directly into your calendar, spreading them across shoulder months when you actually need the work.
Upsell triggers based on equipment age. When a tech does a maintenance visit and the system is 12+ years old, the customer enters a replacement conversation sequence. Not a hard sell — a series of messages over 90 days about efficiency, repair costs vs. replacement costs, and financing options. This surfaces $5,000-15,000 jobs that would otherwise wait until the system dies in July.
The math on this compounds fast. If you have 300 maintenance agreements at $180/year, that's $54,000 in recurring revenue. More importantly, each visit averages $200-400 in additional repairs identified. That's another $120,000-240,000 per year in work that's scheduled during your slow months.
One HVAC company we work with grew their maintenance base from 180 to 620 agreements in 14 months using automated enrollment and renewal sequences. Their shoulder season revenue increased by 40%. No discounts. No new marketing spend. Just capturing the agreements they were already earning and not letting them lapse.
System 2: Pre-Season Campaign Sequences
Here's the thing about shoulder seasons: they're not really slow. They're the period right before every homeowner needs their system to work. The demand exists — it just hasn't turned into a phone call yet.
Pre-season campaigns convert that latent demand into booked work before peak season arrives. The timing matters:
March-April campaigns (before summer):
- "Your AC hasn't run in 6 months. Here's what to check before you flip the switch." Educational content that positions you as the expert.
- "Last summer, 30% of our emergency calls were from systems that hadn't been tuned up. Book your spring maintenance now and skip the wait list." Social proof + urgency.
- "We're booking June installs in April this year. If your system is 15+ years old, let's talk about replacement before the rush." Targets replacement-ready customers early.
September-October campaigns (before winter):
- "Your furnace has been sitting idle for 5 months. A 20-minute inspection now prevents a breakdown on the coldest night of the year." Same formula — education + urgency.
- "We had 47 no-heat calls on one day last December. Don't be call #48. Schedule your furnace check now." Real numbers from your own business hit harder than generic stats.
The sequence matters too. Don't send one email and call it a campaign. A proper pre-season sequence runs 4-6 touches over 3-4 weeks:
- Educational content (week 1)
- Social proof — past customer story or stat (week 2)
- Direct offer — book now, get priority scheduling (week 3)
- Urgency — "only X slots left this month" (week 4)
Each touch goes out via text and email. Text gets a 95% open rate vs. 20% for email. Use both — text for the offer, email for the longer educational piece.
Companies running pre-season sequences typically book 30-50% of their shoulder season capacity before the month even starts. That's the difference between hoping the phone rings and knowing your schedule is half-full before you flip the calendar.
System 3: Past-Customer Reactivation
This is the one most HVAC companies ignore entirely, and it's the easiest money on the table.
Your database is full of customers who hired you once — maybe twice — and haven't called in 12-24 months. They're not gone. They're just not thinking about you. A simple reactivation sequence brings them back:
The 12-month check-in. Every customer who hasn't booked in 12 months gets a message: "Hey [Name], it's been a year since we serviced your [system type] at [address]. Everything still running well? If it's time for a check-up, we've got openings this month." Personal. Relevant. Not salesy.
The 18-month win-back. If the 12-month message didn't convert: "We noticed it's been a while since we've been out to your place. We're running a past-customer priority week — you get first pick of our schedule this [month]. Want us to save you a slot?"
The 24-month re-engagement. Last attempt before they go cold: "Just checking in — if you've found another HVAC company you're happy with, no worries at all. But if you've just been putting off that maintenance, we'd love to have you back. Here's a direct link to book."
The reactivation numbers are consistently good. A database of 2,000 past customers typically yields a 5-8% booking rate per reactivation campaign. That's 100-160 appointments from customers who already trust you, need no selling, and are likely to sign up for a maintenance agreement this time.
Run this quarterly and you're generating 400-640 appointments per year from people you've already paid to acquire. That's the definition of working smarter.
How These Systems Work Together
The three systems compound. Maintenance agreements fill the base schedule. Pre-season campaigns fill the gaps. Reactivation brings back lapsed customers who join the maintenance program, which grows the base, which makes next year's shoulder season even more stable.
Here's what a typical timeline looks like:
Month 1-3: Set up automated maintenance enrollment. Start rebuilding the renewal process. Run first reactivation campaign against the full database.
Month 4-6: First pre-season campaign runs. Maintenance base starts growing from automated enrollment. Reactivated customers begin converting to agreements.
Month 7-12: Second pre-season campaign. Maintenance base has grown 20-30%. Shoulder season revenue noticeably higher. Second reactivation campaign against remaining dormant customers.
Month 13-18: Maintenance renewals start cycling through automated sequences. Revenue variance between peak and shoulder months drops from 60% to 25-30%. You stop thinking about shoulder seasons as a problem.
The companies running all three systems consistently report that their worst month is within 30% of their best month, compared to 60%+ variance without them. That's not just more revenue — it's predictable revenue. Which means you can plan hiring, keep good techs year-round, and stop the cycle of layoffs and rehiring that costs $5,000-10,000 per technician.
What This Looks Like in Practice
Let's walk through a real scenario. It's September 15th. Historically, this is when the phone starts going quiet.
But your systems are already working:
- 450 maintenance customers have been notified about fall furnace tune-ups. 180 have already booked, filling your October schedule to 60% capacity.
- Your pre-season campaign started September 1st. The educational email went out. The social proof text went out on the 8th. The direct booking link goes out on the 15th. Appointments are trickling in daily.
- Your reactivation campaign hit 800 customers who haven't called in 12+ months. 45 have booked so far, with more responding each day.
- Three maintenance customers whose systems are 14+ years old have entered the replacement conversation sequence. One has already scheduled an estimate for a full system swap — a $9,000 job in what used to be a dead month.
Your techs are booked. Your revenue is stable. And you didn't cut a single price.
FAQ
How long does it take to see results from these systems? The reactivation campaign produces results within 2-4 weeks — those are people who already know you. Maintenance agreement growth takes 3-6 months to compound. Pre-season campaigns show returns the first time you run them, with each cycle getting more effective as your database grows.
What if my maintenance agreement base is small — under 100 customers? Start with automated enrollment on every service call. If you're running 30 service calls per month and converting 20% to agreements, you'll add 6 new agreements monthly. In 12 months, you've doubled a base of 100 to over 170. The automation makes the growth sustainable.
Do I need special software for this? You need a CRM that can segment customers by service date, equipment type, and agreement status — and send automated text and email sequences. Most modern service business CRMs can do this. If yours can't, that's the first thing to fix.
Won't customers get annoyed by the messages? Not if they're relevant and spaced properly. A text saying "your furnace hasn't been checked in 14 months" isn't spam — it's a reminder they probably need. The key is personalization (their name, their address, their equipment) and reasonable frequency (no more than once a month per customer).
What's a realistic revenue impact in the first year? Conservative estimate: 15-25% increase in shoulder season revenue. Aggressive (full implementation with a large existing database): 35-50% increase. The variance depends on the size of your customer database and how consistently the systems run.
Should I still run paid ads during slow months? These systems work on your existing customer base. Paid ads bring in new customers. They're complementary. But if budget is tight, these systems give you a better return because you're not paying for new customer acquisition — you're activating people who already trust you.
This is what we build at Digimint — growth systems for service businesses that actually work. Book a free strategy call


