Hub
Pricing About
NodeNode / Source

Geographic Feature

Scientific StrategyMarket Simulation
Drag & drop
Like

The Geographic Feature node calculates the 'Lost Value' of each Product due to shipping costs, waiting time, pickup hassle, and whether the Product is even available. This 'Lost Value' is calculated from the perspective of each Virtual Customer. The node considers the Location of each Virtual Customer and the Location of each Product, then uses the shipping cost between the two locations to calculate 'Lost Value'.

The node first places each Virtual Customer in a geographic 'Location' according to its 'Population'. Customers can be located in different cities across the country, or in different districts within a city. Customers can be systematically located in blocks, or can be randomly scattered across all locations according to the relative populations at each. The node then compares the Location of each Customer against the Location of each Product.

A lookup table is used to determine the shipping cost from all Origins to all Destinations. The lookup table can be rate card that has been uploaded from a third-party shipping company. Or the lookup table can be generated upstream by calculating the physical distance or travel time between all Locations.

The node creates a 'Lost Value' Customer Distribution for each Product. If a Customer can get a Product from many Locations, then the node automatically selects the Location that is most convenient for the Customer. That is, the Location which causes the Customer to suffer the least 'Lost Value'. If it is impossible for the Customer to receive the Product because no shipping options are available, then the 'Lost Value' is infinity. These 'Lost Value' Customer Distributions can be integrated with the Features of each Product by a downstream 'Product Generator' node.

