0 ×

Scale Products

Market Simulation nodes by Scientific Strategy for KNIME - Community Edition version 4.3.1.v202102181051 by Decision Ready, LLC

The Scale Products node changes the value of individual Product Attributes within the Input Product Array. For example, the Scale Products node could be used to discount Price, trim Cost, and increase Capacity of one or more Products.

Product Attributes are any numeric value associated with a Product. Scaling Product Attributes can help to analyze a variety of potential market strategies. For example, would it be more profitable to increase Price or decrease Cost? Should vendors invest in expanding their production Capacity? Would Customers respond favorably to smaller Products containing less Volume? How would a Store be impacted if a competitor discounted their entire Brand?

Several Scale Products nodes can be cascaded one after the other to fine-tune the updated Product Attributes. This allows several concurrent changes to be analyzed together, such as a simultaneous change in both Price and Cost.

See Also: The 'Edit Attributes' node is a simplified version of the 'Scale Products' node. It can be used when the set of Products to be edited is well defined and does not have a complex relationship to a Focus Product. And unlike this Scale Products node, the Edit Attributes node can also be used to change the String and Boolean Attributes of Products.

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

Options

Standard Options

Focus Product
The user-selected Product that defines the 'Scale Product Set' that all will change according to the user-specified 'Scale Scenario'.
Scale Product Set
The set of Products that will change in accordance with the user-specified 'Scale Scenario'. The 'Scale Product Set' may or may not include the Focus Product, other Products with the same Brand, Store, Location, Family, Category or Platform as the Focus Product, and Products that are top Competitive Rivals with the Focus Product. The degree of Competitive Rivalry is determined by the sensitivity the Focus Product has to a change in Price by the other Products in the Market.
Number of Additional Scale Products
The number of additional Products to include in the 'Scale Product Set'. The user may specify the 'Scale Product Set' include a 'Top Number of Rival Products' (that is, the most competitive Products) or the 'First Number of Listed Products' (that is, the Products listed first in the 'Input Product Array'). In these cases, the actual number of Products to include in the 'Scale Product Set' is determined by this option. Not all 'Scale Product Set' selections require the 'Number of Additional Scale Products' option.
Product Attributes To Scale
Select the set of numeric columns from the Input Product Array to scale according to the 'Scale Scenario'.
Scale Scenario
The method by which the Products in the 'Scale Product Set' will be changed. The Product Attributes can be raised/lowered by a fixed or even or variable amount, or can trend towards a value. The options include:
No Change: The individual Product Attributes remains unchanged.
Set to Fixed Value: Set the individual Product Attributes to the Fixed Value.
Set to Variable Value: Set the individual Product Attributes to the value in the corresponding row of another Product Attribute.
Add Fixed Value: Add the Fixed Value to the current Product Attribute.
Add Variable Value: Add the value in the corresponding row of another Product Attribute to the current individual Product Attribute value.
Add both Fixed Value and Variable Value: Add the Fixed Value then add the Variable Value to the current individual Product Attribute value.
Add Fixed Value Randomly by Fixed Rate: Randomize the fraction of the Fixed Value added to each Product Attribute according to the Fixed Rate (0.0 = No Randomization, 1.0 = Highest Randomization = add a double-fraction of the Fixed Value to some Attributes and add a zero-fraction to other Attributes).
Add Fixed Value by Variable Rate: Scale the Fixed Value according to the Variable Rate then add it to the individual Product Attributes. The higher the Variable Rate row, the more of the Fixed Value will be allocated to that Product. All Variable Rate values should be positive (negative Rates will be ignored).
Spread Fixed Value Evenly: Spread out the Fixed Value evenly across all Product Attributes by adding a proportional fraction of the Fixed Value to each Attribute in the column.
Spread Fixed Value Evenly then Add Variable Value: Spread out the Fixed Value evenly then add the Variable Value to each Product Attribute.
Spread Fixed Value Randomly by Fixed Rate: Randomize the fraction of the Fixed Value spread across each Product Attribute according to the Fixed Rate (0.0 = No Randomization, 1.0 = Highest Randomization = add a double-fraction to some Attributes and add a zero-fraction to other Attributes).
Spread Fixed Value by Variable Rate: Spread out the Fixed Value according to the Variable Rate. The higher the Variable Rate row, the more of the Fixed Value will be allocated to that Product Attribute. All Variable Rate values should be positive (negative Rates will be ignored).
Multiply by Fixed Rate then Add Fixed Value: Multiply the individual Product Attribute value by the Fixed Rate then Add the Fixed Value.
Multiply by Fixed Rate then Add Variable Value: Multiply the individual Product Attribute value by the Fixed Rate then Add the Variable Value from the same row in another Attribute column.
Multiply by Variable Rate then Add Fixed Value: Multiply the individual Product Attribute value by the Variable Rate from the same row in another Attribute column then Add the Fixed Value.
Multiply by Variable Rate then Add Variable Value: Multiply the individual Product Attribute value by the Variable Rate from the same row in another Attribute column then Add the Variable Value.
Shift towards Fixed Value at Fixed Rate: Shift the individual Product Attribute value towards the Fixed Value at the Fixed Rate. A Fixed Rate of 1.0 (100% maximum) will make the complete adjustment. A Fixed Rate of 0.5 will scale the value by 50% of the distance between the current value and the final value. A negative Fixed Rate will scale the value in the opposite direction.
Shift towards Fixed Value at Variable Rate: Shift the individual Product Attribute value towards the Fixed Value at the Variable Rate found in another Attribute column.
Shift towards Variable Value at Fixed Rate: Shift the individual Product Attribute value towards the Variable Value found in another Attribute column at the Fixed Rate.
Shift towards Variable Value at Variable Rate: Shift the individual Product Attribute value towards the Variable Value at the Variable Rate where both Variables are found in other Attribute columns.
Fixed Value
This Fixed Value can be used to set the Product's Attribute, added to the Produt's Attribute, or spread across all Attributes in the Scale Product Set. The Product's Attribute can also be shifted towards this Fixed Value by either a Fixed or Variable Rate.
Fixed Rate
This Fixed Rate can be multiplied to the Product's existing Attribute. Or the Product's Attribute can be shifted towards another value at this Fixed Rate. For example, a Fixed Rate of 0.2 will shift the Product's Attribute by 20% of the distance towards the final value. A Fixed Rate of -0.2 will shift the Product's Attribute by 20% of the distance away from the value, while shifting at a rate greater than 1.0 will trigger a warning. If Spreading the Fixed Value Randomly by the Fixed Rate, then this Fixed Rate needs to be set between 0.0 and 1.0. A 'Spread By Fixed Rate' = 0.0 provides no randomization, while a 'Spread By Fixed Rate' = 1.0 will randomly spread between 0% and 200% of the Fixed Value across all Products.
Variable Value Column
The row value found in this Product Attribute column is used as a Variable Value. The Variable Value can be added to the Product's Attribute or can set the Product's Attribute, or the Product's Attribute can be shifted towards this Variable Value by either a Fixed Rate or Variable Rate.
Variable Rate Column
The row value found in this Product Attribute column is used as a Variable Rate. The Variable Rate can be multiplied to the Product's Attribute, or can be the rate at which the Product's Attribute is shifted towards either a Fixed Value or Variable Value.
Save Randomizing Seed
A Randomizing Seed can be saved to ensure Customer Distributions are always scaled in the same way. The 'New' button will generate a new Randomized Seed. Disable the CheckBox to generate a new Randomizing Seed each time the node is run. Manually set a new Randomizing Seed if this node is copied to avoid adding bias to the overall model.

