Think Build Implement Repeat
London, UK +44 7367 067226
WhatsApp FOLLOW f in X
AI & Machine Learning

Call Volume Forecasting for Contact Centres

Last updated:

Why contact centre forecasts miss

Most contact centres forecast by taking the same week last year, adjusting for growth, and shaping it by an average intraday pattern. That works on ordinary weeks. It breaks the week your company sends a price rise letter, moves a billing date or has a website outage, which are exactly the weeks service levels collapse.

The cost is lopsided. Understaffing by a few agents at peak creates long queues, abandoned calls and repeat contacts that inflate the next day's volume too. Overstaffing a quiet afternoon is expensive but survivable. A forecast that is right on average and wrong at the peaks is not much use.

What drives contact volume

  • Day of week and time of day, including the Monday morning surge
  • Bank holidays, and the day after them, which is usually worse
  • Billing and statement dates, direct debit collection days and renewal cycles
  • Marketing emails, letters and campaigns, with a lag of hours to days
  • Product launches, price changes and policy changes
  • Service outages and delivery disruptions
  • Weather, for utilities, insurance, travel and home services
  • Customer base size, which changes the baseline slowly

Many of these are known in advance by some other team. The billing team knows when statements go out. Marketing knows when the campaign lands. A surprising amount of forecast error is simply that nobody told the planning team.

Where machine learning improves the forecast

MethodStrengthsWeaknesses
Same week last year plus growthSimple, explainableIgnores moving events and campaigns
Classical time-series modelsHandle trend and seasonality wellAwkward with many external drivers
Gradient-boosted models with calendar and event featuresLearn effects of campaigns, billing, outagesNeed a clean record of past events
Hierarchical forecastingKeeps queue, channel and total forecasts consistentMore work to set up

For most contact centres, a gradient-boosted model at daily level combined with learned intraday profiles is a practical sweet spot. It is accurate, retrains quickly and can explain which drivers pushed tomorrow's number up. For a general comparison of forecasting approaches, our post on realistic forecasting in Python is a useful companion.

Turning calls into agents

A forecast of 420 calls between 9:00 and 9:30 is not yet a staffing number. Three more inputs are needed.

  1. Average handling time, which also varies by time of day, queue and season, and is worth forecasting in its own right
  2. Service level target, such as 80% of calls answered within 20 seconds
  3. Shrinkage: breaks, training, meetings, sickness and absence

Erlang C, or Erlang A where abandonment matters, converts volume, handling time and target into agents needed per interval. Shrinkage then grosses that up to scheduled heads. Chat and email need different treatment because agents handle several at once and email can wait. From there a scheduler builds shifts, which we cover in staff scheduling optimisation.

Handling the spikes nobody predicted

No model predicts an unannounced outage. What you can do is react faster.

  • Re-forecast intraday: compare the first hours of actuals with the forecast and scale the rest of the day
  • Define trigger points for moving agents off email and back-office work onto phones
  • Keep a record of every unplanned event, so the model learns what an outage day looks like
  • Create a simple channel for other teams to log upcoming events that will generate contacts

That last point is organisational rather than technical and often gives the biggest single improvement.

Take a home insurer's claims line with around 150 agents. A storm warning is issued two days ahead. The model has seen previous storm days in the history, with their event flags, so the forecast for the day after the storm rises well above a normal Tuesday. Planning can cancel training sessions and offer overtime in advance rather than discovering the queue at 8:05 that morning. The storm itself was not predictable by the model; its effect on calls, given a warning, largely was.

When a custom model is not worth it

Most workforce management platforms include forecasting. If your volumes are steady, your drivers are mostly calendar-based and your WFM tool is configured properly, a custom model may add little.

Custom forecasting earns its place when you have many queues or channels, strong event-driven volume, a WFM tool whose forecasts planners routinely override by hand, or when you want forecasts built from data the WFM tool cannot see, such as billing runs or website traffic. Also, a contact centre with fifteen agents and one queue probably does not need this at all.

How we build it

SpiderHunts would first backtest: rebuild what your current method would have forecast for the past year and compare it with a model, interval by interval, with separate figures for peak periods. If the improvement at peaks is not meaningful, we will tell you.

If it is, the model runs daily, publishes forecasts into the WFM tool through an import or API, and produces a short explanation of unusual days. Contact reason data from calls and chats, classified automatically, adds another layer by showing what is driving volume. That classification side sits with our AI integration work, the forecasting with machine learning.

Frequently asked questions

How far ahead should call volume be forecast?

Most centres need three horizons: long-range for hiring over months, weekly for scheduling a few weeks out, and intraday for real-time adjustments. Accuracy naturally declines the further ahead you look.

What is a good call forecast accuracy?

It depends on volume. Large queues can be forecast closely at daily level, while small queues are noisy at interval level. Judge accuracy at the level staffing decisions are made, and pay particular attention to peaks.

Does machine learning replace Erlang C?

No. The model forecasts volume and handling time; Erlang-style calculations still turn those into agents needed. Some centres use simulation instead where multi-skilled routing makes Erlang inaccurate.

Can we forecast chat and email the same way?

Volume forecasting works similarly, but staffing differs because agents handle concurrent chats and emails have longer response targets. Model them as separate queues with their own staffing rules.

How much history do we need?

Two years of interval data is ideal because it captures annual events twice. One year works, though events that occur once a year will be learned from a single example.

Keep reading

Service levels swinging from great to terrible each week?

Share a year of interval-level contact data. We will compare your current forecast with what a model would have predicted and show where the misses come from.

Book a free 30-minute call Get a project estimate WhatsApp us

Related services

What we build for problems like this one

AI AgentsMachine LearningAI Integration