September 8, 2026
By 
Mike Le

What Data Do You Need to Forecast Demand?

What Data Do You Need to Forecast Demand?

Demand forecasting needs clean sales history first, then lead times, promotions, and stock data. Here's the full input list and where to pull each one from.

Every guide to demand forecasting starts with a method and assumes the data is sitting there, clean, in one place. It is not. It is spread across your storefront, your warehouse system, your ad accounts, and a spreadsheet somebody maintains by hand, and assembling it is most of the actual work.

To forecast demand you need clean historical sales data per SKU as the foundation, then supplier lead times, promotional history, stockout periods, and current stock levels. Sales history alone will produce a forecast; the other four are what stop it being wrong in predictable ways.

Key takeaways

  • Sales history is necessary and not sufficient: it is the foundation, and on its own it teaches the model your mistakes.
  • Stockout periods are the highest-value cleanup: unmarked, they train the forecast to under-order the products that sell out.
  • Lead times belong in the data set: they are not part of the demand forecast itself but nothing downstream works without them.
  • Where the data lives is the real problem: most brands hold every input already, in four systems that do not talk.

What data does demand forecasting actually need?

Five inputs, in descending order of how much they matter. You can start with one and add the rest, and most brands should, but knowing the full list up front stops you mistaking an incomplete data set for a broken method.

Historical sales data, per SKU

This is the foundation and everything else is an adjustment to it. You need unit sales by product by period, daily or weekly, over as long a history as you have, ideally at least twelve months so a full seasonal cycle is represented. Two details matter more than length. It has to be per SKU rather than per product family, because you buy at SKU level and a size or colour variant can behave nothing like its siblings. And it has to be sales of the product, not revenue, since price changes would otherwise show up as demand changes. If you have only six months, forecast with it and be honest that seasonality is guesswork until you have a year.

Stockout and availability history

This is the input almost nobody has and the one that causes the most damage by its absence. When a product sells out, your sales records show low sales for that period. The model reads that as low demand and forecasts accordingly, which means it learns to under-forecast precisely the products that have already proved they can sell out. The fix is to record when each product was unavailable, so those periods can be flagged and either excluded or adjusted upward. If you record nothing else on this list beyond sales, record this.

Promotional and campaign history

A forecast that cannot see your promotions will treat every promotional week as an unexplained spike. Depending on the method, it either ignores those weeks as noise or bakes the elevated level in as the new normal, and both are wrong. What you need is a record of when discounts ran, on which products, at what depth, alongside campaign activity and ad spend if you can get it. This is what allows a model to separate demand you created from demand that was there anyway, which is the difference between a forecast that plans for next month's promotion and one that is surprised by it.

What data do you need for the decisions after the forecast?

The demand forecast is only half of what a planner needs, and two more inputs turn a demand number into something you can buy against. They are not part of the forecast itself, which is why they get forgotten, and then nothing downstream works.

Supplier lead times, measured rather than quoted. You need the real elapsed time from placing an order to the stock being sellable, per supplier and ideally per product. Pull it from your last ten to twenty purchase orders rather than from the supplier's website, because the gap between the two is usually several days and always in the same direction. Lead time drives your reorder trigger and your buffer, so an optimistic figure produces late orders on every cycle.

Current stock and open purchase orders. You need accurate on-hand quantities per SKU per location, plus what is already on order and when it is expected. Every buying decision compares forecast demand against that position, so an inaccurate on-hand count produces a confidently wrong order. This is the input brands most often assume is fine and most often is not, which is what cycle counting exists to correct.

Where does all this data actually live?

