Predicting a seasonal spike before it happens

It is early April.

A garden retailer is deciding how much summer stock to commit to.

Paddling pools, barbecues, garden furniture and outdoor toys will all sell more as the weather improves. That part is obvious.

The difficult part is knowing which categories are beginning to build faster than expected before the season properly starts.

Sales cannot tell the buyer much yet. Most customers are still buying for spring.

But other signals are already moving.

Search interest in paddling pools is building earlier than last year. More visitors are viewing outdoor products. Basket additions are beginning to rise. Wider search interest in the category is accelerating.

Individually, these movements mean little.

Together, they might suggest that this year's summer demand is starting earlier or building more strongly than normal.

The retailer still has time to change what it orders for the next six to eight weeks.

That is the window this system is designed for.

Sales tell you what happened. The buyer needs to know what is forming.

Seasonal retail creates an awkward timing problem.

The strongest evidence of demand often arrives after stock decisions have already been made.

A retailer might need to commit to stock weeks before the busiest part of the season.

But the normal sequence looks something like this:

Interest builds → customers browse → sales rise → demand becomes obvious

If the buyer waits for the final step, increasing stock may already be expensive or impossible.

The aim is to identify changes earlier:

Interest builds → unusual pattern detected → buyer reviews the next 4 to 12 weeks → stock decision → season arrives

The system is not trying to predict exactly how many paddling pools will sell on the 14th of June.

It is trying to answer a more useful question:

Is this category beginning to behave differently from a normal year?

Looking for the start of a season

Seasonal demand rarely switches on overnight.

It builds.

That makes the rate of change particularly useful.

Suppose searches for paddling pools normally begin increasing rapidly in late May.

This year they start accelerating in late April.

At the same time:

  • Product views are rising earlier than normal
  • More customers are adding outdoor products to baskets
  • Several related products are moving together
  • Wider online interest in the category is increasing
  • Longer-range conditions are becoming more favourable for outdoor products

None of these means a summer spike is guaranteed.

But the pattern is different from what the retailer would normally expect at that point in the year.

That difference is what matters.

What the buyer sees

The buyer does not need a complicated forecasting dashboard.

They need to know what is changing, how unusual it is and whether it affects a decision they still control.

The system might produce:

Paddling pools: seasonal demand building early
Forecast window: Next 6 to 8 weeks
Current sales: Still within the normal spring range
Search activity: Rising around three weeks earlier than the historical pattern
Product views: Increasing across the category
Basket additions: Above the expected seasonal baseline
Wider interest: Category search momentum is increasing
Stock: Current purchasing plan is based on normal seasonal demand
Risk: Demand may arrive earlier or build faster than the existing plan assumes
Next step: Review summer purchasing before the next supplier commitment

Nothing is ordered automatically.

The alert tells the buyer:

Something is changing earlier than expected. It may be worth reviewing the plan now.

How the prediction is built

The first version would start with information the retailer already has.

Historical orders show what normally happens.

Not just how much sold last year, but:

  • When demand started increasing
  • How quickly it accelerated
  • When the peak arrived
  • How long the peak lasted
  • Which products moved together

That creates a normal seasonal pattern.

The system can then compare this year with that baseline.

The retailer's website gives a more immediate view of what customers are doing now.

Using Shopify's store-search, product-view and basket-addition events, it can track whether interest in a category is beginning to move before the same change appears clearly in sales.

These events are not future purchases.

They are early evidence.

The important information is not simply that searches increased.

It is whether they are increasing earlier or faster than would normally be expected.

Looking outside the retailer

The retailer's own data should be the starting point, but external signals can help answer a different question:

Is this happening only in our store, or is interest in the category changing more widely?

Search data can help here.

Google Trends, for example, can show whether interest in a category is accelerating relative to its normal seasonal pattern.

One study covering 5,577 products sold between 2016 and 2019 found forecasting performance improved when Google Trends information was added.

That does not mean Trends automatically improves this retailer's forecast.

It makes it something worth testing.

Other useful signals could eventually include wider product-search behaviour, social interest or category-level trend data.

Each new source should have to prove that it improves the warning.

More data is not automatically a better forecast.

Weather works differently over this time frame

Weather matters for products such as paddling pools, but there is an important limitation.

A reliable forecast for a specific hot weekend several months away does not exist.

So the system should not pretend otherwise.

Over a longer horizon, weather becomes supporting context rather than a precise prediction.

The system might use broader seasonal outlooks alongside historical weather relationships to understand whether conditions are becoming more or less favourable for a category.

