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:

  1. 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".

  2. Then see "Configuring the Optimization Step".

  3. 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

  1. Browse to the following case-sensitive URL:

    http://server name/virtual directory/workflow/login.jsp

    A login page appears.

  2. 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.

  3. In the row for the Call Promotion Optimizer workflow, click Edit.

  4. Right-click the Call Promotion Optimizer step, and then choose Properties.

  5. 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.

    Parameter Name Purpose
    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
  6. Optionally edit the following parameters.

    Caution: Do not edit parameters that are not listed in this chapter.

    Parameter Name Purpose
    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.

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.