Generate Customer Derived Trade Areas (Business Analyst)

Available with Business Analyst license.

Summary

Creates trade areas around stores based on the number of customers or volume attribute of each customer.

Illustration

Generate Customer Derived Trade Areas tool illustration

Usage

  • The spatial reference of the output feature class will be the same as that of the store layer.

  • The Stores and Customers parameter values must both be point features.

  • Valid numeric values must be used when identifying a volumetric field to be used as a weighted value.

  • The trade area boundaries can be set to expand until they encompass user-prescribed customer counts or summed and weighted numeric values, such as sales.

  • Store-to-customer assignments are controlled during setup using a common, user-specified ID.

Parameters

LabelExplanationData Type
Stores

A point layer representing store or facility locations.

Feature Layer
Store ID Field

The unique ID field representing a store or facility location.

Field
Customers

An input point layer representing customers or patrons.

Feature Layer
Associated Store ID Field

An ID field that will be used to assign individual customers to stores.

Field
Output Feature Class

The output trade area feature class.

Feature Class
Method

Specifies the type of customer-derived trade area that will be generated.

  • Simple — A generalized trade area based on the percentages of customers corresponding to each store will be generated.
  • Amoeba — Points representing the boundary of the polygon trade area will be connected using natural curvature.
  • Detailed — Points representing the boundary of the polygon trade area will be connected using straight lines.
  • Detailed with smoothing — Points representing the boundary of the polygon trade area will be connected with smoothed curves using cubic splines. This approach takes into account the shape and pattern of the customer distributions. This is the default.
  • Threshold Rings — Concentric rings that expand from input stores until they contain the specified threshold of customers will be generated.
  • Threshold Drive Times —Polygons that expand from stores along network routes until they contain the specified threshold of customers will be generated.
String
Radii (%)

The values that will be used to represent the percentage of customers—for example, total count or a customer attribute and total sales assigned to each store. Each value represents one trade area polygon.

Double
Customer Aggregation Type

Specifies the type of aggregation that will be used.

  • Count —Percentage-based trade areas will be calculated using the geographic locations of customers. This is the default.
  • Weight —Percentage-based trade areas will be calculated using a customer attribute—for example, sales.
String
Customer Weight Field
(Optional)

The field that will be used to calculate the trade areas. This is based on either the number of customers (count) or the calculated weighted value assigned to each customer.

Field
Exclude Outlying Customers
(Optional)

Specifies whether outlying customers will be excluded from the trade area generation.

  • Checked—Outlying customers will be excluded.
  • Unchecked—Outlying customers will not be excluded; all customers will be considered. This is the default.
Boolean
Cut-off Distance
(Optional)

The distance beyond which customers will be considered outliers and excluded from consideration during trade area generation.

Linear Unit
Dissolve Option
(Optional)

Specifies whether polygons of the entire area will be created or the polygons will be split into individual features.

  • Overlap — Output polygons will be generated in which each feature begins at zero and grows to satisfy the specified percentage of customers. For example, if you specify a trade area of 50 percent and 70 percent of your customers, one polygon will be generated to include 0 to 50 percent and a second polygon will include all 0 to 70 percent of customers. This is the default.
  • Split — Output polygons will be generated for individual features based on the specified percentage breaks. For example, if you specify a trade area of 50 percent and 70 percent of your customers, one polygon will be generated to include 0 to 50 percent and a second polygon will include 50 to 70 percent of customers.
String
Use Customers Centroid for Trade Area Center
(Optional)

Specifies whether the centroid of your customer area will be used to calculate trade areas outward from this point.

  • Checked—The centroid of customer points will be used to calculate trade areas.
  • Unchecked—The centroid of customer points will not be used; store location will be used as the starting point to calculate trade areas. This is the default.
Boolean
Distance Type
(Optional)

The method of travel that will be used to calculate the distance.

String
Distance Units
(Optional)

The units that will be used for the distance values.

String
Travel Direction
(Optional)

Specifies the direction of travel that will be used between stores and customers.

  • Toward Stores —The direction of travel will be from customers to stores. This is the default.
  • Away from Stores —The direction of travel will be from stores to customers.
String
Time of Day
(Optional)

The time and date that will be used when calculating distance.

Date
Time Zone
(Optional)

Specifies the time zone that will be used for the Time of Day parameter.

  • Time Zone at Location —The time zone in which the territories are located will be used. This is the default.
  • UTC —Coordinated universal time (UTC) will be used.
String
Search Tolerance
(Optional)

The maximum distance that input points can be from the network. Points located beyond the search tolerance will be excluded from processing.

The parameter requires a distance value and units for the tolerance.

Linear Unit
Polygon Detail
(Optional)

Specifies the level of detail that will be used for the output drive time polygons.

  • Standard — Polygons with a standard level of detail will be created. This is the default.
  • Generalized —Generalized polygons will be created using the hierarchy present in the network data source to produce results quickly.
  • High — Polygons with a high level of detail will be created for applications in which precise results are important.
String
Iterations Limit
(Optional)

Restricts the number of drive times that can be used to find the optimal threshold limit.

Long
Minimum Step
(Optional)

The minimum increment distance or time—for example, 1 mile or 1 minute—that will be used between iterations to expand until the threshold is reached.

Double
Threshold Percent Difference
(Optional)

The maximum percentage difference between the target value and threshold value that will be used when determining the threshold drive time, for example, 5 percent. The default value is 5.

Double

arcpy.ba.CustomerDerivedTA(in_stores_layer, store_id_field, in_customers_layer, link_field, out_feature_class, method, rings, customer_aggregation_type, {customer_weight_field}, {exclude_outlying_customers}, {cutoff_distance}, {dissolve_option}, {use_customer_centroids}, {distance_type}, {units}, {travel_direction}, {time_of_day}, {time_zone}, {search_tolerance}, {polygon_detail}, {iterations_limit}, {minimum_step}, {target_percent_diff})
NameExplanationData Type
in_stores_layer

