Home
>
Blog
Blog
>
Article

What is the sales history?
What does it take to make an accurate prediction?

Dorothée Fouissac

Head of Product Development and Projects

August 20, 2026

A Booper article already online sums up the data needed for a forecast in a single sentence: “sales history + granularity.” That’s true, but it says almost nothing about what makes that history useful —or misleading. How many years do you really need, and is the answer the same for yogurt as it is for a swimsuit? Does a stockout from six months ago still skew your model today? Does a shelf relocation render part of the historical data unusable without anyone noticing? This guide addresses these questions one by one.

Booper Illustration: Sales History Analyzed Over Time, Bars, and Clock

The right question isn't "how many years," it's "how much trust"

How many years of historical data are needed to make accurate forecasts? This is the question asked every time a forecasting tool is deployed, and it almost always elicits a cautious expert response: “It depends.”

The answer is true, but it hides a more useful question—one that determines whether a two-year sales history is better than a six-month sales history: Does this sales history reflect actual demand, or just what the store has managed to sell?

A long history is no guarantee if some of that data is silently misleading. Conversely, a short but clean history may be sufficient for an accurate forecast based on a stable benchmark.

The bottom line: Depth matters. Reliability matters even more.

Booper has already published a comprehensive article on the mechanics of calculating a sales forecast— Sales Forecasting with AI: Method and KPIs —which addresses historical data and granularity in a single sentence, as part of a broader methodology. This guide revisits that specific point and goes further: the necessary depth depending on the category, data gaps that skew historical data without indicating it, changes in context that invalidate part of the past, and cases where historical data is simply no longer sufficient.

The required depth depends primarily on the category

A yogurt sold year-round and a swimsuit sold for six weeks don't have the same need for historical data—the issue is considered category by category, not store by store.

Stable turnover, low seasonality

Everyday Products

Six to twelve months of clean sales data is often enough to gauge sales trends. The main risk isn't the time frame; it's recent data that has been skewed by a stockout or a supplier issue.

A distinct annual cycle

Seasonal products

It takes at least two to three full seasonal cycles—one year is not enough to distinguish a normal season from an exceptional one. A single observed peak is not a confirmed peak; it is simply a data point.

Zero past sales

New Products

There is no specific historical data available yet. The forecast is based on comparable items that have already been sold, not on historical data that does not exist—a different exercise, discussed below.

A market that has changed in nature

Products Undergoing Structural Change

There is a long history, but it describes a market that no longer exists. The sheer volume of data does not make up for its obsolescence —a point also discussed below.

Maintaining the appropriate depth by category helps avoid two common mistakes: underweighting a seasonal product based on a 12-month history, or overweighting a stable product with a five-year history that offers no additional insight beyond the last 12 months.

The Censored Request: What an "Out of Stock" Message Hides in Your Order History

This is the most subtle and systematic bias of all—because it doesn’t show up in the numbers. An empty shelf on a Tuesday afternoon doesn’t register as a lost sale.

The point-of-sale system records “0 sales” even though actual demand continued to exist. This unrecorded sale is not the absence of a signal: it is a false signal, indistinguishable from a genuine decline in demand if no one corrects it.

Researchers call this phenomenon “censored demand ”: the observed sales history does not represent actual demand; rather, it represents actual demand capped by what was available on the shelves. A forecasting model trained on this uncorrected history learns a consistent falsehood—it systematically underestimates demand for SKUs that have been out of stock, and therefore recommends restocking levels that are still insufficient.

The bias perpetuates itself: fewer units ordered, more stockouts, and an even more skewed history the next time around.

7,37%

a systematic downward bias in estimated demand when past stockouts are not identified and corrected in the historical data—a discrepancy that the latent demand recovery correction reduces to nearly zero. Study based on 50,000 time series from 898 stores and 863 fresh food SKUs (arXiv, FreshRetailNet-50K: A Stockout-Annotated Censored Demand Dataset, 2025).

The practical consequence is not merely theoretical. A sales history that has never been corrected for its discrepancies artificially caps all the forecasts based on it—until someone asks why an item that “never sells well” is systematically allocated too little inventory to prove otherwise.

History is reliable only if the context has not changed around it

A stockout is not the only event that renders part of the transaction history unusable without any notification. Four context changes—which are very common but rarely documented in point-of-sale systems—have the same effect:

  • A change in the product lineup. A product that was discontinued and then reintroduced, modified packaging, a new line replacing the old one under a similar name: the system continues to track a single, continuous sales series even though there are actually two different products.
  • A point-of-sale promotion or product highlight. A spike in sales resulting from an end-cap display or an in-store promotion is not a normal level of demand. If the historical data does not distinguish between weeks with and without promotions, the model will learn a sales pattern that will not be replicated without the same marketing effort.
  • A change in shelf placement. When a product is moved from a shelf at eye level to a less visible location, sales volume declines without any disruption or price change to account for the drop in the data.
  • An unrecorded price change. A sales history that does not track past price changes—increases, decreases, promotional offers—is just as unreliable as one that ignores stockouts. A sale at the regular price and a sale at 30% off do not reflect the same level of demand; a model that treats them as equivalent learns a false signal.

