Available with Business Analyst license.
Summary
Creates a probability surface to predict the sales potential of an area based on distance and an attractiveness factor.
Usage
The results of the Huff Model can be used to
- Estimate, 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 output of the Huff Model will generate 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 Range 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.If you want to use more than one attractiveness value, you should use the Advanced Huff Model tool.
The Sales Potential Layer is usually polygon features representing subareas where 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, this 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 spatial reference of the output feature class will be the same as the sales potential layer.
Syntax
HuffModelOriginal_ba (SalesPotentialLayer, PotentialSalesFldName, StoreLayer, AttractivenessField, WayToDefineStoreLocation, RadiusOfCovering, {MeasureUnits}, DistanceCoefficient, Attractiveness, OutputFeatureClass, {Longitude}, {Latitude}, {PotentialStoreLayer}, {PotentialStoreOID})
Parameter | Explanation | Data Type |
SalesPotentialLayer | The features used to calculate the sales potential of the Huff Model. | Feature Layer |
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 |
AttractivenessField | The attribute field that determines how attractive each competitor is. In many cases, the size of the store is used as a surrogate for attractiveness. | Field |
WayToDefineStoreLocation | Determines how the potential layer will be selected.
| String |
RadiusOfCovering | Sets the radius of the Huff Model. The model output will extend from the potential site location to this distance. | Double |
MeasureUnits (Optional) | The units used with the distance values. By default, the units defined in the Business Analyst preferences will be selected.
| String |
DistanceCoefficient | The value that determines how much of a factor travel distance is to the consumer. | Double |
Attractiveness | The value that measures how attractive the potential store is to consumers. | Double |
OutputFeatureClass | The output feature class that will contain the Huff Model results. | Feature Class |
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 used to define the potential store location. | Feature Layer |
PotentialStoreOID (Optional) | The unique identifier for the potential store location. | Long |
Code sample
HuffModelOriginal example (stand-alone script)
# Name: HuffModelOriginal.py
# Description: Creates a Huff Model to estimate dollars spent on vehicle maintenance in the San Francisco Market
# 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")
# Define input and output parameters for the Original Huff Model tool
SalesLayer = "C:/ArcGIS/Business Analyst/US_2018/Data/Demographic Data/BlockGroups_bg.bds"
SalesFieldName = "X6015_X"
CompLayer = "C:/temp/sf_stores.shp"
AttractiveField = "SALES"
DefineStoreLayer = "BY_COORDINATES"
Radius = "5"
Coefficient = "-1.5"
Attractiveness = "50000"
OutPath = "C:/temp/Huff_Model.shp"
# Create Original Huff Model
arcpy.HuffModelOriginal_ba(SalesLayer,
SalesFieldName,
CompLayer,
AttractiveField,
DefineStoreLayer,
Radius,
Coefficient,
Attractiveness,
OutPath)
# Release extension license
arcpy.CheckInExtension("Business")
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