Forecasts you can defend in the Monday meeting.
From validated historicals to interval-level forecasts to Erlang C requirements, with the full working attached to every number.
Upload & validate
Interval-level volumes, AHT and staffing with structured validation: bad rows surfaced, not silently swallowed.
Forecast
Interval-level volume and AHT forecasts generated from your uploaded history.
Calculate requirements
Forecast → required FTE per interval via backward Erlang C, with shrinkage and occupancy applied.
Lock & version
Lock the plan of record. Locked forecasts are immutable and feed scheduling.
Show the math.
Every result the engine returns carries a full calculation trace: the Erlang C inputs, intermediate values, shrinkage applied, occupancy caps, and the engine version that produced it. If a number is on the screen, you can see exactly how it got there.
- Forward Erlang C: given staff, predict service level, ASA and occupancy
- Backward Erlang C: given targets, compute required FTE per interval
- Backlog-aware modeling: deferred work (email, chat, back-office queues) handled with backlog intervals, not voice math forced onto the wrong channel
- Versioned engine: outputs are stamped with the engine version, so last quarter's numbers reproduce exactly
Clean data in, defensible numbers out.
The historical data uploader takes interval-level volumes, AHT and staffing, and validates on ingest. Errors are reported row by row. You fix the file, not the forecast.
| Row | Interval | Volume | AHT | Status |
|---|---|---|---|---|
| 1,204 | 2026-06-30 14:00 | 388 | 301 | valid |
| 1,205 | 2026-06-30 14:30 | 402 | – | AHT missing |
| 1,206 | 2026-06-30 15:00 | −12 | 295 | volume < 0 |
| 1,207 | 2026-06-30 15:30 | 371 | 298 | valid |
2 rows rejected with reasons · 14,382 rows accepted
Locking & versioning: the plan of record, kept honest.
Locked means locked. A locked forecast is immutable. It can't be quietly edited after the fact. New thinking becomes a new version; scheduling always knows exactly which plan it was built against.
Forecasting FAQ
Which channels are supported?
Voice queues via forward and backward Erlang C, plus backlog-aware modeling for deferred work: email, chat, and back-office style queues where work can carry over between intervals.
What granularity do forecasts run at?
Interval level, matching the interval granularity you configure per campaign, so requirements line up one-to-one with your scheduling and intraday views.
What exactly does “locking” a forecast do?
Locking makes that forecast the immutable plan of record. It can no longer be edited, it's the version scheduling generates against, and it's the “Original” your intraday O/R/P/A grid compares reality to.
See the math for yourself.
Bring one of your own intervals to the demo. We'll trace it end to end.
Book a demo