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.
- Type: Data Input Customer Locations: The ratio of Customer 'Population' at each 'Location'. The 'Input Customer Locations' must have the following columns:
- Location (string): The name of each Geographic Location in the Market where Virtual Customers reside.
- 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'.
- Type: Data 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:
- Product (string): The name of each 'Product' in the Market. A Customer Distribution is created for each unique 'Product' name.
- 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.
- 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.
- 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.
- 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.
- 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).
- Type: Data 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:
- 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.
- 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.
- 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'.
- 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.
- Type: Data 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.