Usage (Optimization - Shelf Price)

To run the Optimization - Shelf Price Accelerator, you need to create a new Model Object from the Optimization > Models menu, using the Shelf Price model class to instantiate the optimization model and give it the required parameters. The model will then be added to the list and will be editable.

New Model

  1. Go to Optimization > Models and add a new model.

    Button to add a model

     

  2. Define the name of the model and choose Shelf Price as Model Class.

    Create a new model

     

  3. The new model opens.

The interface is:

 

Definition, Scope, Configuration, and Results are the steps of the model and will be explained below.

Definition Step

This step aims to define the input data and their mapping. You can also apply a filter to your data. There are three tabs:

  • Sales defines the historical transactions.

  • Stock defines the historical stocks.

  • Competition defines the prices of the competitors on similar products.

When the Definition step is done, you can go to the Scope step. For this, use the Continue button at the top right.

If all required fields are not provided, there will be an error message.

Sales Tab

In this tab, you define the transaction source and map it. The right panel displays the source data selected and filtered-out rows. Click on Apply Settings on the left to reflect your filters on the right.

The general recommendations are:

  • Filters: The model automatically filters some unavailable values (like null, negative, or zero values, depending on the fields). First, apply the configuration entries and check the filtered-out data before adding more filters, if needed.
    It is key to define the filters to only keep in the scope meaningful transactions, excluding any special transactions, products not sold anymore…
    The products that are part of the transactions will be the ones that will be optimized to get recommendations of shelf prices, so adjust the filters accordingly, also for the time period.

  • Time period: Please also be careful to include periods fully. If time period is set to weekly or monthly, then the scope should includes full weeks or full months, otherwise the comparison of the recommendations with partial week/month will be wrong and misleading.

  • Field mapping: Store and Product are IDs, and Store Name and Channel Name are the labels displayed in the interface. When there is no name field mapped, the ID is used instead.

  • Date: is the date of the transaction.

  • Product Pareto: This field is used to define the target of stock coverage. Expected values are like: Runner, Long Term, Best Sellers… But any field related to product can be used, as product categories …

  • Money fields: they must provide extended values, meaning the full value for the sold quantity (except the Minimum Advertise Price which is not in the Extended fields section).

  • The mapping of the fields should reflect this waterfall structure:

    Notes: if some fields do not exist in the Transactions Datamart, or not used, then it is suggested to create fields, which always have 0 values.

    If some guardrails on Shelf Price are resquested, the Recommended Retail Price can be used as a maximum (just be careful here it should be extended) and the Minimum Advertise Price can be used to define the minimum.

Stock Tab

In this tab, you define the stock source and map it. The right panel displays the source data selected and filtered-out rows. Click on Apply Settings on the left to reflect your filters on the right.

The general recommendations are:

  • The model automatically filters some unavailable values (like null, negative or zero values, depending on the fields). First, apply the configuration entries and check the filtered-out data before adding more filters, if needed.

  • The Product and Store fields are used to link the stock data to the sales data. Their values and their types should correspond.

Competition Tab

In this tab, you define the competition source and map it. The right panel displays the source data selected and filtered-out rows. Click on Apply Settings on the left to reflect your filters on the right.

Here it is expected to get one competitor product for each product and store. Data should be structured that way or filters set accordingly. If ever several competitor products are found for one product, then the average is used and a warning is displayed in the Results:

The general recommendations are:

  • The model automatically filters some unavailable values (like null, negative, or zero values, depending on the fields). First, apply the configuration entries and check the filtered-out data before adding more filters, if needed.

  • The Product and Store fields are used to link the stock data to the sales data. Their values and their types should correspond.

  • The Shelf Price field is the unit shelf price of the product sold by the competitor.

Scope Step

The Continue button at the Definition step will automatically run the calculation that starts the Scope step. This calculation mainly performs the materialization of the sales, stock, and competitor tables in the model. At the end of the calculation, the tab is available and there are three tables called Sales, Stock, and Competition in the model tables (accessible through the menu in the top right corner).

