Case study 02 — WFM forecast & scheduler

They asked for a forecast. The data showed a staffing problem.

Operations wanted two things: predictions of call volume, and a way to stop schedules that broke the rules from reaching the workforce management system. Building the first showed service level running far below its target, so the request grew into a set of reports and a scheduling tool.

Ask
Forecast reports and safer schedule exports
Found
Service level far below the 90% target
Built
4 CUIC reports + a bilingual scheduler
Built with
SQL · CUIC · HTML/JS · ASP.NET

The forecast came first.

Six weeks of history per call type, turned into expected volume and handle time per weekday, per week and per month. Erlang C then converts that into agents needed per shift to hit 90% of calls answered within 60 seconds, allowing for shrinkage and the fact that not every agent can take every call type.

  1. 01Daily forecastVolume, handle time and agents needed per day, in plain column names operations can read without a key.
  2. 02Shift plan per dayThe same numbers split across the three shifts, which is where the real gap usually hides.
  3. 03Skill queue coverageHow many agents have access to each precision queue, against how many that queue needs.
  4. 04Skill queue shift planCoverage per queue per shift: the report that tells the workforce team exactly who to move, and where.

What the numbers said.

Run over six weeks of real traffic, the reports showed service level sitting well under target with a high abandon rate, and the cause was not a shortage of people overall. Some queues were short of agents with the right language skill while others had spare capacity on the same shift. That turns an expensive hiring conversation into a training and scheduling one.

Actual figures stay with the client; the pattern is what the tool is for.

Then the schedule itself.

A scheduler in English and Arabic, right to left, where a week is painted from shift templates with undo, redo and copy-last-week. Every change is checked live against the rules: minimum rest days, staff per interval, uncovered intervals, maximum consecutive days, hours between shifts, Ramadan hours and headcount against plan.

The staffing plan imports straight from the forecast report, so the grid shows plan against schedule with a fill-the-gap assistant. The finished week exports as schedule XML and is delivered to the workforce management system's import folder with its status tracked, instead of being hand-carried and rejected.

Validation · week 472 issues before export
TUE · PM3 agents short of plan at 15:00fill the gap
AGENT 047 days in a row · the limit is 6rest day
EXPORTSchedule XML → WFM import folder● Waiting

What changed

Schedules pass before they leave

Rule breaks are caught in the browser, not by the WFM system after import, so a rejected week no longer costs a day.

Staffing tied to the target

Every shift has a number behind it, and the workforce team can see which queue the next trained agent should go to.

Readable by operations

Four focused reports with plain column names and guides in English and Arabic, instead of one report nobody could use.