# How a Detroit HVAC Contractor Built a $2 Million Business
The math that changed everything for this Detroit contractor was simple: an emergency repair call ran a 30-35% gross margin. A scheduled maintenance visit under a service agreement ran 65-70%. Same truck, same technician, same basic skill set — double the profitability, just because the work was planned instead of panicked. That single number is what pushed a one-man HVAC operation from $350,000 to over $2 million in annual revenue in eight years.
Like most contractors in this business, he started as the guy who answered his own phone and drove to every job. For three years, revenue sat around $350,000 — a number that's less a business milestone than a wall. It's roughly the ceiling of what one skilled technician can personally bill, minus drive time, no-shows, and the hours spent on paperwork instead of tools.
The fix wasn't hiring another technician. It was hiring a service manager — someone to own dispatch, scheduling, and the endless stream of customer callbacks. That move alone freed up 20-25 hours a week the owner had been spending on logistics instead of growth. Within a year, that reclaimed time supported two more technician hires, and revenue jumped to roughly $650,000.
The next unlock came from separating "fixing" from "selling." Technicians are trained to diagnose and repair; asking them to also pitch a full system replacement mid-call rarely works well for either task. So the business brought on a dedicated comfort advisor — a salesperson whose only job was closing replacement and agreement sales. Splitting those roles is a well-worn move in the trades, and here it pushed revenue to around $1.2 million with a team of nine.
The trajectory:
The single biggest lever wasn't marketing or hiring — it was restructuring what the business actually sold. A General Purpose (GP) service agreement is an annual plan: two seasonal tune-ups (AC and furnace), priority scheduling, repair discounts, and no overtime charges. It converts a homeowner's occasional emergency call into a predictable, scheduled relationship.
The margin gap explains why this matters so much. An emergency repair — someone's furnace dies on a Tuesday night in January — comes with overtime pay, rush parts sourcing, and a stressed customer. A maintenance visit is booked two weeks out, uses a standard parts kit, and often surfaces small repairs before they become emergencies. That's the difference between 30-35% and 65-70% margins on essentially similar work.
The business now holds over 1,200 active GP agreements generating more than $450,000 in annual recurring revenue. That recurring base does something less obvious than "adds revenue" — it lets the owner plan hiring and marketing spend months in advance instead of reacting to whatever the weather does.
Rollout followed three steps:
| Metric | Year 4 (pre-GP) | Year 8 (present) |
|---|---|---|
| Annual revenue | ~$650,000 | $2,000,000+ |
| Recurring revenue share | <5% | >40% of gross profit |
| Avg. customer lifetime value | ~$850 | ~$2,500 |
| Technician turnover | ~18% | <10% |
| Gross margin, service visits | 30-35% | 65-70% |
The trade-off worth naming: agreements are a slow burn. Selling 1,200 of them didn't happen in one good quarter — it took years of every technician and advisor treating every job as a chance to enroll a customer. Contractors chasing quick revenue often skip this because the payoff isn't visible for 12-18 months, even though it's the highest-leverage thing in the entire business.
Metro Detroit isn't a generic mid-size market. It's a tight labor pool for technicians, brutal seasonal swings (frozen January mornings, humid July afternoons), and a customer base that ranges from Grosse Pointe estates to price-sensitive urban neighborhoods within the same 25-mile radius.
Labor. The technician shortage is a national story, but in Detroit it means competing directly with the auto industry's skilled-trades pay scale. This contractor's answer was a real career ladder — maintenance tech to lead tech to field supervisor to management — paired with something rare in HVAC: guaranteed year-round hours. That guarantee is only possible because GP agreement revenue smooths out the slow shoulder seasons. Turnover dropped well below industry norms as a result.
Marketing. Generic pay-per-click ads got dropped in favor of sponsoring local high school sports in target suburbs like Royal Oak and Grosse Pointe, plus direct mail aimed specifically at neighborhoods with homes 15+ years old — the age where system replacements become likely. Review generation became a formal process rather than an afterthought, building over 350 five-star Google reviews.
Seasonal spikes. Rather than over-hiring for January and July peaks and carrying that payroll the rest of the year, the company keeps a "surge crew" — three to four part-time, pre-vetted technicians on call for the two brutal weeks a year when demand triples. It's funded by the predictable cash flow the agreements provide, which is really the same lever solving two different problems.
Once the business had proven the GP model worked, the constraint shifted from "not enough revenue" to "not enough owner." The org chart was built deliberately, ahead of need rather than in reaction to burnout:
Businesses that build this middle layer before they're forced to tend to scale more smoothly than those that wait for a crisis. This owner hired managers when things were merely getting busy, not when they were falling apart — a distinction that sounds obvious in hindsight and is very hard to act on when cash is tight.
Underneath the org chart, three systems did the real work: job costing software that revealed emergency repairs were quietly unprofitable despite looking like big-ticket wins; a documented playbook covering everything from phone scripts to post-install checklists, which cut new-hire ramp time significantly; and standardized truck inventory so technicians spent less time driving back for parts.
What's the first hire that actually unblocks growth?
A service manager or dispatcher, not another technician. Adding technicians without fixing dispatch and scheduling just gives the owner more people to manage manually.
How do you sell a maintenance agreement without sounding like an upsell?
Frame it as insurance, not a discount: for less than a dollar a day, a homeowner protects a $10,000 system from a catastrophic January breakdown. In Detroit specifically, the pre-winter furnace check is the strongest hook — nobody wants to find out their furnace failed on the coldest night of the year.
What share of revenue should come from agreements?
Aim for 20-30% of total revenue, but pay closer attention to gross profit share — high-performing shops often see 40-50% of gross profit come from agreement work, since it's the highest-margin activity in the business.
How do you manage cash flow through Michigan's seasonal swings?
Recurring agreement revenue provides a spring/fall baseline. Non-urgent work like duct cleaning gets scheduled into the shoulder seasons deliberately. And keep 6-8 weeks of operating expenses in reserve for the post-season lull — this isn't optional in a climate this seasonal.
Do you need dedicated software, or will spreadsheets work?
Past a certain size, spreadsheets actively cost money through missed renewals and administrative errors. A field service platform that handles dispatch, agreement renewal tracking (aim for 85%+ renewal rates), and financial reporting typically pays for itself in recovered billable hours alone.
---
One thing worth doing this week: pull your last 100 service calls and split them into two piles — customers on a maintenance agreement versus one-off emergency calls. Calculate the average gross margin for each pile separately. The gap is usually stark enough to make the case for building an agreement program better than any pitch deck could.