In the Scope step, you define the scope of the optimization.

  • Included Product Groups and Included Channels: they rely on the product group field and on the channel field which was defined during the Definition step. If nothing is provided, there is no filter.

  • Product Minimum Historical Revenue, Product Historical Minimum Margin (%), Store Minimum Historical Revenue, and Store Historical Minimum Margin (%) are filters related to global values.

  • You can add as many custom filters as you want with Advanced Filters.

In the right panel, there is an overview of the data which will be taken into account in the optimization. It is refreshed to reflect your filters when you click the Apply Settings button.

Note that data shown in portlets are limited to scope, while filters are applied to historical values on the Sales table level. It might result in counter-intuitive behavior of the Product list and Store list portlets, hence the presence of historical and in-scope columns.

Configuration Step

The Continue button at the Scope step takes you to the Configuration step. There is no calculation, so it is direct. In the Configuration step, you define your optimization configuration.

  • The General tab defines the global inputs for the optimization

  • The Price tab defines the limits that each shelf price should respect.

  • The Competition tab defines the desired positioning with the different competitors.

  • The Stock tab defines the desired coverage duration.

  • The Channels tab defines the desired relative positioning between the different sales channels.

General Tab

The Elasticity Model is a model of type Multifactor Elasticity (see https://pricefx.atlassian.net/wiki/spaces/ACC/pages/4832493569), that must run until the end. The elasticity is used to forecast the quantity sold, for each product, store, and channel, when the price changes. This value is used to predict the stock coverage and to maximize the global revenue or profit.

Optimization Priority defines the priority between optimizing to get more revenue or more profit. The slider enables one to adjust toward one target or the other. Behind the scene, a RevenueProfitMixMaximization is computed from the ratio of optimized revenue to historical revenue added to the ratio of optimized profit to historical profit, weighted by the mix defined by the slider.

Number of Optimized Periods defines how many forecasted weeks are calculated. The maximum number of periods comes from the periods that were computed in the Multifactor Elasticity model. Additional checking are done to make sure the periods correspond.

If no elasticity is found for a specific product and period, then a fallback of elasticity can be used, defined at the higher granularity in the Multifactor Elasticity model. It is necessary to set the number of periods to consider for computing the quantity, as elasticity parameters are often missing for products not sold a lot, so using a longer period helps to get more meaningful results.

Price Tab

Shelf Price Changes Limits define how much the optimized shelf prices, by product, store, and period can differ from the historical values.

Shelf Price Limits define the minimum percentage value of the elements of the waterfall.

Enforce Minimum Advertise Price is to use the mapping field Minimum Advertise Price, in the Definition step, to enforce a minimum value to the shelf price of each product. It is not displayed if the field is left empty in Definition step.

Competition Tab

Acceptable Range From Competition Reference Price defines for a specific product how much apart its price can be from the competition price, so it is a range of acceptable price compared to the competitor product.

Competition Positioning Target is set for more global positioning to competitors. It defines how all the products in scope should be positioned in average to a competitor, using a weighted average difference. The list of competitors is automatically created, based on the competition source. If no positioning is required, then the “Average shelf price difference to competitor” shall remain empty.

Stock Tab

The stock coverage, expressed in days, is the quantity in stock divided by the average quantity sold per day. So the higher the value is higher the stock is. Here the intent is to push sales of products with high stock to try to achieve stock targets.

The stock coverage targets are defined and applied globally for each Product Pareto value, as mapped in the Definition step. Each value found in the scope is displayed in a row and a stock coverage is expected for each.

Channels Tab

The Channels tab sets the alignment rules between channels. The user chooses a reference channel and sets the average gap percentage between the reference and any other channel. These gaps are used to define how much the average price by product of a channel should differ from the average price of the same product in the reference channel.

Results Step

When the Configuration step is done, you can go to the Results step, using the Continue button. It will first run the longest calculation of the model. This calculation is a sequence that you can follow in the job tracker:

The Results step tabs are:

  • Impact – Displays comparisons between the current state (before optimization) and the optimized one.

  • Details – Displays tables that compare the current to the optimized values at different levels of granularity.

  • Glassbox – Displays charts that provide the state of the values finders and the criteria at the end of the optimization. It is useful to understand how the model reached its optimized state.

  • Evaluation – Mocks the evaluation method of the model.

For more details see Result Description (Optimization - Shelf Price).