WFM Helper
Back to Tools

Shift and Break Optimizer

Build the interval requirement from volume and AHT, then let a local search solver place shift starts, breaks and lunches so coverage follows demand instead of fighting it.

Live · updates as you type

Demand and shift rules

Set the rules, then run the optimiser.

Interval requirement
h
h
sec
%
sec
hrs
min
min

Two per shift.

min
min
min

1.0 treats an idle agent as bad as a missing one. 0.2 favours coverage.

Headcount
Set your rules on the left and press Optimise schedule. The solver tries thousands of shift and break combinations, then keeps the best one it found.

Results are estimates for planning purposes only and should not replace professional workforce management judgment.

Scheduling is where a forecast either becomes useful or falls apart. You can have a perfect volume forecast and the right total headcount and still miss service level all day, simply because the shifts start at the wrong times and everybody goes to lunch at once. This tool solves that placement problem.

Step one, the interval requirement

Coverage is meaningless without a target to cover. In "From volume" mode the tool spreads your daily contacts across the day using a typical contact centre arrival curve, runs Erlang C on each half hour, and takes the busier half hour inside each clock hour as that hour's requirement. That deliberately errs on the safe side, because understaffing the first half of an hour cannot be repaired by overstaffing the second. In "Enter by hour" mode you type the requirement straight in, which is what you want if your requirement already comes out of your WFM platform.

Step two, the optimiser

Shift placement is a combinatorial problem. With fourteen agents, twenty four possible start times and three movable breaks each, the number of possible schedules runs into the trillions, so checking them all is out of the question. Instead this uses local search with simulated annealing:

  • Start from a spread of shifts across the open window.
  • Pick one agent at random and nudge one thing: their start time, or one break.
  • Score the whole day again. Keep the change if it improves the score.
  • Early on, sometimes keep a change that makes things slightly worse. That is the annealing part, and it is what stops the solver getting trapped in a mediocre arrangement.
  • Cool down gradually so late moves are only accepted when they genuinely help.

The score punishes every agent interval you are short, and gently punishes every agent interval you are over, using the overstaffing cost you set. Leave it around 0.2 and the solver protects coverage first. Push it toward 1.0 and it will hunt for efficiency, at the price of thin intervals. Because the solver is seeded, the same inputs always give you the same schedule, which matters when you need to defend a plan.

Break and lunch rules

Breaks are not decoration, they are a real constraint with real consequences. The protected windows stop the solver from parking a break in the first thirty minutes of a shift or the last thirty, which no operations manager would sign off. Lunch is forced into the middle portion of the shift, with a short break on each side of it. Because breaks are placed on a fifteen minute grid, they land where a real time analyst can actually action them.

Notice what the break shrinkage figure tells you. Two fifteen minute breaks plus a one hour lunch on a nine hour shift is ninety minutes off the phone, which is roughly 17% shrinkage before you add a single absence, meeting or coaching session. That is why planned headcount always looks so much larger than the Erlang requirement.

Reading the output

  • Coverage of requirement is the share of required agent hours you actually cover. Above 99% is a healthy plan.
  • Worst interval gap is the single ugliest interval in the day. One interval two agents short will cost you more service level than ten intervals with a rounding gap.
  • Projected service level reruns Erlang against the agents you have actually scheduled, weighted by volume, so it reflects the plan rather than the wish.
  • Occupancy is your sanity check. Anything sustained above 90% will show up later as attrition, not as efficiency.

Practical notes

  • If coverage will not close, the shift length is usually the culprit. Long single shifts cannot follow a sharp morning peak, try two shift lengths in separate runs.
  • Wider start increments make schedules friendlier to publish and easier for agents to remember, but they cost you a little precision.
  • Late day surplus is normal when demand tails off and shifts are uniform. That is your natural window for coaching and offline work.

More tools

See all tools