Usage (Optimization - Price Waterfall)
To run the Price Waterfall Optimization Accelerator, you need to create a new Model Object from the Optimization > Models menu, using the Optimization - Price Waterfall logic 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
Go to Optimization > Models and add a new model.
Define the name of the model and choose Price Waterfall Optimization as Model Class.
Â
The new model opens. It is based on the data you defined when deploying the Accelerator.
The interface is:
Definition, Scope, Configuration, and Results are the steps of the model and will be explained below. When you are in your model in the partition, you are always guided by the short description provided just below the name of the step.
Definition Step
This is the first step of the model. When you open it for the first time, the user inputs of the first section, called Transactions, are prefilled with the default values. It is the mapping of the data. You can change it if needed. You can also apply a filter to your transactions, for instance, if you want to work with only a specific period of time.
The second section is called Elasticity and you define there the negotiation guidance model to use in the optimization (see Prepare Elasticity Model (Optimization - Price Waterfall)).
Until version 1.0.x of this Accelerator: You can choose only a negotiation guidance model among those on the partition whose levels match the Customer Group and Product Group fields you mapped during the deployment. If no model meets the requirements, the interface will ask you to create and run such a model.
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.
The Continue button will automatically run the calculation that starts the next step. After the calculation, which can take a few minutes, you can access the Scope tabs.
Scope Step
The Continue button at the Definition step will automatically run the calculation that starts the Scope step. This calculation mainly performs the aggregation of the transactions by product and by customer which is used to perform the optimization itself. At the end of the calculation, the tab is available and there is a table called Aggregated in the model tables (accessible through the menu in the top right corner).
In the Scope step, you define which products and customers the optimization will apply to. This step works on already aggregated data, i.e. all the historical transactions have been aggregated by product and customer.
Included Customer Groups and Included Product Groups: they rely on the customer group field and on the product group field which was defined during the Optimization Price Waterfall Accelerator deployment. If nothing is provided, there is no filter.
Customer Minimum Revenue, Customer Minimum Margin (%), Product Minimum Revenue, and Product Minimum Margin (%) are filters related to the global values.
You can add as many custom filters as you want with Data – Advanced Filters.
Remember that these filters apply to the already aggregated data (at a customer x product level), only on the fields that exist in the Aggregated table. You can filter on any transactions field in the Definition step.
In the right panel, there is an overview of the data which will be taken into account in the optimization. In particular, if some product–customer pairs are not taken into account because of the lack of elasticity parameters, it is indicated. 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 on the Aggregated table level. It might result in counter-intuitive behavior of the Product list and Customer list portlets.
Configuration Step
The Continue button at the Scope step will automatically run the calculation that starts the Configuration step. After a calculation, which can take a few minutes, you can access the configuration tabs. The calculation creates some model tables: Segmentation contains the elasticity values that will be used for each segment, and the Problem tables define the coordinates of the data for the Optimization Engine at different levels of granularity.
In the Configuration step, you define your optimization configuration.
Boundaries tab defines how much you accept a change in the key variables of the model.
Business Alignments tab defines optional alignments between products list prices.
Objectives tab defines the business objectives of the optimization (see below).
Advanced Parameters tab defines the parameters of the optimization run itself.
Boundaries Tab
These entries define how much you allow the model to change each row value.
Specific Adjustments, Standard Discounts, Customer Discounts, Spot Discounts, and Off Invoice Discounts are percentage values. Their minimum and maximum values are defined in percent and their maximum variations in percent points. If the maximum decrease and the maximum increase of a variable are both set to zero, then the variable is defined as static in the optimization model. Otherwise, the minimum and maximum values are hard limits and the maximum variation values are used to set constraints to the variable.
List Price and Invoice Price boundaries are defined by a relative change in percent from the historical values. The list price maximum variations apply for both global and specific list prices.
Spot Discounts have also another input called outliers convergence. The third quartile of the spot discount rate is calculated for each pair of product and customer group. Then, all the values that are higher than their third quartile are moved closer to it by a percentage defined with the outliers convergence.
Business Alignments Tab
By default, there is no business alignment set in the optimization model. If you check the box Create Alignment Criteria, then you can create such alignments.
You need a table containing a list of similar products (Data Source or Datamart). Each row represents a pair of similar products. The table must contain the columns to map:
The first product ID
Its alignment attribute
The second product ID
Its alignment attribute
Such a table can be created with the Product Similarity Accelerator.
Once the mapping is defined, an input matrix is displayed, where you can set the optional minimum and maximum gap percentages by pairs of alignment attributes.
For instance, in the example above, the products are compared by brand. For any pair of products present in the table PowerTools SimilarProducts, the product of the brand Dark Force should try to get an optimized global list price between 10% and 20% higher than the product of the brand Super Power.
The product IDs in the Similar Products Table must correspond to the product IDs of the source data, given in the Definition step.
The products that are not present both in the Similar Products Table and the Source table will not be taken into account.
The minimum gap and maximum gap values are optional in each row of the Attribute Alignments table.
If no gap is provided, no alignment will be considered between the corresponding attributes.
If only a minimum gap is provided, the constraint will be to have a gap of at least the minimum value.
If only a maximum gap is provided, the constraint will be to have a gap of at most the maximum value.
The gaps can be negative values.
No transitivity is taken into account. If you define a minimum gap of 10% between attributes A and B, and 10% between B and C, you need to define also a minimum gap between A and C if you want to apply it.
If you set a maximum gap lower than the minimum gap, it will be automatically fixed, the maximum gap will be increased to the minimum gap input.
Objectives Tab
Revenue/Margin Optimization is a slider from 0 to 10. The objective of the model is to maximize a mix between global revenue and global margin (profit). If the input is 0, it will maximize the global revenue; if the input is 10, it will maximize the profit; intermediate values allow to mix and weigh these two goals.
Revenue objective is to define a revenue target for selected customer groups. You need to add a customer group to the input matrix. Then the current revenue of the customer group is displayed. You can enter a variation percentage to define the target revenue of the customer group; this value is displayed in the Target Revenue column. You can also define different priorities (low, medium, high) for each customer group's revenue target objective. Only the customer groups in the input matrix have a revenue target objective. If you do not create any row in this input matrix, there is no revenue target objective in the model.
Volume objective is to define a volume target for selected product groups. You need to add a product group to the input matrix. Then the current volume (sold quantity) of the product group is displayed. You can enter a variation percentage to define the target volume of the product group; this value is displayed in the Target Volume column. You can also define different priorities (low, medium, high) for each product group volume target objective. Only the product groups in the input matrix have a volume target objective. If you do not create any row in this input matrix, the model has no volume target objective.
Advanced Parameters Tab
By default, the optimization will run a maximum of 500 steps, with no time limit and it will stop if it is stabilized. You can change the number of steps, in particular, if, after a run, the results logs show that the model was not stabilized yet. You can also set a maximum running time in minutes, or disable the stop when stabilized.
The Profiling checkbox can help you understand how the agents reach their optimum but it increases the need for memory and the optimization run time.
Results Step
When the Configuration step is done, you can go to the Result 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:
Calculation run: to track the jobs click the blue text (arrow)
First, the model runs some preparations. Then, two Optimization Engines are launched, one named Simulation, which defines the initial state of the optimization, and one named Optimization which performs the real optimization. In the end, the postprocessing is run. The duration of the run depends mainly on the size of the input data in the scope and on the number of optimization steps.
Once the calculation has run, some other tables are available through the table link, but normally the user does not need to access them. If needed, go to Optimization Results (Optimization Engine) to understand what these tables are. The most important ones are the Current and Optimized tables that reflect the state of all the values before and after the optimization and have the same structure, and Glassbox tables that are used to dig into the way the Optimization Engine reached the optimized state.
The meaning of the Current results is explained in Current State (Optimization - Price Waterfall).
The Results step tabs are:
Impact tab – Displays comparisons between the current state (before optimization) and the optimized one.
Details tab – Displays tables that compare the current to the optimized values at different levels of granularity.
Glassbox tab – 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.
Influencers tab – Displays the relationships between a selected value finder and the interacting criteria.
Evaluation tab – Displays the relevant optimized values for user inputs.
For more details see Results Description (Optimization - Price Waterfall).