Available with Business Analyst license.
Summary
Calculates the market penetration based on customer data within an area.
Usage
The spatial reference of the output feature class will be the same as the layer for calculating market penetration.
The layer for calculating market penetration should be a Business Analyst data or trade area layer.
The customer layer must be a point feature class.
In most cases, the customer layer input feature layer will be a Business Analyst customer layer.
When calculating market penetration, the final percentages are a direct result of the number of customers used in the tool. If you are comparing the penetration of your customers based on 1,000 customers in a large metropolitan area against the total population, the percentage of market penetration will be very low. These percentages are still a valuable tool if taken in consideration of the market you are attempting to penetrate.
You can use this tool in conjunction with trade areas to calculate the performance and market penetration of your store trade areas. In this case, you would set the Layer for Calculating Market Penetration parameter to your trade area layer.
You can optionally calculate market penetration based on a weight field in the customer layer instead of the customer counts. For example, you can calculate penetration based on total sales per household for each ZIP Code.
When using this tool within Python, the parameters MarketPenetrationTMCField (Total Market Counts Field), InputGeographyLevel (Geography Level), and MarketPenetrationTMCSummarization (Summarization Field) are not optional, but they can be omitted by placing # value for any of these parameters that you don't want to set.
Syntax
MarketPenetration_ba (MarketPenetrationLayer, MarketPenetrationAreaID, IN_MP_AREA_DESCR, CustomerLayer, MarketPenetrationTMCType, OutputFeatureClass, {MarketPenetrationUseSelectedMPAreas}, IN_MP_STORE_ID, {UseSelectedCustomers}, {CustomerWeightField}, {MarketPenetrationTMCField}, {InputGeographyLevel}, {MarketPenetrationTMCSummarization}, {IN_CL_STORE_ID}, {ReportTitle}, {MarketPenetrationReportDirectory}, {ReportFormats}, {CreateReport})
Parameter | Explanation | Data Type |
MarketPenetrationLayer | The input feature class used for calculating the values for the market penetration. | Feature Layer |
MarketPenetrationAreaID | Unique ID field in the market penetration layer. | Field |
IN_MP_AREA_DESCR | Field used to describe or name each feature in the market penetration layer. | Field |
CustomerLayer | The input feature class (usually a customer layer) that will be used to determine the market penetration. | Feature Layer |
MarketPenetrationTMCType | The method that will be used to calculate the market penetration values.
| String |
OutputFeatureClass | The feature class that will contain the market penetration features. | Feature Class |
MarketPenetrationUseSelectedMPAreas (Optional) | The features used to calculate the market penetration.
| Boolean |
IN_MP_STORE_ID | The unique identifier associated with each store. | Field |
UseSelectedCustomers (Optional) | The features of the customer layer used to calculate the market penetration counts.
| Boolean |
CustomerWeightField (Optional) | Uses a weight field in the customer layer instead of the customer counts to calculate the market penetration values. For example, you can calculate penetration based on total sales per household for each ZIP Code. | Field |
MarketPenetrationTMCField (Optional) | The attribute field containing the values for the market penetration calculation. | Field |
InputGeographyLevel (Optional) | The geography level that contains the market counts for the market penetration. | Feature Layer |
MarketPenetrationTMCSummarization (Optional) | The attribute that will be used to calculate the total market counts from the standard geography level. | Field |
IN_CL_STORE_ID (Optional) | Unique ID linking the customer file with the store file. | Field |
ReportTitle (Optional) | Title of the report. | String |
MarketPenetrationReportDirectory (Optional) | Report is created in this output folder. | Folder |
ReportFormats [ReportFormat,...,...] (Optional) | One or more formats to which the report will be output. If you are using the Python function call, enter the values as a String in the following format: "FirstFormat; SecondFormat; ThirdFormat", etc. For example: "html;pdf;s.xlsx;s.xml;xlsx" (A String of desired format names delimited by semi-colons.)
| String |
CreateReport (Optional) | Generates a report.
| Boolean |
Code sample
MarketPenetration Example (Stand-alone Script)
# Name: MarketPenetration.py
# Description: Calculates how well customers in the San Francisco penetrate the households in that 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")
# Acquire extension license
arcpy.CheckOutExtension("Business")
# Define input and output parameters for the Market Penetration tool
MarketPenetrationLayer = "C:/ArcGIS/Business Analyst/US_2018/Data/Demographic Data/BlockGroups_bg.bds"
MarketPenetrationAreaID="ID"
IN_MP_AREA_DESCR="NAME"
CustomerLayer = "C:/temp/sf_cust.shp"
MarketPenetrationTMCType = "In the layer attribute table"
OutputFeatureClass = "C:/temp/Marketpenetration.shp"
MarketPenetrationUseSelectedMPAreas = "false"
IN_MP_STORE_ID = "STATE_NAME"
UseSelectedCustomers = "false"
CustomerWeightField = ""
IN_CL_STORE_ID = ""
MarketPenetrationTMCField = "TOTHH_CY"
OutputFeatureClass = "C:/temp/Marketpenetration.shp"
InputGeographyLevel = ""
MarketPenetrationTMCSummarization = ""
ReportTitle = "Determine Market Penetration"
MarketPenetrationReportDirectory = "C:/My Output Data/Projects/Default Project/Reports/MarketPenetration"
ReportFormats = "pdf;xlsx;zip;s.xlsx"
# Create a Market Penetration output
arcpy.MarketPenetration_ba(MarketPenetrationLayer,
MarketPenetrationAreaID,
IN_MP_AREA_DESCR,
CustomerLayer,
MarketPenetrationTMCType,
OutputFeatureClass,
MarketPenetrationUseSelectedMPAreas,
IN_MP_STORE_ID,
UseSelectedCustomers,
CustomerWeightField,
IN_CL_STORE_ID,
MarketPenetrationTMCField,
OutputFeatureClass,
InputGeographyLevel,
MarketPenetrationTMCSummarization,
ReportTitle,
MarketPenetrationReportDirectory,
ReportFormats)
# Release extension license
arcpy.CheckInExtension("Business")
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