Module: Computing normal sales in the past

Executive summary

The module clears historical sales from the effect of promotions. It essentially computes how much of a product would have been sold if no promotions took place.

This is rather important for the following reasons:

  • The forecast of non-promotion sales must be based on adjusted sales history, since for the future, we first forecast non-promotional sales – promotion sales, on the other hand, get forecasted based on the non-promotion sales forecast.
  • Without this adjusted data series, we would have not known the effects of promotions and, thus, we wouldn’t have a chance to determine their efficiency and profitability.
  • The computation is also used to determine cannibalization and post-promotion sales. These indicators (and their algorithms) are described in the relevant modules.

This cleaned data series is called a baseline.

Functional description

Computing normal sales

The module computes a potential quantity of a product that would have been sold, if there were no promotion. The output is then used as an input for forecasting non-promotional sales.

The algorithm divides the daily sales into (homogeneous) intervals (taking into consideration the ongoing promotions) and these intervals are then evaluated by the following criteria:

  1. Maximum discount in a given interval.
  2. Length of the interval.
  3. Distance from other intervals.

Using these criteria, the weight of similarity of the neighboring intervals are evaluated using a modified Gaussian distribution, and an estimated gain obtained due to the ongoing promotions is computed by regression analysis.

For the computations, seasonality of the given interval and a possibility of overlapping promotions are taken into consideration.

As a rule, quantity of non-promotion sales may never be lower than sales outside of a promotion.

An example: a pink curve – the output of the module – smoothens out spikes caused by promotions.

image0

The algorithm computes non-promotional sales up to the level of days. Then, it clusters them into months. The algorithm also assigns an estimated sum of non-promotional sales computed for the given promotion to each historical promotion. This, then, allows the algorithm to automatically evaluate the success and profitability of the promotion.

Eliminating promotions from recomputation using SIDI

Each promotion can be eliminated from computation of normal sales (for past promotions), by doing so, the promotion is also automatically eliminated from a forecast of quantity for future sales. This setting can be automatically imported from the primary system.

The STOCK features a setting that marks all promotions longer than X days; the default is 40 days. The whole module of promotion analysis is primarily intended for short-term promotions, with the idea that the price reduction (or having the product included in a leaflet) increases sales significantly.

Displaying normal sales

The computed values can be displayed graphically in a tab of the module Detail.

The same values can be displayed in the module Forecasting non-promotional sales and in the tab Explaining the sales forecast.

Base lines for individual promotions can be viewed in the report Evaluation of promotions in the module: Forecasting promotional sales.

Extensions

Computing normal sales for a product group

This extension is particularly suitable for situations with a high number of promotions and situations with products alternating between a predecessor and a successor. Alternatively, the extension can be successfully used for IN-OUT products that are on sale just for a while (e.g., on occasion of a World Cup). Typically, this happens in a FMCG environment.

The extension is – as said above – great for a situation with a high overlap of sales of products of a predecessor – successor type. Here, it is essential to compute a correct baseline for each of them.

The picture shows sales of standard products A, B, C.

image1

If the product A were the predecessor of the product B, and, in turn, the product B were a predecessor of the product C, they wouldn’t have coincided with one another and their overlap would have been minimal. This extension, then, wouldn’t have been necessary in this particular situation: a classic function of a predecessor – successor can deal with it well.

However: if the product A is a predecessor of the product B – and the product B is a predecessor of the product A, the predecessor – successor function cannot deal with it (the module predecessor – successor cannot contain a cycle). Hence, these products must to be computed as a ‘single product’, then, the curve of non-promotional sales is split up between the products (in a proportional way), up to the level of daily sales, due to overlap. And this is done by the present extension.