Available with Business Analyst license.
Summary
Creates a probability surface to predict the sales potential of an area based on distance and attractiveness factors.
Usage
The results of the Huff Model can be used to:
- Estimate market potential.
- Define and analyze market potential.
- Assess economic impact of a new site location.
- Forecast sales and potential of existing stores and outlets.
- Assess the impact of competitive and environmental changes on outlet performance.
The first step to executing this tool is to define a study area that includes all the trade areas of all competing stores being analyzed.
The Sales Potential Layer is usually a polygon features representing subareas where the potential customers live. Point features can also be used; for example, block centroids that have associated demographic data.
The Competitive Store Layer should include all competitive locations in a given study area. This layer should also include any of your existing store locations in the study area, since they will act as competitors to a new store location. In most cases, the competitive store layer will be a Business Analyst store layer.
Competitive store locations can be extracted from the Add Business Listings function in Business Analyst.
A higher Distance Coefficient indicates that distance will have a greater impact on consumer behavior. For example, consumers are more willing to travel farther for high-order goods, such as automobiles and furniture, than they are for low-order goods, such as groceries.
The output of the Huff Model generates probabilities and estimated sales for each subgeographic area. The output probabilities can be used to define primary market (trade) areas for a new store location. For example, a trade area can be created using the Dissolve By Attribute tool to create a primary market area that includes all the subgeography areas that have a probability higher than 40 percent of patronizing the new store location.
The spatial reference of the output feature class will be the same as the Sales Potential Layer.
The Potential Sales Field measure the attractiveness of a store. The values in this field, also known as predictor values, often include attributes of a store, such as square footage, number of parking spaces, advertising, store hours, prices, age, appearance, signage, accessibility, and so forth.
Syntax
HuffModelAdvanced_ba (SalesPotentialLayer, SalesPotentialLayerIDFieldName, PotentialSalesFldName, StoreLayer, StoreIDField, WayToDefineStoreLocation, WayToDefineParams, DistanceCalculationMethod, DistanceCoefficient, AttractionVariables, OutputFeatureClass, {ExtentSourceLayer}, {Longitude}, {Latitude}, {PotentialStoreLayer}, {PotentialStoreOID}, {PathToCalibratedResult})
Parameter | Explanation | Data Type |
SalesPotentialLayer | The input feature class that contains the data used to calculate the numeric potential of the Huff Model. This is typically expressed in annual sales data. | Feature Layer |
SalesPotentialLayerIDFieldName | The unique identifier of the sales potential layer. | Field |
PotentialSalesFldName | The field containing the values used to calculate the sales potential of the Huff Model. | Field |
StoreLayer | The layer that contains the competitive points (usually stores) used to determine how sales are influenced and distributed across the analysis area. | Feature Layer |
StoreIDField | The unique identifier of the competitive store layer. | Field |
WayToDefineStoreLocation | The method used to generate the potential store layer:
| String |
WayToDefineParams | Input method for the parameters for the Advanced Huff Model:
| String |
DistanceCalculationMethod | Assigns the method used to calculate distances between geographic areas defined by the potential customer's layer parameter and stores from the competitive stores layer.
| String |
DistanceCoefficient | The value that determines how much of a factor travel distance is to the consumer. | Double |
AttractionVariables [[Variable, {Potential Store Value}, {Coefficient}],...] | The values that measure how attractive a store is to consumers. | Value Table |
OutputFeatureClass | The feature class that will contain the Huff Model results. | Feature Class |
ExtentSourceLayer (Optional) | The input feature class used to define the extent of the analysis. | Feature Layer |
Longitude (Optional) | The x-coordinate (longitude) for the potential site. | Double |
Latitude (Optional) | The y-coordinate (latitude) for the potential site. | Double |
PotentialStoreLayer (Optional) | The existing point feature class that will be used to define the potential store location. | Feature Layer |
PotentialStoreOID (Optional) | The unique identifier for the potential store location. | Long |
PathToCalibratedResult (Optional) | The existing Huff Model calibration file. | Folder |
Code sample
HuffModelAdvanced example (stand-alone script)
# Name: HuffModelAdvanced.py
# Description: Analyzes stores in the San Francisco area to determine the estimated annual sales.
# Author: Esri
# Import system modules
import arcview
import arcpy
arcpy.ImportToolbox(r"C:\Program Files (x86)\ArcGIS\Desktop10.7\Business Analyst\ArcToolbox\Toolboxes\Business Analyst Tools.tbx")
try:
# Acquire extension license
arcpy.CheckOutExtension("Business")
arcpy.CheckOutExtension("Network")
# Define input and output parameters for the Advanced Huff Model tool
SalesLayer = "C:/ArcGIS/Business Analyst/US_2018/Data/Demographic Data/BlockGroups_bg.bds"
SalesId = "ID"
FieldName = "TOTPOP_CY"
CompLayer = "C:/temp/sf_stores.shp"
StoreId = "STORE_ID"
DefineStoreLayer = "BY_COORDINATES"
DefineParams = "MANUALLY"
DistanceCalc = "DRIVE_TIME"
Coefficient = "-1.5"
AttractionVars = "SALES 500000 1.75"
OutPath = "C:/temp/Huff_adv.shp"
# Create Advanced Huff Model
arcpy.HuffModelAdvanced_ba(SalesLayer,
SalesId,
FieldName,
CompLayer,
StoreId,
DefineStoreLayer,
DefineParams,
DistanceCalc,
Coefficient,
AttractionVars,
OutPath)
# Release extension license
arcpy.CheckInExtension("Business")
arcpy.CheckInExtension("Network")
except:
print arcpy.GetMessages(2)
Environments
This tool does not use any geoprocessing environments.
Licensing information
- ArcGIS Desktop Basic: Requires Business Analyst
- ArcGIS Desktop Standard: Requires Business Analyst
- ArcGIS Desktop Advanced: Requires Business Analyst