'Lost Value' is subjective and will vary by Customer. Some Customers have an urgent need for rapid delivery, while others place a higher value on minimizing the cost of shipping. Customers may also have varying opinions about the reliability of each Product shipper. And Customers who are able to buy a Product directly from within a nearby store enjoy instant gratification and suffer no such 'Lost Value'. Hence the weight of the 'Lost Value' suffered by each Virtual Customer can be varied by the node.

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 Customer Locations
    Input Customer Locations : (optional) The ratio of Customer 'Population' at each 'Location'. If an upstream 'Input WTP Matrix' is connected to the 'Geographic Feature' node and the 'Input WTP Matrix' contains a 'Location' column then this 'Input Customer Locations' table is optional and will be ignored. The 'Input Customer Locations' must have the following columns:
    1. Location (string): The name of each Geographic Location in the Market where Virtual Customers reside.
    2. Population (double): The ratio of Virtual Customers residing at each Geographic Location. If the option 'Locate the Customers' is set to 'In Small Blocks' then these ratios need to be expressed in integers and add to a subset of total 'Number of Customers'.
  2. Type: Table
    Input Product Locations
    Input Product Locations : The 'Location' of each point of sale for each 'Product' in the Market. The 'Input Product Locations' must have the following columns:
    1. Product (string): The name of each 'Product' in the Market. A Customer Distribution is created for each unique 'Product' name.
    2. Location (string): The point of sale 'Location' of each 'Product' in the Market. A 'Product' can have more than one point of sale 'Location' listed in this table. The 'Lost Value' assigned to each Virtual Customer will depend upon the cheapest shipping 'Cost' for each 'Product'. If the Location is set to the special value of 'Global' then the Product can be shipped from any known Origin and the minimum shipping cost from the Origin to all Destinations will be selected from the 'Input Shipping Costs' table. If there is no direct route listed between the Product's Origin and the Customer's Destination (or visa versa as the reverse shipping cost is the same by default) then the maximum shipping cost from the Origin or to the Destination is used. To set a fixed shipping Cost to all Locations, set the 'Maximum' and 'Minimum' to the fixed Cost.
    3. Surcharge (double): (optional) An additional fixed Surcharge to add to the Product shipped from this Location. This field might be used if the seller adds their own Product handling charge on top of the delivery fee charged by a third-party shipping company. If the Surchage is negative then the seller is reducing the shipping cost to the Customer by bearing some of the Cost themselves. The same Surcharge is applied to the Product regardless of the Location. If different Surcharge values are found for the same Product then the maximum non-zero Surcharge will be used.
    4. Maximum (double greater than > 0.0): (optional) The maximum Cost of shipping the Product from this Location. If the 'Maximum' value is missing then the Product shipping Cost from this Location will be determined by lookup from the 'Input Shipping Costs' table. This field might be used if the Product seller wishes to cap the maximum Cost to the Customer. The same Maximum is applied to the Product regardless of the Location. If different Maximum values are found for the same Product then the largest Maximum will be used. The Maximum is capped after the Surchage is added.
    5. Minimum (double greater than > 0.0): (optional) The minimum Cost of shipping the Product from this Location. If the 'Minimum' value is missing then the Product shipping Cost from this Location will be determined by lookup from the 'Input Shipping Costs' table. This field might be used if the seller needs to pass on a minimum Product handling charge to the Customer even if the Customer is from the same Location as the Product or very nearby. The same Minimum is applied to the Product regardless of the Location. If different Minimum values are found for the same Product then the largest Minimum will be used. The Minimum threshold is imposed after the Surchage is added.
    6. Variation (double between 0.0 and 1.0): (optional) The degree of variation in weight a Virtual Customer may place upon 'Lost Value' compared to other Virtual Customers for this Products shipped from this 'Location'. A value of 1.0 indicates that some Customers will double their 'Lost Value' whereas some other Customers will halve their 'Lost Value'. A value of 0.0 indicates that the 'Lost Value' will not change from the 'Cost' field set in the 'Input Shipping Cost' table. The variation will be normally distributed around the mean Cost. This 'Variation' is applied after the Maximum cap and Minimum threshold. It personalizes the similar 'Lost Value Variation' found within the Configuration Dialog and may be used when the perceived quality or reliability of the shipper varies, or when additional financial burdens are placed upon the individual Customer when receiving the Product. The 'Lost Value Variation' from the Configuration Dialog applies equally to all Products, whereas this 'Variation' applies only to this Product (Location is ignored).
  3. Type: Table
    Input Shipping Costs
    Input Shipping Costs : (optional) The shipping 'Cost' from each 'Origin' to each 'Destination' in the Market. The shipping cost can be monetary rate card that has been uploaded from a third-party shipping company, or can contain non-monetary values generated upstream by calculating the physical distance or travel time between all Locations. It is not necessary to include the reciprocal 'Destination' to 'Origin' shipping 'Cost' unless the value is different. If the 'Input Shipping Cost' is missing then it is assumed that the Product is only available at the 'Input Product Locations'. The 'Input Shipping Cost' table must have the following columns:
    1. Origin (string): The shipping starting point. Each 'Location' in the 'Input Product Locations' table must be represented in the 'Input Shipping Cost' table. Otherwise, if the Customer's Destination is not listed, the maximum shipping cost will be selected from the Origin.
    2. Destination (string): The shipping ending point. Each 'Location' in the 'Input Customer Locations' table must be represented in the 'Input Shipping Cost' table otherwise the maximum shipping cost will be selected for the Destination. Shipping Costs can also be included even when the Origin is the same as the Destination - otherwise the Shipping Cost is assumed to be zero. If the Product's Origin and the Customer's Destination are both unknown then the shipping cost will be set to infinity.
    3. Cost (double): The cost of shipping the typical Product in the Market. This value typically reflects actual shipping costs as this highly correlates with the Customer's 'Lost Value'. The shipping 'Cost' from 'Origin' to 'Destination' is the same regardless of 'Product' even though the actual shipping cost charged may vary by 'Product'. This is because a Product's shipping cost may impact the Product's price and does not reflect the Customer's 'Lost Value'.
    4. Note: If loading from a file and the first column contains international Unicode characters then the file should be encoded using 'UTF-8 without BOM'. Otherwise the first column is required to contain RowID's.
  4. Type: Table
    Input Willingness To Pay Matrix
    Input Willingness To Pay Matrix : (optional - double) The Willingness To Pay (WTP) Customer Distribution matrix for each Product column in the Market by each Virtual Customer row. If this table has been connected and contains a 'Location' field then the 'Input Customer Locations' table will be ignored. The total number of Virtual Available Customers is equal to the number of rows in the WTP Matrix and will override the 'Number of Customers' user setting. 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. The user may configure the 'Geographic Feature' node to replace these Dynamic values. The 'Input WTP Matrix' may have the following columns:
    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. Location : The name of the Geographic Location where each Virtual Customer resides. If the 'Input WTP Matrix' includes this 'Location' field and there are no missing values then the 'Input Customer Locations' table and the 'Locate Customers' configuration dialog will both be ignored.
Output ports
  1. Type: Table
    Output Geographic Distributions
    Output Geographic Distributions : The 'Location' of each Virtual Customer (row) and the 'Lost Value' for each Product (column). The name of each unique 'Product' found in the 'Input Product Locations' will prefix each 'Lost Value' column heading. The Output Geographic Distributions will be appended to the 'Input WTP Matrix' (if provided) and will contain these columns:
    1. Location : The Location of each Virtual Customer. The Location field may be generated from the 'Input Customer Locations' table along with the 'Locate Customers' configuration dialog. Alternatively, the Location field may have been determined by an upstream node and passed through with the 'Input WTP Matrix'.
    2. Lost Value : A Lost Value is calculated for each Product and each Customer. This Lost Value can represent the degree of subjective inconvenience suffered by the Customer. It can also represent direct and objective costs incurred by the Customer such as Shipping Cost, fuel charges, or travel time. Lost Value reduces the Customer's Willingness To Pay (WTP) and and their Consumer Surplus when considering whether to purchase a Product.
    3. _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.
    4. _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. 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. Note: beware of double-counting. It would not make sense to reduce the Customer's WTP using the 'Lost Value' column while also increasing the Price a vendor charges a Customer using the 'PAF' column.

Extension

The Geographic Feature 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