Hub
Pricing About
NodeNode / Manipulator

Scale Purchased

Scientific StrategyMarket Simulation
Drag & drop
Like

The Scale Purchased node changes the Willingness To Pay (WTP) values of individual Customers within the Input WTP Matrix according to the Product each Customer purchased.

Scaling individual Customer WTP values depending upon earlier Product purchases is helpful in a number of situations. For example, 'Learning Curves' may be simulated as Customers gain more familiarity with Products after purchase, and 'Switching Costs' may be simulated as it becomes increasingly difficult for a Customer to switch to another Product after purchasing the same Product multiple times. Firms may also experiment with the effectiveness of free trials, expecting both the WTP of Customers to increase after they have tried using the Product, and the 'Volume' demanded to increase so that each Customer buys more Quantity. The 'Law Of Diminishing Marginal Utility' can be simulated for Customers who purchase Products multiple times.

Individual WTP values can be scaled if a Customer does purchase the Focus Product or does not purchase the Focus Product. The WTP of Products related to the purchased Focus Product may also be scaled. This is useful when, for example, a Customer's WTP for a Brand increases after purchasing just a single Product. Several Scale Purchased nodes can be cascaded one after the other to fine-tune the updated WTP values depending upon the relationship between the purchased Focus Product and other Products in the Market.

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 (optional): The set of Products that define the Market. Each row corresponds to a Product that competes for customers in the Market. If only the name of the Focus Product is needed then the 'Input Product Array' is optional. But if the 'Scale Product Set' of Products is more complicated (for example, if the WTP of all same-Brand Products need to be scaled) then the Input Product Array is required. The 'Input Product Array' should 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' or the 'No Sale' Product.
    2. Price (double): The Price of each Product in the Market. Price is needed to calculate the degree of Competitive Rivalry when determining which Products to include in the 'Scale Product Set'. Products with missing Prices are deemed to be Out-of-Stock.
    3. Description (string): The description of the Product or the full name of the Product if the Product field contains an identification number.
    4. Brand (optional): The Brand of the Product. This is needed if the 'Scale Product Set' is to include all same-Brand Products.
    5. Store (optional): The Store which sells the Product. This is needed if the 'Scale Product Set' is to include all same-Store Products.
    6. 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.
    7. 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.
    8. Category (string): The name of the Product Category. Several Product Families may be part of the same Category.
    9. 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'.
  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. 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): 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.
    4. _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'.
    5. _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.
    6. _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.
    7. _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: Table
    Output Product Array
    Output Product Array : The Output Product Array is equivalent to the Input Product Array without any changes. The Product Array is simply passed through the node as a convenience to allow several of these 'Scale Purchased' nodes to be chained together. When 'Debug Mode' is switched on the Output Product Array will contain a count of the number of changes made to each Customer Distribution. The Output Product Array will also contain the Debug Mode results if no Input Product Array has been provided. The Debug Mode output columns include:
    1. Distribution : The Customer Distribution found in the Input WTP Matrix.
    2. Updates : The number of changes that were made to the individual Customer WTP values within the Customer Distribution.
  2. Type: Table
    Output Willingness To Pay Matrix
    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 output Willingness To Pay values for individual Customers have been scaled depending upon whether the Customer purchased the Product and whether the Product is part of the 'Scale Product Set'. This scaled WTP Matrix can be directly connected to a downstream 'Simulate Market' or 'Profit Engine' node.

Extension

The Scale Purchased 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