How to Build an HVAC Loyalty Program in Texas
HVAC customers visit once a year. A loyalty program built on generic 30-day logic will fire every trigger at the wrong time and annoy your best customers into silence. The right structure is a maintenance plan wallet card, two seasonal reactivation windows, and an at-risk threshold of 365 days. Get this right and you can move your repeat rate from 25% toward 45%, on a $2,000-8,000 LTV customer.
Why do most HVAC loyalty programs fail before they start?
They are built for retail frequency, not HVAC frequency. Most loyalty software defaults to 30-day reactivation triggers, 7-day follow-up cadences, and monthly engagement nudges. Those settings work for a coffee shop customer who visits 4 times a week. They are catastrophically wrong for an HVAC customer who visits once in March for a spring tune-up and once in October for a fall check.
The HVAC median visit cycle is 365 days. That is your baseline. A customer who last had service 200 days ago is not hibernating. They are perfectly normal. A customer who has gone 730 days without contact is hibernating, and they need a specific winback offer, not a standard reactivation push. Fire your retention alerts at the wrong threshold and you train your best customers to ignore your messages.
Texas compounds this. The two peak windows, spring (March through June) and fall (September through November), drive roughly 70% of annual HVAC revenue. Your loyalty program is not a year-round drip. It is two precision campaigns with a maintenance plan holding the relationship together in between.
What is the right loyalty vehicle for an HVAC contractor?
A service plan. Not a punch card. Not a points accumulator. A named, tangible maintenance plan that a customer enrolls in, carries proof of in their wallet, and receives scheduled reminders against.
Here is why points fail for HVAC. Points work when a customer transacts frequently enough to watch the balance grow. At a 365-day cycle, a customer earns points once a year. The balance sits dormant for 11 months. It is not motivating. It is invisible. Goettl Air Conditioning, one of the largest residential HVAC operators in the Sun Belt, does not run a points program. They run a membership plan called Goettl Good Neighbor Society. You pay an annual fee, you get priority scheduling, discounted diagnostics, and two included tune-ups. The loyalty mechanism is the plan itself.
Your plan does not need to be that complex. A basic three-tier structure works: standard maintenance plan ($149-199/year, two seasonal tune-ups, priority scheduling), comfort plan ($249-299/year, adds filter subscription and 15% off repairs), and premium plan ($399+/year, adds one free diagnostic call and extended labor warranty). The key is that the customer is enrolled, not just rewarded. Enrollment creates the expectation of ongoing contact.
On gross margin: tune-ups run around 60% margin, repairs around 45%, replacements around 28%. The plan itself, if priced at $149-199 with two tune-ups included, is roughly break-even on the tune-up labor. The economics come from the repair conversion rate. Plan customers call you first when the system fails. That is the retention mechanism.
How does a wallet pass replace the paper maintenance plan card?
A digital wallet pass on Apple Wallet or Google Wallet does exactly what a laminated service agreement card does, except it sends free push notifications to the customer's lock screen.
The install flow is simple. Customer pays for their first service or signs up for the maintenance plan. Technician shows QR code on tablet or printed invoice footer. Customer scans, adds to wallet in under 10 seconds. No app download. No account creation. No friction. In-field install rates for service businesses using this method run 50-65% when the technician presents the QR at the moment of payment. That is the optimal install moment: the customer just had a good service experience and the technician is still on site.
What the pass does after install is where the economics change. When your spring tune-up season opens in March, you push a notification to every enrolled customer: "Spring AC tune-up season is open. Book your appointment before April 15 and we guarantee same-week scheduling." That push costs nothing. It lands on the lock screen without fighting an email spam filter. A 1,000-customer HVAC business with 600 wallet enrollments has 600 customers reachable for free, twice a year, for the life of the customer relationship.
Wallefy integrates with Jobber, which is the most common field service management platform for Texas HVAC contractors. When a job is marked complete in Jobber, the wallet pass can be issued automatically. No manual step for the office staff.
What should the two seasonal campaigns actually say?
Specificity closes more jobs than generic urgency. Customers in Texas have heard "schedule your AC tune-up before summer" every April since they moved into the house. You need a message that feels like it comes from a contractor who knows their system, not a blast from a software platform.
Spring campaign (March 1 open, April 30 deadline): "Your Carrier two-stage unit is due for its pre-cooling season tune-up. We are booking April slots now. Tune-ups completed before May 1 include a free capacitor check (common failure point in Texas heat). Reply YES to schedule." This message works because it names the equipment type if you have it in your CRM, names a specific local failure point (capacitors fail in high-heat climates at higher rates), and creates a real deadline tied to a real seasonal event.
Fall campaign (September 1 open, October 31 deadline): "Fall heating check season is open. Texas heat puts unusual stress on heat exchangers. We are offering a free CO test with every fall tune-up booked in September. Limited slots." Again, specific risk, specific offer, real scarcity tied to real technician capacity.
Customers who are on the maintenance plan wallet pass get these as push notifications. Customers who are not enrolled get them as SMS or email. The conversion rate on push is typically 3-5x the conversion rate on email for time-sensitive service reminders, because push has no subject line and no inbox competition.
When is an HVAC customer actually at risk, and what do you do about it?
At-risk means 365 days without a completed job. Not 30. Not 90. Three hundred and sixty-five days. If a customer's last completed service was more than a year ago, they have gone through at least one full seasonal cycle without calling you. That means they called someone else, their system did not need service, or they sold the house.
Hibernating is 730 days. Two full cycles. At this point the customer has likely established a relationship with another contractor. Winback is possible but requires a harder offer.
For at-risk (day 365-729), the right move is a direct outreach with a low-commitment offer: "It has been about a year since we serviced your system. We are offering a $79 diagnostic check this month to current customers. This is not a sales call. We check refrigerant, capacitor, contactor, and drain line. You get a written report." The $79 diagnostic converts at around 30-40% to a repair or plan upgrade. At a $200-2,500 average ticket and 45% repair margin, the math justifies the discounted entry offer.
For hibernating (day 730+), escalate to a direct mail piece. EDDM (Every Door Direct Mail) is the right channel for residential HVAC in Texas. Google Search Ads and Google Business Profile are your primary customer acquisition channels. EDDM is your winback and neighborhood expansion channel. A postcard to the homeowner's address with a specific offer lands differently than a push notification to a phone they may have replaced.
Do not use LinkedIn, TikTok ads, or Instagram organic for HVAC retention. These are not channels where homeowners make HVAC decisions. The customer who just heard their AC struggle on a 102-degree July day in Houston is opening Google, not scrolling Instagram.
What does the CAC and LTV math actually look like?
Texas HVAC CAC runs $60-200 per new customer depending on the acquisition channel. Google Search Ads for "AC repair Austin" or "HVAC tune-up Dallas" will cost you toward the top of that range. EDDM for neighborhood conquest runs lower. Referrals are free but unpredictable.
LTV at a 25% repeat rate is the industry baseline. Here is the math. Average ticket of $400 (blended across tune-ups, repairs, and partial replacements). Twenty-five percent of customers return for a second job within two years. That is a two-visit LTV of $500 on a $100 CAC. Payback is fine, but the business is essentially living on first jobs.
At a 45% repeat rate, which is achievable with a maintenance plan program, the math changes. Customer 1 does an initial $400 job. Customer 1 also buys the $199 maintenance plan. Customer 1 converts to a repair in year two worth $600. Two-year LTV: $1,199. Same $100 CAC. Payback period drops from 6 months to under 3 months because the plan payment clears faster than a second emergency call.
The operators who have figured this out are not running smarter ads. They are running better post-job enrollment flows. The job that ends with a wallet pass install and a maintenance plan signup is worth 2-3x the job that ends with a handshake and a paid invoice.
How do you actually set this up in 30 days?
Start with Wallefy's free Growth Blueprint at /growth-blueprint. It takes your current customer list, identifies which segment of your customers are already at-risk (365+ days), which are hibernating (730+ days), and which are active plan candidates. For a 500-customer HVAC business in Texas, you will typically find that 40-50% of the list has gone cold. That is your first winback campaign audience.
Week 1: Export your completed jobs from Jobber for the past 24 months. Run the list through Wallefy's customer grader at /grade-your-customers. You will have a segmented customer list in under a minute. Champions (your plan customers who booked twice in the last 12 months), At-Risk (last job 12-24 months ago), and Hibernating (last job over 24 months ago). These are your three working audiences.
Week 2: Build the maintenance plan wallet pass. Set up the three plan tiers. Configure the pass to show the plan name, renewal date, and a one-tap call button. Connect to Jobber so completed jobs trigger automatic pass issuance.
Week 3: Script your technician enrollment pitch. It takes 15 seconds: "We have a maintenance plan that covers your two seasonal tune-ups and gives you priority scheduling. Scan this QR to add your plan card to your phone. It is $149 for the year." Train every tech. Track install rate by tech. Publish a leaderboard internally. Enrollment rates jump when techs have a visible metric.
Week 4: Set the two seasonal campaign dates in the platform. March 1 for spring, September 1 for fall. Write the push copy. Schedule it. You are done with the active setup. The program now runs on calendar cadence with manual review before each campaign fires.
Frequently asked questions
Should I charge for the maintenance plan or offer it as a free loyalty perk?
Charge for it. A free maintenance plan is a discount program, not a loyalty program. Customers who pay $149-199 per year have made a commitment. They have a reason to call you first when something breaks. They feel entitled to priority scheduling because they paid for it. Free plan enrollees have no skin in the game and churn at higher rates when a competitor sends a coupon. The plan fee also covers your labor cost on the two included tune-ups, which run about 60% gross margin. You are not losing money on the plan. You are acquiring a committed customer at break-even on tune-ups and making your margin on the repair and replacement pipeline the plan generates.
My customers are in multiple Texas cities. Does this approach still work at scale?
Yes, but you need to segment by service area for the seasonal campaigns. A customer in El Paso has a different peak window than a customer in Houston. El Paso spring starts earlier (February-March) because of the desert climate. Houston has year-round humidity issues that create a longer shoulder season. Wallet passes can carry location metadata, so you can push the spring campaign to Houston customers on March 1 and to El Paso customers on February 15. The at-risk and hibernating thresholds stay the same: 365 days and 730 days. Those are calendar-based, not climate-based.
What offer types should I avoid in a loyalty program for HVAC?
Two specifically: free service and discounted installations. Free service (free tune-up, free diagnostic) trains customers to expect zero-dollar transactions and attracts price-shoppers who will not convert to plan customers. Discounted installations cut into 28% replacement margin, which is already your lowest-margin job type. The right offers are percentage discounts on repairs for plan members (15% is standard), priority scheduling (no cost to you, high perceived value), and included minor items like filter delivery or capacitor checks that cost you $8-15 but have clear customer value. Keep your installation pricing clean. Replacement jobs are where your margin is thinnest. Do not discount them to close loyalty upsells.
How is a wallet pass different from just texting my customers before each season?
Three differences that matter. First, a wallet pass shows the customer's plan tier, renewal date, and plan benefits every time they open their wallet. It is a persistent reminder of the relationship, not a one-time message. Second, push notifications from a wallet pass do not cost per-send the way SMS does. At 1,000 enrolled customers and two campaigns per year, SMS at $0.01-0.03 per message is $20-60 per year. That is not a large number, but at 5,000 customers it becomes meaningful, and the push open rate on wallet notifications is typically higher than SMS because it appears on the lock screen without competing with promotional texts. Third, the wallet pass creates an install event that you can track. You know which customers enrolled, when, and which technician facilitated the install. That data lets you optimize your technician enrollment pitch over time in a way that a text blast cannot.
Build your personalized retention plan
Free 90-second wizard. Pulls your real menu/services + industry-tier calibration.
Get my Growth Plan