45/72
Configuring Promotion Optimization for Predictive Trade Planning
This chapter describes how to configure the Promotion Optimization module. You can skip this chapter until you need to work with Promotion Optimization.
This chapter covers the following topics:
Overview of the Configuration Process
To configure Promotion Optimization, you use the following general process:
-
First do one of the following:
-
Run the Demantra installer, choosing the option to install Promotion Optimization.
-
Or manually do the same work that the installer does; see "Setting Up PO Without Using the Installer".
-
Then see "Configuring the Optimization Step".
-
Before using Promotion Optimization for the first time, run the Analytical Engine in batch mode so that your machine has access to the engine's cached results. See "Using the Engine Administrator and Running the Engine".
Set Up Promotion Optimization Without Using the Installer
If you did not use the Demantra installer to set up Promotion Optimization, complete the steps in this section.
Setting Environment Variables
Promotion Optimization requires the following Windows environment variable be set:
PATH |
Must include the directory Demantra_root\Collaborator\virtual_directory\optimization\dll
For example: F:\Demantra Spectrum\Collaborator\demantra\optimization\dll |
Registering the Analytical Engine
The installer registers the engine. If you do not use the installer, you may need to register the engine manually.
To do so, double-click the batch file Demantra_root/Demand Planner/Analytical Engines/bin\RegEngine.bat.
Configuring the Optimization Step
For Promotion Optimization, the primary configurable element is the Optimization step. Because this requires details about your installation location, you must configure this step manually.
To configure the optimization step
-
Browse to the following case-sensitive URL:
http://server name/virtual directory/workflow/login.jsp
A login page appears.
-
Enter the user name dp with the password dp, and then click Log on.
Note: Only the user of this workflow (dp) can make changes to it.
-
In the row for the Call Promotion Optimizer workflow, click Edit.
-
Right-click the Call Promotion Optimizer step, and then choose Properties.
-
In the Parameters section, review the following parameters in case any changes are necessary. Typically, these parameters do not require modification. This step is required in order to make optimization work in your environment.
MODEL_PATH |
Complete path and filename of the promoopt.opl file. |
dbms_type |
The database type, one of the following:
odbc
oracle81
The database type information is automatically received from the application server. |
dbms_connect |
Database connection information in the form database_user/database_password@databasename. For example: demantra/d@alexish
The dbms_connect parameter is automatically received from the application server but modifications may be required if the servername and dbname are not the same. |
JAR_FILE |
Relative Path of OPLtoJava.jar file. |
DRIVER_JAR |
Relative Path of ojdbc14.jar file |
-
Optionally edit the following parameters.
Caution: Do not edit parameters that are not listed in this chapter.
opti_level_item |
Name of the item level for optimization. This is case-sensitive.
For example: SKU |
opti_level_location |
Name of the location level for optimization. This is case-sensitive.
For example: Ship to |
opti_level_promo |
Name of the promotion level for optimization. This is case-sensitive.
For example: Promotion |
promo_max_budget_attr |
Name of the field in the Promotion table that stores the maximum budget. |
promo_used_budget_attr |
Name of the field in the Promotion table to which the method writes the optimized budget. |
opti_value_steps |
Number of variations of the causal factors that the optimizer should try. Use a value from 50 to 500. |
MAX_PROMO_ON_PROD_ACC |
Maximum number of concurrent promotions on a given account. Suggested value: 1. |
MAX_LENGTH_OF_PROMO |
Maximum permitted length of any promotion, measured in base time buckets. |
MIN_RET_MARGIN |
SQL expression that returns the margin that the retailer requires. Do not set equal to 0.
Promotion Optimization computes the retailer margin as follows:
(sale price + buydown)/list price - 1 |
MIN_MAN_MARGIN |
SQL expression that returns the minimum margin that the manufacturer requires. Do not set equal to 0.
Promotion Optimization computes the manufacturer margin as follows:
(list price - buydown)/cost of goods - 1 |
MAX_BUY_DOWN |
Maximum permitted buydown. Use a very large number such as 100000. |
RET_CONSUMER_PRICE_EXPRESSION |
SQL expression that returns the everyday price seen by the consumer. |
MAN_LIST_PRICE_EXPRESSION |
SQL expression that returns the list price seen by the retailer. |
MAN_COGS_EXPRESSION |
SQL expression that returns the cost of goods to the manufacturer. |
MAN_VEHICLE_COST_EXPRESSION |
SQL expression that returns any fixed costs associated with running the promotion. |
FIXED_BUYDOWN_YN |
Specifies whether to use buydown as an input (1) or to calculate the optimal buydown (0). Use 1. |
BUYDOWN_EXPRESSION |
SQL expression that returns the buydown per unit. |
MIN_RET_REVENUE |
Minimum retailer revenue for any promotion. |
MIN_RET_DEMAND |
Minimum retailer demand (unit count) for any promotion. |
MIN_MAN_PROFIT |
Minimum manufacturer profit for any promotion. |
MIN_RET_INC_PROFIT |
Minimum retailer incremental profit for any promotion. |
MIN_RET_INC_REVENUE |
Minimum retailer incremental revenue for any promotion. |
GOAL_FOCUS |
Specifies if Promotion Optimization should optimize from the manufacturer's perspective (0; recommended) or the retailer's perspective (1). |
COEFFICIENT_RANGE_FACTOR |
Controls the range of possible coefficient values to be searched.
For any given causal factor, Promotion Optimization by default tests a discrete set of coefficient values, ranging from 0 to the largest value observed in history. This parameter specifies the additional percentage to add to that range of values.
For example, to allow Promotion Optimization to search values 20% larger than historically seen, set this parameter to 0.20. |
DEFAULT_RET_MARGIN |
SQL expression that returns the default retailer margin. |
DEFAULT_MAN_MARGIN |
SQL expression that returns the default manufacturer margin. |
RETAILER_LEVEL_ID |
ID of the level (from group_tables) that corresponds to the retailers. |
OPTI_BUYDOWN_COLUMN |
Defines which column the optimized buydown is written to. Refers to a column on the promotion_data table. |
OPTIMIZATION_RANGE_START |
SQL expression that returns the start of the date range which is considered by optimization. Expression references promotion table. |
OPTIMIZATION_RANGE_END |
SQL expression that returns the end of the date range which is considered by optimization. Expression references promotion table. |
BUYDOWN_EXPRESSION |
SQL expression that returns the actual buydown for promotion being optimized. Expression references promotion_data table. As a default, it incorporates bill back, off invoice and scan values. |
Other Important Notes
The Promotion Optimization module uses certain fields in the Promotion and promotion_data tables; do not change the names of any fields.
Also, the Promotion Optimization methods do not check for all the required inputs. In particular, you must make sure that the following information is available before running these methods:
Additional information regarding degrees of freedom
The actual possible solutions the optimization engine will evaluate depend on the status of the promotion being optimized. The internal ID of the promotion’s status will be compared with the system parameter PromotionOptiStatusThreshold.
-
If Promotion Status < PromotionOptiStatusThreshold, the optimizer can modify the promotion’s timing, promotion type and values of promotional causals.
-
If Promotion Status = PromotionOptiStatusThreshold, the optimizer can modify the promotion type and values of promotional causals.
-
If Promotion Status > PromotionOptiStatusThreshold, the optimizer can modify the values of promotional causals only.
Since the comparison is based on whether the status is above or below the parameter, it is strongly recommended that promotion statuses be ordered with increasing internal IDs from least fixed to most fixed promotions.
Note: The optimization engine only evaluates the direct effects generated by causal factors. Therefore, optimization results are focused on providing an optimized outcome for the direct effect of the promotion and not the indirect affect. The indirect effects of the promotion can be viewed by accepting the optimized promotion and then executing a simulation.