Ever since I started tracking my gym lifts in a notebook, I kept asking a deceptively simple question: if I squatted 80 kg last Tuesday, what should I expect next week?
At first I treated the numbers as a straight line. Two good weeks in a row meant the bar would keep rising forever. That belief lasted until bad sleep, travel, or a cold knocked the progression sideways. Looking only at the last session was not a clever strategy. I was training fine; I was just ignoring most of the history on those pages.
So I started looking further back: rolling averages over the last month, whether I was in a bulk or a cut, rest days, even walking to the gym in the heat. Tiny details I had dismissed—training later than usual, for example—mattered more than I wanted to admit. Projecting forward from noisy measurements is less like reading a crystal ball and more like deciding which parts of the past are allowed to speak.
In Data Science we meet the same problem whenever we forecast ordered observations over time. Pharmaceutical demand, energy load, or a weekly lift log: all of them mix trend, seasonality, shocks, and covariates that refuse to sit still. A long history does not mean one model will do.
Below: the main families used in practice, how they connect to automated model factories, and what breaks once you leave the notebook.
Closer to the statistical tradition, people usually reach for:
Once you have hundreds of products, regions, or SKUs, hand-tuning one model per series stops being realistic:
Econometric and structural models make spikes easier to explain—a promotion, a holiday, a stockout. Boosting and deep models often win on error for messy series, then fail the meeting where someone asks why SKU X jumps next Tuesday. In regulated or client-facing work, that gap is not academic.
With few points, aggressive non-linear models overfit the last shock and look brilliant in-sample. Strong baselines and hierarchical Bayes behave better on short series. Large panels can share strength across related series (same family, same city) in ways an isolated model never sees.
Operations rarely need a single number. Inventory, pricing, and capacity care about ranges and tails. Optimizing only mean squared error can look accurate and still be useless when under- and over-forecasting are punished differently.
Hand-built pipelines for a few flagship series can be elegant. They also rot. A factory shifts effort toward validation design, feature contracts, drift monitoring, and clear rules for promoting a new champion over the previous baseline. That cost pays off only if the organization reuses the factory instead of forking a notebook per request.
Forecasting from ordered history is harder than copying last week’s number; the catalogue of methods is wide; production constraints decide which ones survive. Later we can get concrete: covariate features, rolling validation, and assembling a small factory without pretending to be a research lab.
A good forecast is less about predicting the future perfectly and more about making the next decision less naive than the last one. The gym notebook never told me exactly what I would lift on a given Tuesday. It did teach me that ignoring history, covariates, and honest baselines is a reliable way to be surprised for the wrong reasons. The same lesson scales from a squat log to a national demand panel: start simple, measure against something hard to beat, and let complexity earn its place.