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
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.
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.
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.
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.
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.
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.
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:
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
Erlang C calculator
Convert forecasted volume to agent count
Erlang C explained
How the staffing formula uses your forecast
Multi-channel calculator
Forecast-to-staff across voice, chat, email
Shrinkage explained
Seated to scheduled headcount
Contact centre metrics
The KPIs that sit upstream of forecasting
Staffing guide
End-to-end planning process