Skip to main content
TurnellaBeta
WFM planning guide

Contact volume forecasting — how to predict call and chat demand

Every staffing decision in a contact centre starts with a forecast. Without an accurate volume prediction, your Erlang C calculation is just a guess. This guide covers the full forecasting chain — from raw historical data to interval-level demand — ready to feed into your staffing model.

Why forecasting accuracy matters so much

Erlang C is unforgiving of forecast error. Because the relationship between agents and service level is non-linear, a 10% underforecast doesn't produce a 10% degradation in service level — it can produce a 30% degradation when you're already near the tipping point.

5% underforecast

Occupancy rises ~3–5 points

10% underforecast

SL may fall 10–25 points

20% underforecast

Queue may become unstable (SL → 0%)

Values are illustrative for a contact centre at 80% occupancy. Exact impact depends on traffic intensity and agent count.

The forecasting hierarchy

Contact centre forecasting works top-down. You forecast at the highest stable level first, then disaggregate down to the interval level needed for Erlang C:

Monthly / weekly total

Most stable · Trend + seasonality + events

Daily volume

Moderately stable · DOW profile × weekly forecast

Interval volume (30-min)

Least stable · Intraday profile × daily forecast

Erlang C input

Derived · Interval volume + AHT → agent requirement

The 7-step forecasting process

1

Gather and clean historical data

Pull at minimum 13 weeks of daily contact-handled data per channel (voice, chat, email separately). Check for anomalies: bank holidays, incidents, system outages, large campaigns. Mark these periods as 'event-affected' and exclude them from baseline calculations — they will be added back as uplift later.

Tip: Export from your ACD/CRM at the daily grain first. Don't start with intervals — clean daily data first, then split to intervals.

2

Calculate your weekly baseline trend

Compute total weekly contact volume for each week in your history. Apply a simple moving average (4–6 weeks) to smooth noise. Plot this trend line. Is volume growing (new products, marketing)? Declining (digital deflection, FCR improvement)? Flat? Apply this trend rate to project forward-week baselines.

Tip: A simple linear regression on weekly totals is often sufficient. Complex models are rarely warranted when event data is incomplete.

3

Apply seasonal indices

Compute a seasonal index for each week of the year: divide the actual week volume by the trend-smoothed value for that week. Index > 1.0 = above trend; < 1.0 = below trend. Average across multiple years if you have the data. Multiply your forward baseline by the appropriate seasonal index for each forecast week.

Tip: No seasonal pattern? Your operation may not be seasonal — run the index check and if indices cluster around 1.0, you can skip this step.

4

Add known event uplift

For each forecast week, identify scheduled events that will inflate or deflate contacts: marketing campaigns (typical uplift: +10–40%), bill runs (+5–25%), product launches (+15–50%), regulatory letters (+10–30%), bank holidays (deflation of 50–90% on the day). Build an event calendar and apply these uplifts to the relevant day's forecast.

Tip: Event impacts are highly operation-specific. Build a record of historical events and their measured contact uplift so future events of the same type can be calibrated.

5

Split weekly to daily using DOW profiles

Compute the day-of-week (DOW) profile from recent history: what % of weekly volume lands on each day? These should be computed separately per channel. Multiply the weekly forecast by each day's weighting to get a daily forecast.

Tip: Recalculate DOW profiles every 4–8 weeks. They drift with operational changes, self-serve adoption, and customer behaviour shifts.

6

Split daily to interval-level (30-min or 15-min)

For each day of the week, compute the half-hourly volume profile from historical data: what % of daily volume arrives in each 30-minute interval? Apply this profile to the daily forecast to get interval-level volume. This is the figure that feeds directly into Erlang C.

Tip: Use the Turnella data workstream to import interval-level historical data and visualise the DOW heatmap — the shape of each day is shown automatically.

7

Feed interval volume into Erlang C