Input Ports

Icon
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' 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. Description (string): The description of the Product or the full name of the Product if the Product field contains an identification number.
  3. Brand (optional): The Brand of the Product. This is needed if the 'Scale Product Set' is to include all same-Brand Products.
  4. Store (optional): The Store which sells the Product. This is needed if the 'Scale Product Set' is to include all same-Store Products.
  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. Price (double): [Product Attribute] The 'Static Price' of each Product in the Market. This is the most obvious example of a Product Attribute that would be changed by this 'Scale Products' node. This 'Static Price' can be adjusted by the personalized 'Dynamic Price' found in the 'Input WTP Matrix'. Personalized Price = Static Price x PAV + PAF. For example, some Customers may be entitled to the percentage Discount found in the 'Price Adjustment Variable' (PAV) column, or some Customers may need to pay the personalized delivery charges found in the 'Price Adjustment Fixed' (PAF) column. The Static Price of the 'No Sale' Product, if included, should be zero.
  10. Cost (double): [Product Attribute] The 'Static Cost' of each Product required to calculate the 'Profit' in the 'Output Product Array', as well as the 'Marginal Profit' and 'Value Created' in the 'Output Product Ranking List'. 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'.
  11. Volume (double): [Product Attribute] The 'Static Volume' of the Product relative to the Volume of other Products in the Market. For example, if a Product were a twin-pack then its Volume would be '2' while the Volume of the original Product would be '1' (default). Other scales could also be used, so that one Product might be 250 (ml) while another 500 (ml). But care with the scale should be taken as the Units are disregarded and the default of '1' will always be used if a Volume is missing. This 'Static Volume' field in the 'Input Product Array' is only important if an accompanying 'Dynamic Volume' field (or _VOL field) is found in the 'Input WTP Matrix'. Otherwise this field is ignored as Virtual Customers do not distinguish Products by the different Volume they require.
  12. Capacity (integer): [Product Attribute] The Capacity Constraint for the Product. A Product's Capacity may be limited by manufacturing constraints or by inventory levels. If the Capacity level is provided then the Quantity sold for the Product cannot exceed the Capacity limitation. If Capacity is not provided, or Capacity is negative, then the Quantity sold for the Product is not limited. Capacity will be limited relative to the total number of Customers in the 'Market Size' Configuration Dialog.
  13. Quantity (integer): [Product Attribute] A reference Quantity sold for each Product in the actual (real-world) Market. If the Quantity is provided then an 'Quantity Error' will be returned as part of the results in the Output Product Array. The Quantity is required if the 'Market Size Option' is set to 'Set to total number of Customers in Product Array'. Change the 'Market Size Option' to 'Set to total number of Customers in WTP Matrix' to avoid specifying a Quantity in the 'Input Product Array'.
  14. Transactions (integer): [Product Attribute] A reference number of Transactions for each Product in the actual (real-world) Market. Transactions are only relevant if Customers purchase by Volume. That is, the 'Input WTP Matrix' must contain either a 'Volume' field or at least one '_VOL' field. Otherwise each Customer will purchase only a single Product, and the number of Transactions will equal the Quantity sold.
  15. Numeric Value: [Product Attribute] Any other numeric value is also considered to be a Product Attribute and can be changed by this 'Scale Products' node.
