Hub
Pricing About
NodeNode / Manipulator

Replicate Distributions

Scientific StrategyMarket Simulation
Drag & drop
Like

The Replicate Distributions node quickly extends the Output WTP Matrix with additional columns. The values used to fill these columns come from the Product Attributes found in the Input Product Array and the column values found in the Input WTP Matrix.

For example, Product P1 is being sold at a 5% discount but Customers must pay $10 in shipping, while Product P2 is being sold at a 15% discount with a shipping fee of $20. Personalized discounts can be set in the Price Adjustment Variable (PAV) columns of the WTP Matrix, while shipping fees can be set in the Price Adjustment Fixed (PAF) columns. There must be one PAV column and one PAF column for each Product.

This Replicate Distributions node can be used to quickly create these PAV and PAF values for each Product. In the Input Product Array, the Attribute 'PAV' values can be set to 0.95 and 0.85 for Product P1 and P2 respectively. Similarly, the Attribute 'PAF' values can be set to 10.00 and 20.00. By including P1 and P2 in the 'Replicate Product Set', and 'PAV' and 'PAF' in the 'Replicate Product Attributes', this node will create the following new Output WTP Matrix columns: P1.PAV, P1.PAF, P2.PAV, and P2.PAF. The single Attribute value found in the Input Product Array will fill each of these columns.

In addition, a column of personalized Customer values found in the Input WTP Matrix can also be replicated multiple times in the Output WTP Matrix. For example, the personalized Volume demanded by each Customer may be set in a template 'VOL' column. This Replicate Distributions node can then copy all these values into two new Output WTP Matrix columns: P1.VOL and P1.VOL.

More Help: Examples and sample workflows can be found at the Scientific Strategy website: www.scientificstrategy.com .

Node details

Input ports
  1. Type: Table
    Input Product Array
    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 'Input Product Array' can include the following columns:
    1. Product (string - required): The name of the Product corresponding to a column of the same name in the 'Input WTP Matrix' port. There may also be an additional row with a Product named 'No Sale' - this row is used to track those Customers who are in the Market but have not yet purchased a Product. Including the 'No Sale' here can be useful when specifying the Quantity of Customers in a real-world market who are yet to Purchase a Product. If the 'No Sale' Product does not exist then it will be added automatically. If the 'Product' column is not found then the Row Identification (RowID) column will be used in place of the Product column.
    2. Description (string): The description of the Product or the full name of the Product if the Product field contains an identification number.
    3. Brand (string): The name of the Product Brand. Including information about the Product Brands allows the user to aggregate sales by Brand in downstream nodes.
    4. Store (string): The name of the Product Store. Including information about the Store allows the user to calculate the total Revenue and Profit for each Competitor in downstream nodes.
    5. Location (string): The name of the Product Location. The Location can be a name, or it can be used flexibly to indicate the speed of delivery as 'Overnight Delivery', 'Second Day Delivery', 'Third Day Delivery', etc.
    6. Family (string): The name of the Product Family. Generally used to link together related Products. Several Product SKUs can all be part of the same Family.
    7. Category (string): The name of the Product Category. Several Product Families may be part of the same Category.
    8. Platform (string): The name of the Product Platform. The Platform is a general purpose label that can be used in any way. It can, for example, indicate whether the Product is sold both 'Online' as well as 'Offline'.
    9. Attribute Value (double - optional): Any numerical Product Attribute can be replicated into the Output WTP Matrix. Missing values will not be replicated. The format of the newly generated columns can be set in the 'Format' tab of the Configuration Dialog. By default, output columns will be named 'Product.Attribute' using the Product's name and the Attribute's column name.
    10. VOL (double - optional): The per-Product 'Dynamic Volume' (VOL) demanded by each Virtual Customer. This per-Product 'VOL' value will override the general 'Volume'. For example, a Virtual Customer buying laundry detergent might generally demand a 'Volume' of 2 (Litres) but might only demand a '_VOL' of 1 (Litre) for the concentrated detergent Product. Negative values will be replaced with a Demand Volume of zero '0'. If both of the 'Dynamic Volume' values ('Volume' and '_VOL') are missing then a default of '1' will be used. VOL columns created by this node will be called: 'Product_VOL' (configurable in the 'Format' tab).
    11. PAV (double - optional): The Price Adjustment Variable (PAV) is the percentage adjustment to the Price (typically a Discount) a particular Customer would receive when they Purchase the Product. For example, if the Customer is entitled to a 10% Discount then the 'PAV' would be set to 0.90. The 'Price Adjustment Variable' column is identified by the Product's Name followed by a trailing 'PAV'. The 'PAV' 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_PAV' or 'Product 02 PAV' or 'Product03pav'. PAV columns created by this node will be called: 'Product_PAV' (configurable in the 'Format' tab).
    12. PAF (double - optional): The Price Adjustment Fixed (PAF) is the fixed adjustment to the Product's Price. For example, if Customers pay different amounts for Shipping the Product then this could be modeled using the 'PAF' column. If the WTP Matrix contains both 'PAV' and 'PAF' columns, then the Price is first multiplied by the variable 'PAV' before adding the fixed 'PAF'. The 'Price Adjustment Fixed' column is also identified by the Product's Name followed by a trailing 'PAF' in a manner similar to the 'PAV' designator. The 'PAF' is a per-Unit Price. If the Customer purchases more than one Product then the 'PAF' is multiplied by the Customer's Demand. PAF columns created by this node will be called: 'Product_PAF'.
    13. 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'. The Customer's 'CTS' remains unchanged regardless of the Quantity of Product Units purchased by the Customer. CTS columns created by this node will be called: 'Product_CTS'.
    14. 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. CTM columns created by this node will be called: 'Product_CTM'.
  2. Type: Table
    Input Willingness To Pay Matrix
    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 Price' and two types of 'Dynamic Cost' Distributions that depend upon the Customers who Purchase the Product. These personalized 'Dynamic Prices' and 'Dynamic Costs' adjust the 'Static Price' and 'Static Cost' found in the 'Input Product Array' to calculate the Product's Margin. This 'Input WTP Matrix' may also contain 'Dynamic Volume' fields which allow Virtual Customers to Demand different levels of Quantity of each Product.
    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. Attribute Column (double - optional): Any personalized numerical Distribution found in the Input WTP Matrix can be replicated in the Output WTP Matrix. The format of the newly generated columns can be set in the 'Format' tab of the Configuration Dialog. By default, output columns will be named 'Product.Column' using the Product's name and the name of the personalized Distribution column.
