All work

Forecasting error, from 28% to under 10%

Rebuilt the volume and headcount model for a 24/7 omnichannel operation staffed by 100+ contractors in 75+ countries, so that staffing decisions run on a forecast the team can trust.

Error variance cut from 28% to under 10%

Role
Designed, built and run it. Final decision-maker on headcount across all channels.
When
2019 – present
Tools
Forecast modeling, Workforce management, Google Sheets, Looker Studio

Try the idea

A small interactive version, with made-up data. Drag the slider.

average error, model that chases last week
average error, same model with outlier detection

Toy version with made-up numbers. Both lines come from the same simple smoothing model. The only difference is whether an unusual week is allowed to become next week's baseline. The real rebuild took error variance from 28% to under 10%.

The knot

The account runs 24/7 on three channels (chat, tickets and phone) at 5,000+ contacts a week, staffed by 100+ contractors in 75+ countries. When I took over the forecast, it was off by around 28%. On that many staffed hours, a miss that size means either a queue full of waiting customers or a floor full of idle agents, and often both in the same week.

There was a complication that most workforce planning guides don’t cover. Contractors on this account aren’t guaranteed hours. Coverage comes from the hours people volunteer, so I also had to predict how many hours would be offered, and when.

What I did

  • Rebuilt the volume model with outlier detection, so that an unusual week (a marketing push, an outage) is flagged and kept out of the baseline instead of inflating the next month’s numbers.
  • Built a headcount model on top of it that turns forecast volume into staffed hours per channel.
  • Added a supply forecast: how many hours people will realistically offer, by time of day and region, and where the gaps will be.
  • Connected it to intraday management, so real-time reallocation uses the same numbers the weekly plan was built from.

What changed

Forecasting error variance dropped from 28% to under 10%.

Every staffing decision on the account now goes through the model. It plans and distributes 2,000+ staffed hours a week, and around 10,000 at peak. Headcount accuracy improved, and margin stopped leaking through over- and under-staffing.

What I’d tell someone doing the same

Demand forecasting was the easier half. If your workforce isn’t on guaranteed hours, most of the risk sits on the supply side, and it’s worth modelling separately even if the first version is rough.