Available with Business Analyst license.
Summary
Creates a report to analyze a market by displaying total households, percent core households, percent developmental households, actual customers, customer penetration, expected customers, and the gap for a given level of geography.
Usage
To best determine what your index and percent composition threshold values should be, you should analyze the output from the Profile Segmentation Report.
In most cases, the Index Threshold should be set to a value of at least 100.
The Percent Threshold should be set so you have at least three segments in the core target group. Often, there will be a natural break in the percent composition values.
Usually, the Target Segmentation Profile is based on customer records.
The Base Segmentation Profile can be generated using the Create Profile By Area Summation tool.
Customers in the Target Segmentation Profile should be wholly contained within the Base Segmentation Profile.
If you are unclear what to use as the Base Segmentation Profile, you can use the whole United States.
The segmentation base can be generated using total adult population or total households.
Total adult population includes individuals 18 years old or older.
You may want to create a bar chart or Game Plan Chart to help you in the definition of index and percent composition threshold values.
By default, percent penetration is calculated by dividing the target total for each segment by the base total and multiplying by 100. You can change the base multiplier to 1,000 by adjusting this value in Business Analyst > Preferences on the Analysis tab.
Use a Segmentation Base Profile as small as possible to obtain larger percent penetration values. Large segmentation base profiles, such as the entire United States, will dilute the results of your analysis.
Syntax
GapAnalysisReport_ba (InputGeographyLevel, BaseProfile, TargetProfile, SegmentMethod, OutputDirectoryParameterName, {CustomerLayer}, {UseSelectedFeatures}, {AllZips}, {IndexThreshold}, {PenetrationThreshold}, {TargetGroup}, {CoreTarget}, {DevelopmentalTarget}, {TitleParameterName}, {CreateThematicMap}, {ThematicMapField}, {OutputFeatureClass}, {ReportFormats})
Parameter | Explanation | Data Type |
InputGeographyLevel | The input feature class containing the demographic variables used to profile your customers. Typically, this should be set to the block group layer. | Feature Layer |
BaseProfile | The base profile used in the calculation of the index and percent penetration. This profile is usually based on the geographic extent of your customers. | Folder |
TargetProfile | The target profile that will be compared to the base profile. Typically, this is based on your customers and is generated using the Segmentation Profile tools. | Folder |
SegmentMethod | The method to determine how your segments will be assigned to the Core and Developmental categories.
| String |
OutputDirectoryParameterName | The output directory that will contain the report. | Folder |
CustomerLayer (Optional) | The point input feature class containing customers. Typically, this will be a Business Analyst customer layer. | Feature Layer |
UseSelectedFeatures (Optional) | Generates a report on selected features of the customer layer.
| Boolean |
AllZips (Optional) | The option to use all ZIP Codes in the report.
| Boolean |
IndexThreshold (Optional) | The value used to determine the threshold index of your analysis. | Double |
PenetrationThreshold (Optional) | Defines the percentage of customers that meets or exceeds the percent composition threshold. | Double |
TargetGroup (Optional) | The predefined Target Groups that contain your Core and Developmental segments. | String |
CoreTarget (Optional) | The Core Target group. Core targets should be defined as the segments that make up a good percentage of your customer base and index well. To use this option, you must first create custom target groups with these assignments. | String |
DevelopmentalTarget (Optional) | The Developmental Target group. Developmental targets should be defined as the segments that make up a good percentage of your customer base but don't index as well as your Core segments. To use this option, you must first create custom target groups with these assignments. | String |
TitleParameterName (Optional) | Title for the report. | String |
CreateThematicMap (Optional) | Generate a thematic map on a selected variable.
| Boolean |
ThematicMapField (Optional) | The field to generate the thematic map.
| String |
OutputFeatureClass (Optional) | The feature class that will contain the thematic map. | Feature Class |
ReportFormats (Optional) | The output report format.
| String |
Code sample
GapAnalysisReport example (stand-alone script)
# Name: GapAnalysisReport.py
# Description: Analyzes the San Francisco market using customers points and Tapestry profiles by ZIP Code.
# 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.overwriteoutput = 1
# Define input and output parameters for the Gap Analysis Report tool
Customers = "C:/temp/sf_cust.shp"
GeoLayer = "C:/ArcGIS/Business Analyst/US_2018/Data/Demographic Data/ZIPCodes_zp_esri.bds"
BaseSeg = "C:/My Output Data/Projects/Default Project/Segmentation/Profiles/US Households/profile.xml"
TargetSeg = "C:/My Output Data/Projects/Default Project/Segmentation/Profiles/US Households/profile.xml"
OutPath = "C:/temp/Gap"
# Create Gap Analysis Report
arcpy.GapAnalysisReport_ba(Customers, GeoLayer, BaseSeg, TargetSeg, "110", "4", 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