TapCub is live — analytics, insights and live chat, free on one platform

Free tool Ticket volume forecast

Staffing starts with how many contacts are coming. Paste a few weeks of daily or hourly ticket, call or chat counts, and the tool backtests five standard methods on the last cycle, picks the one with the lowest error and forecasts the days or hours ahead — with a chart, a table and a CSV.

  • Five methods, backtested
  • MAPE and MAE shown
  • Runs locally
Forecast

Forecast ticket or chat volume

The sample is eight weeks of daily chats for a B2B SaaS help desk (sample figures): busy on weekdays, quiet at weekends, slowly growing.

One point per line: 2026-09-14 212 (date and count), or 2026-10-12 09:00 35 for hourly data. A single column of numbers also works. Paste two columns straight from a spreadsheet; a header row is skipped.

Hourly data with "daily" selected is summed per day.

Auto: 7 for daily data; 24 for hourly data, or 168 (a week of hours) once there are 3 weeks.

Auto picks the method with the lowest backtest error.

Days or hours, up to 400.

Holt-Winters with a multiplicative pattern (busy periods scale with the level) fits best. Next 14 periods: about 2,777.2 in total, peak 271.5 at 2026-11-16 Mon. Backtest on the last 7 periods: MAPE 2.0%, MAE 4.1.

Forecast total

2,777

Sum over the forecast periods.

Average per period

198.4

Peak period

271.5

Backtest MAPE

2.0%

Average % error on the held-out cycle.

Backtest MAE

4.1

Average error, in tickets.

History and forecast

Grey: history. Blue dashed: forecast. Shaded: rough 80% range from the backtest error.

Contact volume: history and forecast01002003002026-10-12 Mon2026-11-08 Sun2026-11-22 SunHistoryForecast80% range

Methods compared on the held-out cycle

Each method is fitted without the last cycle and scored on it. Green is the one used.

MethodMAPEMAE
Holt-Winters (additive)2.4%4.6
Holt-Winters (multiplicative)2.0%4.1Lowest error · used
Seasonal index × recent level2.8%5.1
Moving average47.7%62.9
Same period last cycle3.0%5.3

Forecast

The range is ±1.28 × backtest RMSE; it does not widen with the horizon, so treat far-out rows with more caution.

PeriodForecastLow (80%)High (80%)
2026-11-09 Mon266.8259.8273.9
2026-11-10 Tue243.6236.6250.7
2026-11-11 Wed244.8237.8251.9
2026-11-12 Thu234.2227.1241.2
2026-11-13 Fri211.9204.8218.9
2026-11-14 Sat89.682.596.6
2026-11-15 Sun86.179.193.2
2026-11-16 Mon271.5264.5278.6
2026-11-17 Tue247.9240.8254.9
2026-11-18 Wed249241.9256.1
2026-11-19 Thu238231245.1
2026-11-20 Fri215.3208.3222.4
2026-11-21 Sat9183.998
2026-11-22 Sun87.580.494.5
forecast.csv
period,forecast,low_80,high_80
2026-11-09 Mon,266.8,259.8,273.9
2026-11-10 Tue,243.6,236.6,250.7
2026-11-11 Wed,244.8,237.8,251.9
2026-11-12 Thu,234.2,227.1,241.2
2026-11-13 Fri,211.9,204.8,218.9
2026-11-14 Sat,89.6,82.5,96.6
2026-11-15 Sun,86.1,79.1,93.2
2026-11-16 Mon,271.5,264.5,278.6
2026-11-17 Tue,247.9,240.8,254.9
2026-11-18 Wed,249,241.9,256.1
2026-11-19 Thu,238,231,245.1
2026-11-20 Fri,215.3,208.3,222.4
2026-11-21 Sat,91,83.9,98
2026-11-22 Sun,87.5,80.4,94.5

Opens in Excel or Google Sheets.

Runs entirely in your browser. Nothing you type here is uploaded or stored by TapCub.

Version v1.0Updated Update history

Reading the result

What the forecast tells you

A forecast is only as good as its backtest. Read the error first, then the numbers.

Backtest MAPE

Each method is fitted without the last cycle and asked to forecast it. MAPE is the average percentage error on that week (or day). It is the honest answer to "how far off will this be?" for the near term.

MAE

The same error in tickets. Use it when counts are small: a quiet hour going from 2 to 3 is a 50% miss but only one ticket.

The 80% range

Forecast ± 1.28 × backtest RMSE, assuming errors are roughly normal. It is a guide for buffer staffing, not a guarantee, and it does not grow with the horizon the way true uncertainty does.

Which method won

If "same period last cycle" wins, the pattern is stable and there is little trend. If Holt-Winters wins, level or trend is moving. If the moving average wins, there is not much pattern to use.

No statistical method knows about your launches, campaigns, outages or public holidays. Mark those days, forecast the baseline, then add the effect you expect on top.

How to use it

From a report export to a staffing plan

