HVAC demand doesn't move with the calendar. It moves with the thermostat. Roofing demand doesn't move with the calendar either. It moves with the weather radar. Both trades get treated like every other client in an agency's book: same monthly budget in January as in July, same pacing schedule whether the phone is ringing off the hook or sitting quiet. That's the wrong model for either trade, and it's costing agencies jobs in peak season and cash in the months nobody's calling.

Flat monthly pacing works fine for a business with steady, predictable demand. HVAC and roofing aren't that. One runs on a demand curve you can see coming weeks out. The other runs on demand that shows up with almost no warning at all. Pacing has to account for both shapes, and most agency budgets are built to account for neither.

Two different seasonal shapes, one flat budget

HVAC demand is cyclical and largely predictable. Cooling calls climb through late spring and peak with the first sustained heat, then fall off through fall. Heating calls do the mirror image on the other side of the year. An agency running a contractor's account has seen this pattern before, for this client, in past years. The timing isn't a mystery.

Roofing is a different shape entirely. A meaningful share of roofing demand isn't seasonal in the smooth, cyclical sense, it's event-driven. A hailstorm hits a service area and inquiry volume jumps hard for a short window, then falls back to baseline. According to NOAA, severe hailstorms in the US most often strike between May and July, though they can happen at any time of year. That gives roofing agencies a rough window to expect the surge, but not a specific date, and a budget that's paced evenly across the month misses the days that actually matter.

May–July

the window when severe hailstorms most often strike in the US, per NOAA Climate.gov. A roofing account paced evenly across the whole month is set up to miss the days that actually drive the season's volume.

What pacing actually looks like month to month

For HVAC, pacing means moving budget ahead of the curve, not with it. If a client's cooling season historically ramps in the two weeks before the first sustained heat, that's when spend should start climbing, not after the phone has already started ringing. Waiting for performance data to confirm the season has arrived means starting the ramp a week or two late, and that week is often the highest-intent week of the quarter.

The off-season needs the opposite discipline. Holding a flat budget through the slow months usually means paying a worse cost per lead to chase volume nobody actually needs. WebFX's 2026 Home Services Marketing Benchmarks put overall cost per lead at $144 for B2C home services work, with wide swings by trade and channel underneath that average. Off-peak spend on a trade like HVAC is often better redirected into maintenance-plan or tune-up messaging at a lower budget, rather than left flat and absorbing a rising CPA for leads that don't convert into jobs a crew can even schedule.

Roofing needs a third approach: a reserve. Because the highest-value window is event-driven, not scheduled, a fixed monthly pacing plan will always be a step behind the actual trigger. Keeping a portion of the monthly budget flexible, rather than committing all of it to a smooth daily pace, means an agency can move spend into search and Local Services Ads within hours of a storm instead of days. That reserve does nothing most weeks. It's the reason a client's phone doesn't stop ringing during the one week it matters most.

What to report on in each phase

The reporting has to shift with the pacing, or the client is reading the wrong numbers at the wrong time. During peak season, the number that matters is cost per booked job, not raw lead volume or cost per lead in isolation. Peak season is also when capacity becomes the real constraint, not ad spend. A contractor can only run so many jobs a week, and a report that keeps pushing lead volume up while a client's crew is already backed up isn't helping anyone. Flagging that a client is buying more leads than they can service is a harder conversation than flagging a rising CPA, and it's the one that actually protects the relationship.

During the off-season, the useful report looks different. CPA will drift up on thinner volume almost by definition, and a report that treats that drift as a problem to be solved is going to trigger a panicked client call over nothing. The better frame is target discipline: is the account staying within an acceptable range for the season it's in, and is spend actually going toward the right off-peak activity, like maintenance plans, instead of just quietly bleeding budget on cold-season search terms with no real demand behind them.

Reporting that already knows the season

NarrateIQ writes a weekly report built around cost per booked job and budget pacing for every contractor client, so a seasonal swing shows up as context, not a surprise the client has to ask you about.

Book a free audit call →

Roofing's storm window needs its own reporting cadence entirely. A monthly report that lands three weeks after a hailstorm is useless for managing the surge and only marginally useful for explaining it after the fact. The value is in reporting during the surge itself: cost per booked job in the 48 to 72 hours after the event compared to the account's baseline, and whether the extra budget that got shifted in actually converted into jobs on the schedule. That's the data a client remembers going into their renewal conversation, not the tidy monthly summary that shows up weeks later.

Pacing decisions are only as good as how fast you notice the shift

None of this works if the agency doesn't see the shift until the manual report gets built at the end of the month. Manual reporting is built around a fixed schedule, which is exactly the wrong structure for a trade where the trigger to move budget can happen on a Tuesday afternoon. An agency that only looks at an account once a month is going to miss the ramp-up window on HVAC and miss the entire storm surge on roofing, then explain both after the fact instead of acting on them while they mattered.

Seasonal pacing isn't a set-it-and-forget-it budget setting. It's a decision an agency needs to be able to make on short notice, backed by data that's current enough to trust. Get that part right and the seasonal swings that used to feel chaotic start to look like exactly what they are: predictable in HVAC's case, and manageable with the right reserve in roofing's. Reporting the right number is only half the job. Reporting it at the right time is the other half, and it's the half that actually protects the client relationship when the season turns.

N
Written by Nick Diaz, founder of NarrateIQ. More about NarrateIQ →