Calculation and model reference
Open the interactive Calculation Library →

Planning answers should be explainable.

This reference explains how LoughPoint prepares data, compares forecasts and translates workload into staffing. Customers can inspect assumptions, override policy inputs and challenge the recommendation.

Same maths everywhere

Shared calculation functions support the workspace and automated regression tests.

Applicable by channel

Real-time and asynchronous work use different, documented staffing logic.

Limitations shown

Low history, incomplete metrics and uncalibrated outputs are identified in context.

1. Data preparation

LoughPoint normalises the uploaded source before any forecast or staffing result is produced.

Time grain
Detected from the median spacing between unique timestamps and classified as 15-minute, 30-minute, hourly, daily, weekly or monthly.
Demand
Negative or non-numeric volumes are excluded. Valid zero-demand periods remain part of the series.
Gaps
Missing periods are identified within observed operating days. Overnight closures are not automatically treated as missing demand.
AHT
Imported AHT is weighted by handled contacts when every included AHT observation has a handled count and the total is positive. Otherwise all included observations use offered contacts as the weighting basis. Rows without positive AHT are excluded. A manual assumption is used when selected or imported AHT is unavailable.
Outliers
Flagged for review; you choose to keep or exclude each one, and the choice and your note are recorded. Nothing is excluded automatically. For forecasting, an excluded value is replaced by the median of comparable retained periods where there are any.

2. Forecasting and model selection

Candidate methods are compared using historical holdouts at the detected source grain.

Candidate methods
Local-only models: seasonal naïve; three-cycle matching-period and weighted averages; Holt linear and damped trends with seasonal profiles; additive and multiplicative Holt-Winters; linear trend with seasonal profile; WFM seasonal indices; an equal-weight seasonal ensemble; and simple/recency-weighted rolling flat-level plans. Legacy smoothed-level settings remain readable.
Optional interval allocation
For monthly, weekly or daily uploads only, customers can allocate coarse forecasts to assumed hourly, 30-minute or 15-minute arrivals. Weekday, interval and date-exception weights preserve each parent forecast total. Local clock changes use unique UTC instants. Generated intervals feed staffing and scheduling but are not observed history and cannot establish interval forecast accuracy.
Rolling validation
Up to four historical windows are held out. Every eligible method forecasts each window using only information available before it.
Part periods
When daily or interval history is forecast at daily, weekly or monthly level, a first or last week or month that the history only partly covers is left out of model fitting and backtests, because a part period is not a full actual. A part period at the end is forecast as a whole period, so the rest of the current week or month is planned. The assumption trace lists any periods left out.
Primary accuracy measure
WAPE = total absolute forecast error ÷ total actual demand. Lower is better.
Supporting measures
Bias identifies systematic over- or under-forecasting. MAE shows typical absolute error; RMSE places more weight on large misses.
Stability rules
For daily forecasts with at least 14 weeks of history, seasonal naïve is preferred when its error is within 10% of the lowest result. At other forecast levels the lowest-error method is used. Linear trend must show at least 15% fitted change across history.
Uncertainty
Low/high planning sensitivities use queue WAPE with a 10% minimum, or a 20% fallback. Buffer × √(1 + forecast index / seasonal cycle) widens the range independently of total horizon length. These are scenarios, not calibrated prediction intervals.

3. Workload and staffing

The staffing method changes with the queue type; one formula is not applied to every channel.

Workload
Workload hours = contacts × average handle time in seconds ÷ 3,600. Chat workload is divided by supported concurrency where applicable.
Voice and live chat
At 15-minute, 30-minute or hourly forecast detail, Erlang C sizes the minimum whole-agent requirement in each interval that meets both the service-level target and the occupancy ceiling. At daily, weekly or monthly detail there is no interval to model queueing, so Erlang C is not used: live work is sized as workload ÷ (paid hours × occupancy ceiling), with the queue's ceiling (85% unless changed). This usually understates live staffing, so LoughPoint shows a warning and points you to an interval forecast.
Email and tickets
Asynchronous work is sized against the available SLA or productive window. These queues use workload-clearance and backlog logic, not Erlang C.
Net requirement
The productive requirement before shrinkage. It represents agents available to handle customer work.
Roster requirement
Gross roster = net requirement ÷ (1 − shrinkage). Shrinkage is applied after the productive requirement is calculated.
Rounding
Interval requirements are rounded to whole agents where simultaneous coverage is required. Required FTE is not rounded again: it is the whole productive agents ÷ (1 − shrinkage) for live interval queues, and unrounded workload ÷ occupancy ÷ (1 − shrinkage) for asynchronous work and coarse levels, so it keeps decimals until presentation.
Required FTE (before shift fit)
The paid FTE needed to cover demand before shifts are fitted. A fitted roster usually needs more, because shift patterns cannot follow demand exactly; Build Schedule shows both.

4. Service and scenario impacts

Scenario outputs are recalculations from changed assumptions, not guaranteed operating results.

Service level
For synchronous queues, Erlang C estimates the proportion answered within the configured threshold.
ASA
Expected average speed of answer is calculated from probability of waiting, AHT, offered load and staffed agents.
Abandonment
Erlang C does not model abandonment. Observed abandonment from your upload is reported as history; it is not predicted for the forecast and is not used to adjust staffing.
Backlog
For asynchronous queues, backlog is workload that exceeds productive capacity inside the assessed planning window.
Scenarios
Volume, AHT, shrinkage, occupancy, service targets, operating hours, cost and coverage strategy remain explicit inputs.
Scheduling recommendations
The recommendation engine searches permitted shift patterns within the configured limits. It is a constrained heuristic, not a guarantee of the global optimum or full coverage. Review shortages, unused staffing, operating hours and any infeasible constraints before applying a plan.
Work rules
Breaks, rest periods and shift limits reflect the settings you supply. A generated schedule is not a certification of compliance with employment law, contracts or local agreements.