Then, as the season gets closer, shorter-range forecasts become more useful.

The prediction can therefore change as new information arrives.

Eight weeks out, historical seasonality and early customer behaviour might matter most.

Three weeks out, search momentum and current sales become stronger signals.

Seven days out, actual weather forecasts can carry much more weight.

The forecast should become more specific as uncertainty falls.

The forecast should update continuously

This is not a prediction made once in January and forgotten about.

The system keeps comparing what is happening with what it expected to happen.

Suppose paddling-pool interest starts rising unusually early.

The system increases the expected demand range.

Two weeks later, searches continue accelerating and sales begin following.

Confidence increases again.

Or the opposite happens.

Interest rises briefly, then disappears.

The forecast falls back towards the normal seasonal range.

This matters because the retailer does not have one stock decision.

It has a series of them.

The useful question changes from:

What will summer demand be?

to:

Given everything we know today, has our view of summer demand changed enough to alter the next decision?

Prediction should follow the purchasing calendar

This is where the system becomes useful operationally.

Different decisions need different amounts of warning.

A retailer might have:

  • Three months to place an initial seasonal order
  • Six weeks to increase an incoming shipment
  • Three weeks to adjust stock between warehouses
  • One week to change advertising
  • A few days to change pricing or promotions

The prediction does not need the same accuracy at every stage.

Three months out, the retailer may only need to know that one category looks unusually strong.

Closer to the season, it can make increasingly precise decisions.

The forecast becomes useful because it is connected to what the business can still change.

Test it before trusting it

The first system should run without changing any orders.

It can replay previous seasons first.

For each point in the year, the system is only allowed to see information that would genuinely have been available at the time.

Then you can ask:

What would it have predicted six weeks before the spike?

What would it have predicted four weeks before?

What would it have predicted two weeks before?

This avoids accidentally building a system that only looks clever because it already knows what happened.

Once that historical testing is useful, the system can run alongside the buyer for a live season.

Its predictions are recorded but purchasing remains unchanged.

The retailer can then see whether the warnings genuinely arrived before its existing process would have spotted the change.

Measure whether knowing earlier changes anything

Forecast accuracy matters.

But it is not the only measure.

A retailer could have a statistically impressive forecast that arrives too late to affect anything.

The more useful measures include:

  • How many weeks of useful warning the system provided
  • Whether it spotted seasonal movement before sales alone
  • How often it produced false warnings
  • Whether it missed important seasonal changes
  • Whether the warning arrived before a purchasing deadline
  • How the forecast improved as the season approached

Eventually, a live test can measure the commercial result.

Did the retailer hold less excess stock?

Did it run out less often?

Did fewer emergency orders have to be placed?

Was less stock discounted after the season?

Did purchasing become more confident?

That is when the forecast starts earning its place.

Where this can go wrong

Seasonal prediction is uncertain.

Something appearing earlier than last year does not mean it will keep growing.

Marketing can distort customer behaviour.

Online trends can disappear quickly.

A category can generate huge interest without generating purchases.

Historical patterns can break.

Weather can move in the opposite direction.

Competitors, prices and wider consumer behaviour can change.

There is also a temptation to solve uncertainty by adding more data.

That can make the system worse.

Twenty weak indicators do not necessarily beat four useful ones.

The aim should be to discover the smallest set of signals that consistently tells the retailer something it did not already know.

This is really about recognising change early

The interesting part of this system is not predicting an exact number months into the future.

It is recognising when the shape of a season is beginning to change.

Is summer interest appearing earlier?

Is one category accelerating faster than normal?

Is a trend that normally peaks in July starting to build in May?

Is this year's demand trajectory beginning to separate from the historical pattern?

Those changes can appear weeks before they become obvious in sales.

That creates time.

Time to change an order.

Time to speak to a supplier.

Time to move inventory.

Time to change what gets promoted.

At Maytime, we would start with one category and one upcoming season.

Build its normal seasonal pattern.

Identify the earliest useful signals.

Then test whether those signals could reliably move a real purchasing decision forward.

Not to know exactly what the future will look like.

But to recognise when it is beginning to look different.

Start with one season

Take one seasonal category in your business.

Write down:

  1. When its season normally begins.
  2. When you have to start committing to stock.
  3. Which signals appear before sales begin moving.
  4. How those signals behaved in previous years.
  5. What you could change with four, eight or twelve weeks of warning.

That gap between the first useful signal and the last useful decision is where forecasting becomes valuable.