MODULE 14 ยท Middle-track ยท 2.5 hours

A naive forecast gets you 80% of the way to a complex model

In time series the order of the data is information, and the usual cross-validation quietly lies. We start from baselines that are harder to beat than they look.

Open this module in the simulator All 23 lessons

The first two modules are free, no card. The rest are $20/month.

๐Ÿข The situation

The operations director is in a panic: the warehouse is stuffed with winter goods, while popular items run out 3 days before restocking. Purchasing is planned "same as last month".

Lena:

"Classic demand forecasting. We need a 4-week-ahead sales forecast for the top 2000 SKUs. The peculiarity of time series: the order of the data is information, and all the usual validation habits work differently here. Start with the naive baselines โ€” in forecasting they are harder to beat than you think."

๐ŸŽฏ Your task

  1. Understand the series components: trend, seasonality, noise.
  2. Build features: lags, rolling windows, the calendar.
  3. Validate honestly (no peeking into the future) and beat the naive baseline.

๐Ÿ“š Theory

Time series components

Naive baselines โ€” respect them

  1. Naive: tomorrow = today.
  2. Seasonal naive: next Wednesday = last Wednesday.
  3. Moving average over 4 weeks.

In retail, seasonal naive often delivers 80% of a complex model's quality. A model that can't beat it is wasted time.

Two approaches to forecasting

  1. Classic series models (ARIMA, ETS, Prophet): good for a single series with clear structure.
  2. ML on tabular features (boosting): turn the series into a table of "features โ†’ next period's value". For thousands of SKUs with one model โ€” the industry standard (this is how the M5 competition was won).

Features for the ML approach

Validation: forward only

Random K-fold is forbidden: the model would see the future. Use a rolling/expanding window: train up to T โ†’ forecast [T, T+4 weeks] โ†’ shift โ†’ repeat. This mimics real usage.

Metrics: MAE/WAPE (error as a share of volume) โ€” clear to purchasing; MAPE is dangerous with zero sales.

Series = trend + seasonality + noise; validation goes forward only today forecast (4 weeks) trend โ†— + weekly teeth (seasonality) โ–  train (expanding window) โ–  test (the next period) rolling validation: 3 window shifts
Top: the series structure and the forecast horizon. Bottom: the rolling scheme โ€” every window trains on the past and tests on the future, mimicking production.

What to remember

  • Seasonal naive first; if you can't beat it โ€” the model isn't needed.
  • Lags and windows strictly from the past (shift before rolling).
  • Validation โ€” rolling over time only.
  • WAPE/MAE + quantiles for inventory; mind the production forecast horizon.

Next in this module: Practice

A step-by-step walkthrough of the solution, the code and a five-question quiz.

Open the module โ†’

Nearby lessons

13 "Frequently bought together": recommendations 15 Support is drowning in tickets

The whole program โ€” 23 lessons