Output ports
  1. Type: Table
    Output Product Array
    Output Product Array : The 'Input Product Array' is passed through to the 'Output Product Array' without change.
  2. Type: Table
    Output Willingness To Pay Matrix
    Output Willingness To Pay Matrix : The 'Output WTP Matrix' made up of the original Customer Distributions for each Product in the Market along with any newly replicated columns, including:
    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. Volume (double - optional): The personalized 'Dynamic Volume' of Product demanded by each Virtual Customer. For example, if the 'Input Product Array' contains a list of beverages of Volume 250ml, 330ml, 500ml, 750ml, and 1000ml then a Virtual Customer with a demanded Volume of '1000' could purchase a Quantity of either 4, 3, 2, 1, or 1 of the Products (respectively). If Customers are buying by Volume then they must purchase in whole number integers. For instance, if a Product had a Volume of 250ml but a Customer demanded 300ml then the Customer would only be able to buy 1 of that Product. Note that the excess Volume of 50ml received by the Customer is deemed to be of no value ! The Price, WTP, and Consumer Surplus are all re-scaled by the relative Quantity demanded. When Customers buy in Volume then the Output Transactions field will differ from the Output Quantity field - otherwise these two values ought to be the same. Note that the 'Input Product Array' need not also contain a 'Volume' field. If the Product Volume is missing then the Product is presumed to be sold in Volumes of 1 Unit.
    3. _VOL (double - optional): Created by the Replicate Distributions node, the per-Product 'Dynamic Volume' demanded by each Virtual Customer.
    4. _PAV (double - optional): Created by the Replicate Distributions node, the 'Price Adjustment Variable' percentage adjustment to the Price (typically a Discount) a particular Customer would receive when they Purchase the Product.
    5. _PAF (double - optional): Created by the Replicate Distributions node, the 'Price Adjustment Fixed' change to the Product's Price.
    6. _CTS (double - optional): Created by the Replicate Distributions node, the 'Cost To Serve' additional Cost that must be incurred when a Product is sold to a particular Customer.
    7. _CTM (double - optional): Created by the Replicate Distributions node, it 'Cost To Make' (CTM) depends not upon the individual Customer but upon the number of Customers who Purchase the Product.

Extension

The Replicate Distributions node is part of this extension:

  1. Go to item

Related workflows & nodes

  1. Go to item
  2. Go to item
  3. Go to item

KNIME
Open for Innovation

KNIME AG
Talacker 50
8001 Zurich, Switzerland
  • Software
  • Getting started
  • Documentation
  • Courses + Certification
  • Solutions
  • KNIME Hub
  • KNIME Forum
  • Blog
  • Events
  • Partner
  • Developers
  • KNIME Home
  • Careers
  • Contact us
Download KNIME Analytics Platform Read more about KNIME Business Hub
© 2025 KNIME AG. All rights reserved.
  • Trademarks
  • Imprint
  • Privacy
  • Terms & Conditions
  • Data Processing Agreement
  • Credits