Icon
Input Willingness To Pay Matrix (double - optional): 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. If only a simple relationship to the Focus Product is needed then the 'Input WTP Matrix' is optional. But if the 'Scale Product Set' of Products is more complicated (for example, if it includes 'Top Rival' Products) then the Input WTP Matrix is required.
  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. 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 products 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

Icon
Output Product Array: The Output Product Array is based upon the Input Product Array with scaled Attribute values. In addition, the Output Product Array appends these columns:
  1. Include: Whether the Product was included in the 'Scale Product Set' and had an Attribute updated in accordance with the user-specified 'Scale Scenario'.
Icon
Output Willingness To Pay Matrix: The Output WTP Matrix is equivalent to the Input WTP Matrix without any changes. The WTP Matrix is simply passed through the node as a convenience. The Input WTP Matrix is only required if the 'Scale Product Set' requires a complex relationship to the 'Focus Product' such as including 'Top Rival' Products.

Workflows

Installation

To use this node in KNIME, install Market Simulation nodes by Scientific Strategy for KNIME - Community Edition from the following update site:

KNIME 4.3

You don't know what to do with this link? Read our NodePit Product and Node Installation Guide that explains you in detail how to install nodes to your KNIME Analytics Platform.

Wait a sec! You want to explore and install nodes even faster? We highly recommend our NodePit for KNIME extension for your KNIME Analytics Platform. Browse NodePit from within KNIME, install nodes with just one click and share your workflows with NodePit Space.

Developers

You want to see the source code for this node? Click the following button and we’ll use our super-powers to find it for you.