For each 30-minute interval: plug the forecasted arrival count, AHT, and service level target into Erlang C. The output is seated agents required. Apply shrinkage to convert to scheduled headcount. Repeat for every interval across the operating hours of the forecast week.

Tip: Erlang C assumes a stationary Poisson arrival process within the interval. For stable voice queues this is valid. For chat and email, use the concurrency and backlog models instead.

Measuring forecast accuracy

Track forecast error regularly. The standard metrics:

MAPEMean Absolute Percentage Error
Target: <5% daily · <10% intervalMost common. Intuitive percentage but undefined at zero.
RMSERoot Mean Square Error
Target: Operation-specificPenalises large errors more heavily. Good for detecting spikes.
Weighted MAPEVolume-weighted MAPE
Target: <5% dailyBetter for uneven intervals — peak hours count more.

Review MAPE weekly by day-of-week and by interval. Systematic bias (consistently under or over at the same time of day) indicates a profile issue. Random variance indicates noise that better smoothing can reduce.

Common forecasting mistakes

Forecasting all channels as one

Voice, chat, and email have entirely different arrival patterns and DOW profiles. Always forecast separately and combine only at the resource-planning stage.

Using raw data without event adjustment

A week with a major incident or campaign will inflate your seasonal indices and DOW profiles for that period. Mark and exclude these weeks before calculating baselines.

Stale intraday profiles

If your operation extended hours, launched a chat channel, or changed IVR routing, the intraday shape changes. Refresh profiles after any structural operational change.

Ignoring repeat contacts

A drop in FCR generates repeat contacts that inflate volume without an underlying demand change. If your volume trend is rising but externally-driven demand is flat, check FCR first.

Over-engineering the model

Complex ARIMA or ML models are rarely worth the effort in a contact centre context. Clean data + event calendar + trend-seasonal decomposition outperforms black-box models when events dominate the variance.

Frequently asked questions

How do you forecast contact centre volume?

Contact centre volume forecasting starts with decomposing historical data into trend (is volume growing or declining?), seasonality (which weeks, days, and times are consistently busy?), and events (promotions, bills, incidents). A reliable weekly-level forecast for 4–8 weeks ahead is then split into daily volumes using day-of-week profiles, and those daily volumes are split into interval-level (30-minute or 15-minute) demand using a half-hourly profile derived from the same historical data. The interval-level forecast feeds directly into Erlang C to compute required agent counts.

How much historical data do you need to forecast accurately?

A minimum of 13 weeks of daily data allows you to identify week-of-year seasonality and recent trend. For operations with strong annual seasonality (retail, utilities, insurance), 24–52 weeks of data produces more reliable seasonal adjustments. Interval-level profiles (the within-day shape) are stable over a much shorter period — 4 weeks of good data is usually sufficient to build a reliable half-hourly profile.

What is a day-of-week profile in contact centre forecasting?

A day-of-week (DOW) profile is the relative weighting of each day within a week. If Monday carries 22% of weekly volume and Saturday carries 8%, Monday is weighted 0.22 and Saturday 0.08 (all 7 days sum to 1.0). To forecast a day, multiply the weekly forecast by the day's weighting. DOW profiles should be derived from recent history (4–12 weeks) and recalculated regularly, as they shift with business change and staffing model changes.

What causes contact centre forecasts to be wrong?

The most common sources of forecast error: (1) Not adjusting for events — a product launch, bill run, or marketing campaign that adds contacts not visible in clean historical data. (2) Treating contact types as one pool — email and voice have different arrival patterns. Forecast each channel separately. (3) Stale DOW or half-hourly profiles — the shape of the day changes with business hours, chat adoption, and customer behaviour. (4) Ignoring repeat contacts — if FCR drops, repeat contacts inflate total volume without any underlying demand change.

From forecast to staffing plan in one step

Import your interval-level volume data into Turnella. The workstream visualises DOW patterns, then the Erlang C calculators convert forecasted volume to required headcount.

Related