Four steps, all in the browser.

  1. 1

    Export

    Take daily (or hourly) ticket, call or chat counts for at least two full cycles — 14 days for a weekly pattern; six to eight weeks is better.

  2. 2

    Paste

    Paste date and count, one per line. Missing dates are filled with 0, out-of-order lines are sorted, and the checks above the results tell you what was changed.

  3. 3

    Check the backtest

    Look at the method table. If every method has a high error, the history is too short, too noisy or has a one-off event in the last cycle.

  4. 4

    Use it

    Download the CSV, or, for hourly forecasts, send the next 24 hours to the staffing calculator. Then roster with shrinkage.

Methods

Five standard methods, scored the same way

Methods and notation follow Hyndman & Athanasopoulos, Forecasting: Principles and Practice (3rd ed.). Holt-Winters uses a damped trend, starting values computed the way statsmodels' "simple" initialisation does, and α, β, γ, φ chosen by minimising one-step squared error.

  • Same period last cycle (seasonal naive): ŷ = value one cycle earlier
  • Moving average: mean of the last full cycle, repeated
  • Seasonal index × recent level: classical decomposition with a centred 2×m moving average; index averaged per weekday (or hour) and scaled to mean 1
  • Holt-Winters: level, damped trend and seasonal terms updated after each point; additive or multiplicative season
  • Backtest: hold out the last cycle (or 20% of the data), fit on the rest, score with MAPE and MAE; Auto picks the lowest MAPE

MAPE

(1/n) × Σ |actual − forecast| ÷ actual

Periods with 0 actual are left out

MAE

(1/n) × Σ |actual − forecast|

Same units as your data

Holt-Winters level

ℓₜ = α(yₜ − sₜ₋ₘ) + (1 − α)(ℓₜ₋₁ + φbₜ₋₁)

Additive version

Holt-Winters forecast

ŷₜ₊ₕ = ℓₜ + (φ + … + φʰ)bₜ + sₜ₊ₕ₋ₘ

Latest seasonal term for that weekday

80% range

ŷ ± 1.28 × RMSE (backtest)

Approximate

Worked example

Scoring a forecast by hand

The simplest method — next week equals last week — scored against what actually happened. Sample figures.

Seasonal naive forecast vs. actual chats for one week, with absolute percentage error
DayForecast (last week)ActualError|Error| ÷ actual
Mon360372+123.2%
Tue300291−93.1%
Wed280286+62.1%
Thu265270+51.9%
Fri255240−156.3%
Sat250262+124.6%
Sun290301+113.7%

MAPE = average of the last column = 3.5%. MAE = (12 + 9 + 6 + 5 + 15 + 12 + 11) ÷ 7 = 10.0 chats. The tool runs the same check for every method and keeps the one with the lowest MAPE.

Common mistakes

Where volume forecasts go wrong

Usually the data, not the maths.

Letting one-off days drive the forecast

A launch, an outage or a holiday in the history gets copied into the future. Replace those days with a typical value before forecasting.

Forecasting daily, staffing hourly

Agents are scheduled by hour. Forecast hourly data, or split the daily forecast with your usual hour-of-day profile.

Trusting the far end

Errors grow with the horizon. Re-run the forecast every week with the latest data instead of planning a month from one run.

Forgetting what changed the inflow

A new help-centre article, an AI answer bot or a pricing change can shift volume overnight. Old history will not know.

FAQ

Ticket volume forecasting FAQ

Still have a question?

Chat with the team behind TapCub — we usually reply within a few hours on business days.

How do you forecast ticket volume?

Collect at least a few weeks of daily (or hourly) counts, choose a method that captures the weekly pattern — seasonal naive, a seasonal index or Holt-Winters — and check it by forecasting a period you already know. Use the method with the lowest error, then add known events on top.

How much history do I need?

At least two full cycles: 14 days for a weekly pattern, 48 hours for an hour-of-day pattern. Six to eight weeks gives the seasonal index and Holt-Winters more to work with. For a weekly pattern in hourly data you need about three weeks.

What is a good MAPE?

There is no fixed bar; it depends on how noisy your volume is and how far ahead you forecast. Compare methods against each other and against the seasonal naive baseline: a method that cannot beat "same as last week" is not adding anything.

What is Holt-Winters?

Exponential smoothing with three parts — level, trend and season — each updated after every new data point. It adapts to growth and shifting patterns better than a fixed average. This tool damps the trend so long forecasts do not run away.

Additive or multiplicative seasonality?

Additive means Monday is always about 50 tickets above average; multiplicative means Monday is always about 20% above average. If your volume has grown a lot, multiplicative usually fits better. Auto tries both.

How do I handle holidays and campaigns?

Statistical methods only see the pattern in the history. Replace one-off days in the history with a normal value, forecast, then adjust the specific future days by what you expect from the event.

How do I turn the forecast into staff?

With hourly data, the tool links the next 24 hours to the chat staffing calculator. For phone or email queues use the Erlang C calculator per interval, then add shrinkage.

Changelog

Update history

New features, fixes and data refreshes for this tool, newest first.

  1. · v1.0

    LaunchedFirst release.

Missing something or found an error? Tell us — requests that come up often go into the next update. All tool updates

See your data clearly. Find your growth.

Every click, backed by data. Install one line of code and see your first numbers in a minute.

No credit card · Free plans for analytics and chat · Cookieless analytics