These changes don’t just happen out of the blue: they’re deliberate decisions. Along with the purchasing team, the pricing team is one of the main sources of this uncharted context—every price increase, decrease, or promotional launch deserves to be dated and documented with the same rigor as a stockout, precisely because it obscures the historical record in the same way.

This is not a rare anomaly. A landmark study of inventory data—covering 37 U.S. retailers and nearly 370,000 tracked SKUs—measured the extent to which on-the-floor data diverges from the physical reality of the shelf as soon as something moves on the floor without being tracked in the system.

65%

In a study of nearly 370,000 inventory counts from 37 U.S. retailers, tracked SKUs showed a discrepancy between the inventory recorded in the system and the inventory physically present on the shelves. This discrepancy becomes particularly pronounced during periods of change—such as promotions, restocking, and shelf replenishment (DeHoratius & Raman, “Inventory Record Inaccuracy: An Empirical Analysis,” Management Science, INFORMS, 2008).

The lesson isn't to throw everything out. It's to be able to pinpoint changes in context—such as a simple log of sales transactions, planogram changes, and known stockouts—so that the forecasting model (or the person overseeing it) knows which weeks in the historical data are comparable to one another, and which are not.

When History Is No Longer Enough

There are two situations in which the history is structurally inadequate, regardless of its length or how well-organized it is.

Launching a Product with No Track Record

By definition, a new product has no past sales to analyze.

The forecast should therefore be based on comparable products that have already been sold—a comparable product line, a similar price point, and similar seasonality—rather than waiting several months to collect data before producing an initial usable figure.

This exercise is different from reading historical data: it relies on assessing similarity, not on calculating a time series.

The Structural Disruption of the Market

A lasting change in purchasing behavior—a new consumer habit, the arrival of a competitor that changes the local landscape, or an economic shock that redefines the purchasing power of a trade area—makes some of the historical data misleading rather than useful.

The data are accurate, complete, and properly dated. They simply describe a market that no longer exists in this form.

Continuing to train a model using data from the past three years is like trying to predict the future using a map of a territory whose borders have changed.

In both cases, the best approach is the same: reduce the weight of past data in the forecast, and make this adjustment explicitly rather than allowing a model to continue weighting a past that no longer serves as a reference.

Ensuring the reliability of historical data before using it for forecasting

1

Mapping Past Disruptions

Identify, line by line, the periods when inventory fell to zero—this is the prerequisite for applying a censored demand adjustment rather than interpreting gross sales as the actual level of demand.

2

Dating Changes in Context

Keep a simple log of changes to the product assortment, in-store displays, and shelf layout—without this record, no one can distinguish a typical week from an exceptional one in the historical data.

3

Segment depth by category

Do not apply the same historical data window to both a stable product and a seasonal product—the required depth is not a company-wide constant; it varies by category.

4

Handle cases with no prior history separately

Product launches and structural market shifts cannot be resolved by looking for more historical data—they require an analogy-based or scenario-based approach, not a longer historical record.

At Booper

GENIUS Predict and GENIUS Monitoring: A History That’s Monitored, Not Endured

GENIUS Monitoring centralizes alerts regarding price anomalies, out-of-stock situations, and competitor price discrepancies—which limits the amount of suppressed demand that silently accumulates in the history log before being addressed. It also tracks price changes and promotions—one of the key features of our pricing analytics offering—so that the forecast can distinguish between “full-price” demand and “promotional” demand rather than lumping them together.

A reliable history is just a starting point

A historical record that has been properly adjusted for disruptions and changes in context provides a solid basis for forecasting—but it says nothing about what will happen next week if an event outside the store changes the situation: weather, a floating holiday, current events, or a competitor’s actions. This is a topic in its own right, covered in another article in this series devoted to exogenous events.

Key takeaway: The quality of the history remains the foundation.

An organization that invests in a sophisticated forecasting module without first addressing its stockouts or documenting its assortment changes is building an accurate forecast on a flawed foundation—the opposite of the right order of priorities.

A pricing and sales data analysis—such as the one Booper offers through its pricing analytics service—almost always begins with this question: How much can we trust historical data before building anything on it?

Sales campaigns themselves—including promotions and marketing activities —should be tracked with the same rigor as a price change, precisely because they are one of the most common causes of a history that is misleading without saying so. This is also the point made in the key article of this series on the overall governance of sales forecasting: the quality of input data is never a purely technical issue; it is a matter of organization and collective discipline.

