Node Description

Scale Demographic Node

The Scale Demographic node changes the Willingness To Pay (WTP) values of all the individual Customers within the Top Input WTP Matrix and Bottom Input WTP Matrix.

The Scale Demographic node is designed to sit immediately downstream of a KNIME ‘Row Splitter’ node. The user can split the Input WTP Matrix into two halves based upon a Customer Demographic or Nominal Product Attribute found within each row. For example, an upstream ‘Row Splitter’ can filter ‘Female’ Customers into the Top Input WTP Matrix, and ‘Male’ Customers into the Bottom Input WTP Matrix. The KNIME ‘Row Splitter’ node provides a sophisticated range of filtering methods, including a rule-based filter and a reference value filter, as well as wildcard string matching and regular expressions. Both the top and bottom outputs from the Row Splitter node should be connected to the top and bottom inputs of the Scale Demographic node.

Scaling individual WTP values depending upon Customer Demographics is helpful in a number of situations. For example, a Marketing Campaign might only target a certain Customer Demographic, and only Customers who fall within that Demographic are likely to increase their Willingness To Pay (WTP) for the promoted Product. And Wealthy Customers, as identified by perhaps their zip-code, may have a higher WTP for Luxury Goods or a certain Category of Products.

Several Scale Demographic nodes can be cascaded one after the other to fine-tune the updated WTP values. The Scale Demographic node can also be configured to combine (concatenate) all the results into a final Output WTP Matrix that can be directly connected to a downstream Market Simulation node.

This Community Node documentation assumes you have already downloaded the open-source KNIME analytics platform and installed the free Market Simulation (Community Edition) plugin. If not, start by returning to Getting Started.

Female vs. Male

This very simple workflow randomly labels Customers as either:

  • Female, or
  • Male.

The KNIME ‘Row Splitter’ node splits the Input WTP Matrix by this demographic. Then the ‘Scale Demographic’ node increases the Willingness To Pay (WTP) of Female Customers by +50 while it changes the WTP of Male Customers by -50.


WTP Matrix

The KNIME ‘Random Label Assigner’ node sets Customers in the ‘Input WTP Matrix’ to be either Female or Male.

Top / Bottom Split

The KNIME ‘Row Splitter’ node then splits the Input WTP Matrix into a ‘Top Matrix’ and a ‘Bottom Matrix’. These two tables are then fed into the ‘Scale Demographic’ node.



The user selects which columns from the Top/Bottom ‘Input WTP Matrix’ tables will be scaled. The WTP values can be scaled by:

  • Adding a fixed or variable value
  • Multiplying by a value
  • Shifting towards a value
  • Spreading a value across all Customers

After the WTP values have been scaled, the node can re-combine the Top/Bottom inputs into a single ‘Output WTP Matrix’ and sort it by the Customer RowID. This allows it to be immediately usable by a downstream ‘Simulate Market’ node.

Bottom Input

The ‘Scale Demographic’ node can simultaneously scale both the Top and Bottom inputs.


Port-0 Top WTP Matrix

The ‘Output WTP Matrix’ contains all of the scaled WTP values according to each Customer’s demographic. Both the ‘Top WTP Matrix’ and the ‘Bottom WTP Matrix’ can be re-combined and sorted as the original ‘Input WTP Matrix’.

In this case, the WTP of all Female Customers has been increased by +50 while the WTP of all Male Customers has been changed by -50.

Port-1 Bottom WTP Matrix

If the Top and Bottom WTP Matricies have not been re-combined, then the ‘Bottom Output WTP Matrix’ would contain just the scaled values from the bottom port. This allows some flexibility in chaining together multiple ‘Scale Demographic’ nodes.