A point layer representing store or facility locations.

Feature Layer
store_id_field

The unique ID field representing a store or facility location.

Field
in_customers_layer

An input point layer representing customers or patrons.

Feature Layer
link_field

An ID field that will be used to assign individual customers to stores.

Field
out_feature_class

The output trade area feature class.

Feature Class
method

Specifies the type of customer-derived trade area that will be generated.

  • SIMPLEA generalized trade area based on the percentages of customers corresponding to each store will be generated.
  • AMOEBAPoints representing the boundary of the polygon trade area will be connected using natural curvature.
  • DETAILEDPoints representing the boundary of the polygon trade area will be connected using straight lines.
  • DETAILED_WITH_SMOOTHINGPoints representing the boundary of the polygon trade area will be connected with smoothed curves using cubic splines. This approach takes into account the shape and pattern of the customer distributions. This is the default.
  • THRESHOLD_RINGS Concentric rings that expand from input stores until they contain the specified threshold of customers will be generated.
  • THRESHOLD_DRIVETIMESPolygons that expand from stores along network routes until they contain the specified threshold of customers will be generated.
String
rings
[rings,...]

The values that will be used to represent the percentage of customers—for example, total count or a customer attribute and total sales assigned to each store. Each value represents one trade area polygon.

Double
customer_aggregation_type

Specifies the type of aggregation that will be used.

  • COUNTPercentage-based trade areas will be calculated using the geographic locations of customers. This is the default.
  • WEIGHTPercentage-based trade areas will be calculated using a customer attribute—for example, sales.
String
customer_weight_field
(Optional)

The field that will be used to calculate the trade areas. This is based on either the number of customers (count) or the calculated weighted value assigned to each customer.

Field
exclude_outlying_customers
(Optional)

Specifies whether outlying customers will be excluded from the trade area generation.

  • EXCLUDE_OUTLIERSOutlying customers will be excluded.
  • ALL_POINTSOutlying customers will not be excluded; all customers will be considered. This is the default.
Boolean
cutoff_distance
(Optional)

The distance beyond which customers will be considered outliers and excluded from consideration during trade area generation.

Linear Unit
dissolve_option
(Optional)

Specifies whether polygons of the entire area will be created or the polygons will be split into individual features.

  • OVERLAP Output polygons will be generated in which each feature begins at zero and grows to satisfy the specified percentage of customers. For example, if you specify a trade area of 50 percent and 70 percent of your customers, one polygon will be generated to include 0 to 50 percent and a second polygon will include all 0 to 70 percent of customers. This is the default.
  • SPLIT Output polygons will be generated for individual features based on the specified percentage breaks. For example, if you specify a trade area of 50 percent and 70 percent of your customers, one polygon will be generated to include 0 to 50 percent and a second polygon will include 50 to 70 percent of customers.
String
use_customer_centroids
(Optional)

Specifies whether the centroid of your customer area will be used to calculate trade areas outward from this point.

  • USE_CENTROIDSThe centroid of customer points will be used to calculate trade areas.
  • USE_STORESThe centroid of customer points will not used; store location will be used as the starting point to calculate trade areas. This is the default.
Boolean
distance_type
(Optional)

The method of travel that will be used to calculate the distance.

String
units
(Optional)

The units that will be used for the distance values.

String
travel_direction
(Optional)

Specifies the direction of travel that will be used between stores and customers.

  • TOWARD_STORESThe direction of travel will be from customers to stores. This is the default.
  • AWAY_FROM_STORESThe direction of travel will be from stores to customers.
String
time_of_day
(Optional)

The time and date that will be used when calculating distance.

Date
time_zone
(Optional)

Specifies the time zone that will be used for the time_of_day parameter.

  • TIME_ZONE_AT_LOCATIONThe time zone in which the territories are located will be used. This is the default.
  • UTCCoordinated universal time (UTC) will be used.
String
search_tolerance
(Optional)

The maximum distance that input points can be from the network. Points located beyond the search tolerance will be excluded from processing.

The parameter requires a distance value and units for the tolerance.

Linear Unit
polygon_detail
(Optional)

Specifies the level of detail that will be used for the output drive time polygons.

  • STANDARD Polygons with a standard level of detail will be created. This is the default.
  • GENERALIZEDGeneralized polygons will be created using the hierarchy present in the network data source to produce results quickly.
  • HIGH Polygons with a high level of detail will be created for applications in which precise results are important.
String
iterations_limit
(Optional)

Restricts the number of drive times that can be used to find the optimal threshold limit.

Long
minimum_step
(Optional)

The minimum increment distance or time—for example, 1 mile or 1 minute—that will be used between iterations to expand until the threshold is reached.

Double
target_percent_diff
(Optional)

The maximum percentage difference between the target value and threshold value that will be used when determining the threshold drive time, for example, 5 percent. The default value is 5.

Double

Code sample

CustomerDerivedTA example (Python window)

The following Python window script demonstrates how to use the CustomerDerivedTA function.

import arcpy
arcpy.ba.CustomerDerivedTA("Facilities", "ID", "Customers", "ID",r"C:\Temp\Output.gdb\TradeArea75pct","DETAILED_WITH_SMOOTHING", [75], "COUNT", None,"ALL_POINTS", None, "OVERLAP", "USE_STORES", '', '',"TOWARD_STORES", None, "TIME_ZONE_AT_LOCATION", None,"STANDARD", 10, None, 5)

Licensing information

  • Basic: Requires Business Analyst
  • Standard: Requires Business Analyst
  • Advanced: Requires Business Analyst

Related topics