Trades Business Seasonality
Seasonal revenue swings are the structural pattern that kills more trades businesses than bad marketing or poor pricing. A plumber doing $80K months in winter drops to $45K in summer. An HVAC company doing $120K in July drops to $40K in October. The business survives the peaks and nearly dies in the troughs - not because the work disappears, but because the revenue model is structurally tied to weather and emergency demand.
Seasonal Patterns by Trade
| Trade | Peak Months | Off Months | Typical Revenue Swing | Revenue Concentration |
|---|---|---|---|---|
| HVAC | Jun-Sep (cooling), Dec-Feb (heating) | Oct-Nov, Mar-Apr | 50-70% | 60-70% of revenue in 5 months |
| Plumbing | Nov-Mar (freeze/burst season) | Jun-Aug | 15-25% | More stable year-round |
| Electrical | Spring + Fall (construction season) | Dec-Feb | 25-35% | Construction-dependent |
| Landscaping | Apr-Oct | Nov-Mar | 60-80% | 80%+ of revenue in 7 months |
| Roofing | Apr-Oct | Nov-Mar (weather-dependent) | 50-70% | Storm season creates spikes |
| General Contractor | Year-round with spring surge | Jan-Feb (permit slowdown) | 20-30% | Least seasonal if diversified |
The Cost of Seasonality
The obvious cost is revenue volatility. The hidden cost is what it does to the team. Trades businesses that swing 50%+ seasonally face:
- Hiring/firing cycles that destroy team quality. Good technicians leave for stable employers.
- Cash reserves eaten during off-months, leaving nothing for equipment or growth.
- Owner stress that leads to discounting during slow months, which trains customers to wait for deals.
- Marketing spend spikes during slow seasons that could have been avoided with structural recurring revenue.
The Maintenance Agreement Fix
The single most effective structural change a trades business can make is building a maintenance agreement program. This converts one-time emergency customers into recurring revenue clients.
Target: 30-40% of total revenue from maintenance agreements within 18 months.
Benchmark pricing:
| Trade | Annual Agreement Price | What’s Included | Margin on Agreement |
|---|---|---|---|
| HVAC | $150-$350/year | 2 tune-ups, priority scheduling, 10-15% parts discount | 60-70% |
| Plumbing | $120-$250/year | Annual inspection, 1 drain cleaning, priority scheduling | 55-65% |
| Electrical | $100-$200/year | Panel inspection, surge protector check, priority scheduling | 65-75% |
| Landscaping | $200-$400/month | Weekly/biweekly service, seasonal cleanups included | 40-50% |
Why maintenance agreements smooth seasonality:
- Revenue arrives monthly regardless of season
- Tune-up visits are scheduled in off-peak months (filling dead capacity)
- Agreement holders generate 2-3x more emergency calls than non-holders (they call you first)
- Renewal rates run 70-85% annually once established
Counter-Seasonal Service Additions
The second lever is adding services that peak when your core business dips:
| Core Trade | Off-Season | Counter-Seasonal Addition |
|---|---|---|
| HVAC (cooling) | Oct-Apr | Indoor air quality, duct cleaning, humidifier installs |
| HVAC (heating) | Apr-Sep | AC maintenance, ventilation, smart thermostat installs |
| Landscaping | Nov-Mar | Holiday lighting, snow removal, hardscaping |
| Roofing | Nov-Mar | Gutter cleaning, attic insulation, interior remodeling |
| Electrical | Dec-Feb | Generator installs, EV charger installs, smart home upgrades |
The key: counter-seasonal services should be margin-positive on their own, not loss-leaders to keep the crew busy. If the service doesn’t generate 40%+ margin, it’s not worth the operational complexity.
Pre-Season Booking Campaigns
The third lever converts emergency customers into planned maintenance customers before the season hits.
The structure: 6-8 weeks before peak season, contact every customer from the previous peak season with a pre-season booking offer. “Schedule your AC tune-up in April and save $50” converts a $300 emergency call in July into a $150 planned visit in April - at higher margin because it’s scheduled, not reactive.
Benchmark conversion rates:
- Email campaign to previous customers: 8-15% booking rate
- Direct mail to previous customers: 5-10% booking rate
- Text/SMS to previous customers: 12-20% booking rate (highest response, requires opt-in)
A trades business with 500 previous customers that converts 15% through pre-season campaigns books 75 jobs in the off-season. At $200 average ticket, that’s $15,000 in revenue that would have otherwise been zero.
The Structural Target
A trades business that has smoothed its seasonality successfully typically looks like this:
| Metric | Unsmoothed | Target |
|---|---|---|
| Revenue swing (peak vs trough) | 50-70% | 20-30% |
| Recurring revenue % | 0-10% | 30-40% |
| Off-season utilization | 40-50% | 70-80% |
| Annual customer retention | 20-30% | 50-65% |
| Cash reserve months | 1-2 | 3-4 |
Getting there typically takes 12-18 months of consistent maintenance agreement sales and counter-seasonal service development. The investment is patience and process, not capital.