Weekday-seasonal forecaster
A treasury team funds each day's payments before the day starts. Too low and they're short; too high and cash sits idle. This model forecasts daily volume 1–30 days ahead with one sentence: recent level × day-of-week effect × payday effect.
Explore the forecasts
A year of walk-forward forecasts (2025): at every day each model was refit on data up to that day only. Drag the slider under the chart to move through the year.
Average error by horizon
Mean absolute error per day. Lower is better.
Required cash buffer
Extra cash held on top of the forecast to cover shortfalls on 95% of days.
Where each model goes wrong
Average error by weekday.
Results table
Why the simple model wins
- The moving average ignores the weekly pattern. It predicts nearly the same number every day, so it's always low on Fridays and paydays and high on weekends.
- Repeating last week copies last week's noise and puts paydays on the wrong dates: last Tuesday may have been the 1st, this Tuesday is the 8th.
- The seasonal model estimates each effect from many days, so only today's noise remains. Its error is close to the 6% noise built into the data, and it holds up to 30 days ahead.
- What it misses: the December peak, because it has no yearly component. That, plus spikes and holidays, is what Project 2 fixes.
How it works
- Weekday factors, last 12 weeks: each day divided by the average of the week around it, so growth and slow seasonal bumps cancel out.
- Payday factors, last year: the same idea for five day-of-month buckets (1–3, 4–13, 14–16, 17 to month end, last 3 days).
- The two are estimated in turn for three passes, because a payday on a Friday would otherwise inflate Friday.
- Level: the average of the last 28 days after removing both effects. Forecast = level × weekday factor × payday factor.
Data: one simulated series, $50M a day growing 15% a year, with known weekday, payday and December effects and 6% noise. The full method with formulas is in the methodology.