Scale Distributions


The Scale Distributions node is designed to take Product-level WTP Customer Distributions (as opposed to Feature-level Customer Distributions) from the Input Willingness To Pay (WTP) Matrix and scale them by either a fixed amount or until a target Market Share is reached.

Scaling select WTP Customer Distributions may be used when studying the impact of an advertising campaign. For example, a campaign may raise the WTP of all Products in the Market by a base amount, may then raise the WTP of the target Brand, and finally raise the WTP of the target Product itself. Scale Distributions nodes can be cascaded one after the other to simulate this Market to Brand to Product effect.

Scaling all of the Products in the WTP Matrix can be used to set a baseline number of 'No Sale' Customers. For example, the Scale Distributions node may iteratively alter the Customer Distributions until, say, 5% of the Market comprises of 'No Sale' Customers. These 'No Sale' Customers will enter the Market when the Price of the Products decrease or the value offered by these Products increase.

More Help: Examples and sample workflows can be found at the Scientific Strategy website:

Input Ports

  1. Type: Data
    Input Product Array: The set of Products that define the Market. Each row corresponds to a Product that competes for customers in the Market. The 'Product Array' must have the following columns:
    1. Product (string): The name of the Product corresponding to a column of the same name in the 'Input WTP Matrix'. There can also be an additional row with a Product named 'No Sale' - this row is used to tune those Customers who are in the Market but have not yet purchased a Product. If there is no 'No Sale' Product then it is assumed that all Customers in the Market purchase a Product.
    2. Cost (double - optional): The 'Static Cost' of each Product required to calculate the 'Profit' in the 'Output Product Array'. The 'Static Cost' is the per-unit Cost for the Product that doesn't change regardless of how many Products are sold, and should be used by default. It can be contrasted with 'Dynamic Costs' which vary according to the Customers who Purchase the Product. This 'Static Cost' of the Product found in the 'Input Product Array' is added to the optional 'Dynamic Costs' found in the 'Input WTP Matrix'.
    3. Price (double): The Price of each Product in the Market. The Price of the 'No Sale' Product should be zero.
    4. Quantity (integer): The relative Quantity sold for each Product in the actual Market. The Quantity is treated as a percentage or a ratio. This Quantity from the actual Market will be compared against the Quantity from the simulated Market during the tuning process.
    5. Mean (optional): The starting Mean of the Product-level Customer Distribution. This Mean can be compared to the final Mean in the Output Product Array.
    6. SD (optional): The starting Standard Deviation (SD) of the Product-level Customer Distribution. This Standard Deviation can be compared to the final Standard Deviation in the Output Product Array.
  2. Type: Data
    Input Willingness To Pay Matrix (double): The Willingness To Pay (WTP) Customer Distribution matrix for each Product column in the Market by each Virtual Customer row. The total number of Virtual Available Customers is equal to the number of rows in the WTP Matrix. In addition to each of the Product's WTP Customer Distributions, this 'Input WTP Matrix' can also contain two types of 'Dynamic Cost' Distributions that depend upon the Customers who Purchase the Product. These 'Dynamic Costs' are added to the 'Static Cost' from the 'Input Product Array' to calculate the Product's Margin.
    1. Product01, Product02, etc (double): Each of the Products listed in the 'Input Product Array' should have a corresponding column in this 'Input WTP Matrix'. Each row represents a different Virtual Customer, and each value represents the Customer's Willingness To Pay (WTP) for each Product.
    2. _CTS (double - optional): The Cost To Serve (CTS) is the additional Cost that must be incurred when a Product is sold to a particular Customer. This is a Dynamic Cost as some Customers are cheaper to serve than others, and is only incurred if the Customer actually Purchases the Product. The 'Cost To Serve' column is identified by the Product's Name followed by a trailing 'CTS'. The 'CTS' designator can be upper-case or lower-case and may-or-may-not be separated by a space, underscore, or other single character. For example, 'Product_01_CTS' or 'Product 02 CTS' or 'Product03cts'.
    3. _CTM (double - optional): The Cost To Make (CTM) depends not upon the individual Customer but upon the number of Customers who Purchase the Product. This 'Cost To Make' can be used to simulate the Law of Diminishing Returns. Starting from the first row in the column, each 'Cost To Make' row represents the incremental Cost of manufacturing each additional Product. If the Product is sold ten-times, then the total Dynamic Cost is the sum of the first 10 CTM rows. The 'Cost To Make' column is also identified by the Product's Name followed by a trailing 'CTM' in a manner similar to the 'CTS' designator.

Output Ports

  1. Type: Data
    Output Product Array: The output Product Array corresponds to the input Product Array but has updated values in the 'Mean' and 'SD' columns that reflect the altered results. The 'Quantity' column will also be updated according to the Market Size options. In addition, the Product Array will contain these additional columns:
    1. Cost: The 'Static Cost' of each Product from the 'Input Product Array' or a missing value if the Cost has not been defined. The 'Dynamic Cost' from the 'Input WTP Matrix' is NOT included in this output 'Cost' field so as to allow multiple Market Simulation nodes to be chained together. Instead the 'Dynamic Cost' is accounted for in the output 'Margin' field.
    2. Margin: The average Profit Margin of each Product, where: Profit Margin = Price - Static Cost - Average Dynamic Cost. The Dynamic Cost depends upon the Customers who Purchase the Product and is averaged across the total Quantity Sold.
    3. Quantity Change: The difference between the input 'Quantity' and the simulated output 'Quantity' after the WTP Customer Distributions have been altered.
    4. Share: The simulated Market Share of each Product based upon the 'Quantity' column but not including those customers who selected the 'No Sale' option.
    5. Revenue: The Product's Revenue is calculated as the Product's 'Price' and final 'Quantity'.
    6. Profit: The Product's Profitability is only calculated if the Product's 'Cost' was provided in the 'Input Product Array'.
  2. Type: Data
    Output Willingness To Pay Matrix: The scaled Willingness To Pay (WTP) Customer Distribution matrix for each Product column in the Market by each Virtual Customer row. The WTP Matrix quantifies the Price that each Customer would pay for each Product in the Market. This WTP Matrix can be directly connected to a downstream 'Profit Engine' node.
  3. Type: Data
    Output KPI Indicators: The Output KPI Indicators contain select information about the tuning process and the quality of the final results. The Output KPI Indicators will contain these columns:
    1. Product: The Product associated with the Key Performance Indicator (KPI). If the KPI refers to the overall results and not to a specific Product then this field will be left blank.
    2. Indicator: The name of each Key Performance Indicator (KPI), including:
      Iteration Count: the number of iterations used during the scaling process.
      Final Change Factor: the numeric degree by which the Customer Distribution WTP is changed.
      Final Adjustment: the final percentage (%) by which the 'Mean' and 'SD' (Standard Deviation) of the incoming Distributions were adjusted.
      Change Until Error Percentage: the absolute error for the set of Customer Distributions.
    3. Value: The final value of each Key Performance Indicator (KPI).
  4. Type: Data
    Output Debug Trace: The incremental adjustments to the WTP Matrix during the tuning process. This Output Debug Trace table is typically not used for production purposes.