A Checklist Before Relying on Your Sales History

  • Do you know, by SKU, which periods have had stockouts in the last twelve months?
  • Are your historical sales figures adjusted for suppressed demand, or are they treated as they are—as an actual level of demand?
  • Is there a log detailing changes to the product assortment, in-store displays, and shelf placement?
  • Is the depth of the history used appropriate for each category, or is it the same for the entire catalog?
  • Are products with no sales history or that are out of stock due to structural issues handled using a dedicated method, or are they forced into the same model as the rest?

Want to know if your sales history is ready for a reliable forecast?

Spend 30 minutes with our team to identify what factors in your current data are skewing your forecasts—factors that no one has spotted yet.

Let's plan an exchange →

Frequently Asked Questions

How many years of sales data are needed for a reliable forecast?
It depends on the category. Six to twelve months of clean historical data is often sufficient for a stable product with low seasonality. A seasonal product requires at least two to three full annual cycles to distinguish a normal season from an exceptional one. Duration matters less than reliability: a shorter history that has been corrected for biases is better than a long history that has never been cleaned.
What is “censored demand” in sales forecasting?
This is the phenomenon whereby a recorded historical sale underestimates actual demand because the product was out of stock at the time a customer could have purchased it. The point-of-sale system records “0 sales” even though demand still existed—a systematic downward bias if no one corrects it.
How does a past stockout skew a future forecast?
A model trained on historical data that has not been corrected for stockouts learns an artificially low demand level for the items in question. It then recommends insufficient restocking, which causes further stockouts and exacerbates the bias in the next forecast—a self-perpetuating cycle that continues until the correction is applied.
Does a change in the product lineup or shelf placement invalidate the entire history?
No, not the entire history—only the relevant periods, provided they are identified. Without a dated log of these changes (assortment, in-store displays, store layout), the forecasting model cannot distinguish between a comparable week and an exceptional week, and treats both as equivalent.
How can you forecast sales for a product with no sales history, such as a new product launch?
By relying on comparable products that have already been sold—a similar product line, a similar price point, and similar seasonality—rather than waiting several months to collect data. This is an exercise in making judgments based on similarities, not a calculation based on a time series that does not yet exist.
What should you do when a structural shift in the market renders historical data obsolete?
Explicitly reduce the weight of historical data in the model rather than letting it carry the same weight as if nothing had changed. A clean and complete historical record that describes a market that no longer exists should no longer serve as the primary reference—forecasts should rely more on recent signals and scenarios than on the average of past years.

Also in this series

Sources

  • arXiv, FreshRetailNet-50K: A Stockout-Annotated Censored Demand Dataset, 2025 — arxiv.org
  • Nicole DeHoratius, Ananth Raman, “Inventory Record Inaccuracy: An Empirical Analysis,” *Management Science*, INFORMS, 2008 — pubsonline.informs.org
  • Booper, AI-Powered Sales Forecasting: Methodology and KPIs (Supplementary Article, Technical Details) — booper.fr
  • Booper, internal product data (`context/socle_booper.md` §3) — GENIUS Predict, GENIUS Monitoring.

Related
articles
Structuring a B2B data-driven pricing team

Building a high-performing pricing team requires adopting a hybrid model that combines central strategy with local agility. This transition replaces intuition with data-driven decisions, orchestrated by expert roles and strict governance.

This proactive management directly transforms financial performance, targeting profitability increases of 100 to 500 basis points.

August 19, 2026
Read article →
Read the blog post
Best retail pricing software in 2026

Suffering a sudden drop in conversion rates because your competitors are adjusting their prices in real-time makes it essential to equip yourself with the best data-driven retail pricing strategy tool for 2026 to remain competitive. Price transparency in 2026: retail is automating pricing to protect margins against inflation, increase omnichannel responsiveness, and generate a rapid ROI.

Discover how these tools automate your specific business rules while ensuring total strategic control over your brand image and a measurable return on investment in less than six months.

This detailed comparison analyzes expert platforms capable of anticipating price elasticity and managing your omnichannel inventory to transform every piece of raw data into immediate, net profitability gains.

August 19, 2026
Read article →
Read the blog post
How to ensure reliable product matching?

Product matching or linking is the foundation of competitive monitoring, as it prevents the comparison of non-equivalent products. Reliable matching safeguards margins by basing repricing on actual, multi-signal data.

Key finding: 50% of French retailers still consider this challenge unresolved, according to a study by Diamart.

August 19, 2026
Read article →
Read the blog post
Ready to
 boost
your margins?

The intelligent pricing solution for retail leaders. Precision, speed, and instant profitability.

Let's discuss your pricing challenges