In systems you already run, which is the good news, and in four different ones that do not talk to each other, which is the problem. The assembly work is the reason most brands' forecasting effort dies somewhere between intention and Tuesday.

  • Sales history per SKU. usually lives in: Storefront platform, marketplace seller accounts; the common obstacle: Channels export in different shapes and have to be reconciled
  • Stockout periods. usually lives in: Nowhere, or a warehouse system that overwrites history; the common obstacle: Availability is rarely stored as a time series
  • Promotional history. usually lives in: A marketing calendar, often a spreadsheet; the common obstacle: Kept by a different team and not tied to SKU-level dates
  • Lead times. usually lives in: Purchase order records, often a spreadsheet; the common obstacle: Recorded as quoted rather than as actual
  • Stock and open orders. usually lives in: Warehouse or third-party logistics system, ERP; the common obstacle: Counts drift from reality between physical checks

The manual pull is the real cost. Read that table as a description of a recurring Tuesday. Export sales from the storefront, export again from the marketplace, reconcile SKU codes that differ between them, pull current stock from the warehouse system, find the promo calendar, chase someone for the lead times, and assemble it all into one sheet before any forecasting begins. That assembly is typically several hours, it happens every cycle, and it produces no output on its own. It is also the step that quietly gets skipped when the week is busy, which is exactly when the forecast most needs refreshing.

This is where connected data changes the economics rather than the method. Conative AI connects to your storefront, marketplaces, and ERP, Shopify, Amazon, and NetSuite among them, so sales, stock, and order data arrive continuously instead of being exported and reconciled by hand each cycle. The forecast then runs on the current position rather than on the last spreadsheet somebody had time to build. See which systems connect on the integrations page, or book a call to see it running on your own data.

How much data is enough to start?

Less than most brands assume, and waiting for a complete data set is itself a decision with a cost. Twelve months of clean per-SKU sales history gives you a full seasonal cycle and is a comfortable starting point. Six months will produce a usable forecast for steady sellers with the honest caveat that seasonality is unknown. Three months is enough to spot a trend and not much else.

The more useful question is not how much history you have but how clean it is, because a short clean series beats a long dirty one. Three cleanups are worth doing before you add any new data source: reconcile duplicate or renamed SKU records so one product is not counted as three, correct returns booked to the wrong period, and mark the stockout periods. That work is unglamorous and it improves forecast quality more reliably than switching methods does.

Rule of thumb: start with the sales history you have, add the stockout flags next, and only then worry about promotions and external signals. Each step improves the forecast more than a better model applied to worse data would.

Frequently asked questions

Can you forecast demand with only sales data?

Yes, and plenty of brands do, but it comes with a known blind spot: without stockout and promotional history, the model treats your own past constraints as genuine demand patterns. It will under-forecast products that have sold out and misread promotional weeks. Sales-only forecasting is a reasonable start, not a destination.

How much sales history do you need to forecast demand?

Twelve months is comfortable because it covers a full seasonal cycle. Six months works for steady sellers if you accept that seasonality is unknown. Below three months you are estimating rather than forecasting, which is the right approach for a new product but should be labelled as such.

What if my data is messy?

Clean it before changing anything else, because every method inherits the input quality. Prioritise three fixes: reconcile duplicate SKU records, correct returns booked to the wrong period, and mark stockout periods. A short clean history produces better forecasts than a long dirty one, consistently.

Do I need external data like weather?

Rarely at the start, and only if your category is genuinely weather-sensitive. External signals help at the margin and add real maintenance cost. Your own promotional history and stockout flags will improve accuracy more than any external feed for most eCommerce catalogs, and they are cheaper to obtain.

What data do you need for multi-channel forecasting?

Sales history separated by channel rather than blended, plus stock positions per location. Channels behave differently enough that one combined number hides the pattern in each. The reconciliation work is heavier, since SKU codes frequently differ between your storefront and marketplace accounts.

Does a new product need different data?

Yes, because it has no history of its own. The usual approach is to base the initial forecast on look-alike products with comparable price, category, and audience, then switch to the product's own data once several months accumulate. Applying a standard method to three weeks of launch sales produces false confidence.

Turn insights into cash

Time is money, save both.

By clicking Get Started you're confirming that you agree with our Terms and Conditions.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.