ENGINEERING THE NEXT GENERATION

Logo
Home/Blog/How Much Historical Data Do You Need for Demand Forecasting?
Demand PlanningForecastingPredictive AnalyticsData ReadinessInventory

How Much Historical Data Do You Need for Demand Forecasting?

September 23, 2026
Layered glass cylinder of historical data strata projecting a forecast line forward
Forecast quality depends less on how many years you have than on which years still describe your market.

TL;DR & Quick Summary

"How much data do we need?" is usually the first question in a forecasting project, and the most common answer, "at least two to three years", is only partly right. How much history you need depends on four things: whether your demand is seasonal, how far ahead you forecast, how complex the model is, and how much your market has changed. Sometimes eight months is plenty. Sometimes five years is worse than two.

  • Seasonality is the hard requirement: you need the seasonal pattern to repeat at least twice

  • Model complexity has to match the data: every parameter the model estimates costs observations

  • Relevance beats length: data from before a structural change can make the forecast worse

  • New products borrow history from similar items, the category, or the whole catalogue

  • Data quality matters more than quantity: one year of clean demand beats five years of raw transactions

  • Key Takeaway: Don't ask how many years you have. Ask how many years still describe the market you're forecasting, and whether you've corrected for the things that hide true demand.

  • Get Started: Not sure your data is ready for a forecasting project? Schedule a strategy call with Cogniq AI or review our predictive analytics services. A data-readiness review is usually our first step.


Why There Is No Magic Number

The most widely used forecasting textbook, Hyndman and Athanasopoulos's Forecasting: Principles and Practice, answers this directly in its section on very long and very short time series. There is no easy answer. The requirement depends on how many parameters the model estimates and how much randomness is in the data. The authors also reject the "30 observations" rule of thumb that often gets cited, and say there is no justification for it.

The only strict requirement is that you have more observations than parameters. Anything more than that is judgement, and the way to exercise that judgement is to test on your own data rather than trust a rule of thumb.

What you can do is work out a sensible minimum from the four factors below.

Factor 1: Seasonality Sets the Floor

If your demand has an annual pattern, such as heating parts in winter, garden products in spring or retail peaks at year-end, the model has to see that pattern more than once to tell it apart from noise. With one year of data, a December spike could be seasonality, a one-off promotion or a large customer order. With two years, the model can check whether it happened again.

This is a hard constraint, not a preference. Classical seasonal decomposition in the widely used Python library statsmodels refuses to run on fewer than two complete cycles.

Seasonal pattern Minimum to estimate it Comfortable
Annual (monthly data) 24 months 36+ months
Annual (weekly data) 104 weeks 156+ weeks
Weekly (daily data, day-of-week effects) 2 weeks, in principle 3–6 months, to separate from other effects
None detectable No seasonal minimum 6–12 months for a stable level and trend

Three years of weekly data is where annual seasonality becomes reliable. A single unusual year then no longer defines the pattern.

Factor 2: Forecast Horizon

The further ahead you forecast, the more history you need to estimate the slower-moving parts of demand, especially trend. Forecasting next week's demand mostly depends on recent levels. Forecasting next year's requires a view of the trend and how stable it is, and that needs a longer window.

A practical approach is to match the history to the decision:

  • Replenishment forecasts (days to a few weeks ahead): recent months matter most, and older history adds little
  • Purchasing and supplier commitments (one to six months ahead): at least a full year, and two if demand is seasonal
  • Capacity and budget planning (a year or more ahead): several years, with structural changes flagged

Factor 3: Model Complexity

Each thing a model learns costs data: a trend, a seasonal index for each month, the effect of a promotion, the effect of price. A simple exponential smoothing model estimates very few parameters and can work with limited history. A model with twelve monthly seasonal terms, a trend, price elasticity and promotion effects needs far more before its estimates can be trusted.

For short histories the textbook's advice is to choose models with a criterion such as AICc, which penalises complexity and so favours simpler models when data is scarce. In practice:

  • Under a year of history: simple smoothing, or a naive seasonal benchmark borrowed from similar items
  • One to two years: exponential smoothing with trend, and seasonality only if it's clearly visible
  • Two to three years or more: full seasonal models, and models with promotion and price effects if those are recorded

Machine learning changes the calculation in one important way, covered below. More complex doesn't mean more data per item if the model learns across items.

Factor 4: Relevance Beats Length

This is the factor most often ignored. History is only useful if it still describes the demand you're forecasting. Data from before a structural break can make a forecast worse:

  • A new sales channel, such as moving from wholesale-only to direct ecommerce
  • A major pricing or assortment change
  • Gaining or losing a customer that made up a large share of volume
  • Supply constraints that capped sales below demand for an extended period
  • The 2020–2022 pandemic years, for most categories

The options are to start the history after the break, to down-weight older periods, or to model the break explicitly with a flag the model can learn from. Which is right depends on whether the old pattern might come back. Dropping data is the most common mistake in the other direction: it discards seasonal information you'll later need.

The Data Beyond Sales History

A long sales history with problems in it is worth less than a shorter clean one. In our experience these fixes matter more than adding years:

  1. Stockout flags. When an item is out of stock, sales are zero but demand isn't. Without flags the model learns that demand drops whenever you run out, and it lowers the forecast, which causes more stockouts. This is the single most damaging data problem in inventory forecasting.
  2. Promotion and price history. A promotional spike treated as normal demand inflates the baseline for the following year.
  3. Returns separated from sales. Netting returns against sales hides both the real demand and the return rate.
  4. Lifecycle dates. Launch and discontinuation dates stop the model from treating a ramp-up or phase-out as a trend.
  5. Consistent units of measure. Cases in one year and eaches in another is a surprisingly common source of fake trend.

