Scheduling a workforce that isn't guaranteed hours
Planning and distributing 2,000+ staffed hours a week (10,000 at peak) across 100+ contractors who choose their own availability, 24/7, in 75+ countries.
Coverage built from voluntary availability, with supply forecast alongside demand
Try the idea
A small interactive version, with made-up data. Drag the slider.
Toy version with made-up numbers. Having enough hours in total doesn't mean having them at 3am, which is why the supply side needs a forecast of its own.
The knot
In a typical contact center you set the schedule and people work it. On this account nobody is guaranteed hours. Coverage is built from the shifts people choose to offer, so the demand forecast tells you how many agents you need at 3am but not whether anyone will be there.
On top of that: 24/7 across three channels, 75+ countries with their own public holidays, and a peak season that multiplies the hours by five.
What I did
- Forecast supply alongside demand: how many hours people will offer, in which regions, and at which times.
- Built the scheduling process in Google Apps Script. People vote on the shifts they want, then claim what’s left, and a fairness system keeps track of who has had the popular shifts so they rotate.
- Run intraday across all three channels: reallocation against volume spikes, shrinkage tracking, and occupancy per channel.
- Own attendance, timesheets and reconciliation for the whole contractor base across the WFM platforms we’ve used (Celayix, Deputy, Tanda, Teambridge).
- Run A/B tests before committing headcount. The current one compares chat concurrency at 1, 2 and 3 to measure the real gain in occupancy and throughput.
What changed
2,000+ staffed hours a week, and around 10,000 at peak, scheduled across a voluntary workforce with billable hours held to plan.
What I’d tell someone doing the same
When people choose their own hours, the schedule behaves like a market. It helps to design it as one, with clear rules, visible fairness, and a reason to pick up the shifts nobody wants.