Scheduling a workforce that isn't guaranteed hours
Planning and distributing staffed hours across 100+ contractors who choose their own availability, 24/7, in 75+ countries.
2,500+ staffed hours a week, 10,000 at peak, with billable hours held to plan
The knot
In a typical contact center you set the schedule and people work it. On this account nobody was guaranteed hours. Everyone was an independent contractor who could work whatever they wanted, whenever they wanted. Coverage was built from the shifts people chose to offer, so the demand forecast told you how many agents you needed at 3am but not whether anyone would 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 would offer, in which regions, and at which times.
- Built a ballot system in Google Apps Script. People submit the shifts they’d like, and the ballot assigns hours automatically from those preferences, making sure everyone gets a share of the hours that suit them.
- Added “standing”, a currency people earn and spend. You earn it by claiming unpopular shifts, submitting your ballot on time, and picking up shifts other people dropped. You spend it to claim the most popular hours. You lose it for late ballots or dropping too many shifts.
- Set up a fallback for unclaimed shifts. First they’re posted to the team with extra standing attached. If nobody takes them, an emergency backup steps in: every lead is trained on chat and can cover a hole.
- Ran intraday across all three channels: reallocation against volume spikes, shrinkage tracking, and occupancy per channel.
- Owned attendance, timesheets and reconciliation for the whole contractor base across the WFM platforms we used (Celayix, Deputy, Tanda, Teambridge).
- Ran A/B tests before committing headcount, including one comparing chat concurrency at 1, 2 and 3 to measure the real gain in occupancy and throughput.
What changed
2,500+ 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.
Try the idea
A small interactive version, with made-up data.
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.