These are also the questions we ask first in any predictive analytics project. The answers usually decide the timeline more than the modelling does. Our AI demand planning and inventory forecasting guide covers the wider pipeline these inputs feed.

Items With Little or No History

New products, new locations and newly listed SKUs have the least data. They are often the items the business most wants to get right. They can still be forecast, by borrowing history from elsewhere.

Analogous (Like-Item) Forecasting

Choose one or more past products similar to the new one, by category, price point, channel or customer segment, and use their launch curves as the starting forecast. This is the most common approach and works well when a genuinely similar predecessor exists. The main risk is choosing analogues by gut feel, so document why each one was chosen.

Attribute-Based Models

Train a model on the whole catalogue to learn how product attributes relate to demand, then apply it to the new item's attributes. This is more systematic than picking analogues by hand and scales to large launches. It needs clean, consistent product attribute data, which many businesses don't have.

Top-Down Allocation

Forecast the category, which has plenty of history, and give the new item an expected share based on comparable launches. This is simple, easy to explain, and keeps the total realistic even when the item-level estimate is uncertain.

Blending as Sales Arrive

Whichever method you start with, shift weight from the borrowed estimate to the item's own sales as data comes in. Ideally this happens automatically. After eight to twelve weeks of real sales, the item's own history usually deserves most of the weight for short-term replenishment.

Where Machine Learning Changes the Answer

A global machine learning model is one model trained across many products at once. It changes the data question from "how long is each item's history?" to "how many related items and attributes do we have?". Because it learns shared patterns, such as how promotions lift demand, how price changes shift it and how day-of-week effects vary by category, it can forecast items with short histories better than any model fitted to that item alone.

This is what the M5 competition showed on Walmart data: the leading entries were models trained across many series together. But the advantage depends on breadth. A catalogue of a few dozen products doesn't give a global model much to learn from, and classical methods will often do as well at a fraction of the complexity.

If much of your catalogue sells irregularly, the data problem is different again. Our guide to intermittent demand forecasting with Croston, SBA and TSB covers methods designed for sparse series.

A Practical Test: Does More History Help?

You don't have to argue about this in theory. Test it:

  1. Choose a representative sample of items across your main categories
  2. Set aside the most recent 3–6 months as a test period
  3. Fit the same model using 1 year, 2 years, 3 years and all available history before the test period
  4. Compare accuracy with a volume-weighted metric and bias, as described in forecast accuracy metrics
  5. Use the shortest window that performs as well as the best

Often accuracy improves up to two or three years and then flattens or drops. The drop is a sign that older data no longer represents current demand. The test takes a few days and saves you from deciding on assumptions.

You May Not Need More Data. You May Need Better Data.

If you've been delaying a forecasting project until you have "enough history", the delay may not be necessary. Most businesses with a year of reasonably clean sales data can build a forecast that beats their current spreadsheet method, and improve it as more data arrives. The businesses that struggle usually don't lack history. They have history that hides true demand behind stockouts, promotions and inconsistent records.

Conclusion

The amount of data you need is set by seasonality, horizon, model complexity and relevance, not by a universal number of months. Start with the seasonal floor, match the history to the decisions the forecast supports, choose a model whose complexity fits the data, and test whether older data actually helps. Fix stockout and promotion distortions first. For new products, borrow history in a structured way and shift to the item's own data as it arrives.

Schedule a strategy call with Cogniq AI for a data-readiness review of your sales history, or explore our predictive analytics services.

Frequently Asked Questions

There is no fixed minimum, and published rules of thumb such as 30 observations have no real justification. As a working guide: to model annual seasonality you need at least two full years so the pattern appears more than once; for non-seasonal demand, six to twelve months of weekly data can support a simple model; and the more parameters a model estimates, the more history it needs. The honest answer is to backtest on your own data and see whether additional history improves accuracy.

No. Data from before a structural change, such as a new sales channel, a pricing overhaul, a lost major customer or the pandemic period, can describe a market that no longer exists and pull the forecast in the wrong direction. The most useful history is the longest stretch that still reflects current conditions. Older data can still be used, but typically with lower weight or with the disruption explicitly flagged.

Borrow history from somewhere else. The common approaches are analogous or like-item forecasting, where you use the launch curve of a similar past product; attribute-based models that learn how product characteristics such as category, price point and channel relate to demand across the catalogue; and top-down allocation, where you forecast the category and assign the new item an expected share. As real sales arrive, the forecast should shift weight from the borrowed estimate to the item's own data.

Stockout flags are the most important, because zero sales during a stockout are not zero demand. After that: price and promotion history, a calendar of holidays and events relevant to your customers, product lifecycle dates such as launches and discontinuations, and, for B2B, open orders or pipeline data. External data such as weather helps in specific categories but is rarely the first thing worth adding.

Per series, not necessarily. A global machine learning model trained across many related products can forecast items with short histories well, because it learns shared patterns from the whole catalogue. What machine learning needs is breadth: many series and useful attributes. A single product with two years of history is usually better served by a simple statistical model than by a complex one fitted to that series alone.

Fix the few issues that distort demand the most before investing in modelling: reconstruct stockout periods, separate returns from sales, align units of measure, and record promotions. A simple model on clean demand history nearly always beats a sophisticated model on raw transaction data, because the model can only learn what the data actually says about demand.