ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Help
  • Sign Out
ArcGIS Desktop

ArcGIS Online

The mapping platform for your organization

ArcGIS Desktop

A complete professional GIS

ArcGIS Enterprise

GIS in your enterprise

ArcGIS Developers

Tools to build location-aware apps

ArcGIS Solutions

Free template maps and apps for your industry

ArcGIS Marketplace

Get apps and data for your organization

  • Documentation
  • Support
Esri
  • Sign In
user
  • My Profile
  • Sign Out

ArcMap

  • Home
  • Get Started
  • Map
  • Analyze
  • Manage Data
  • Tools
  • Extensions

Market Penetration

Available with Business Analyst license.

  • Summary
  • Usage
  • Syntax
  • Code sample
  • Environments
  • Licensing information

Summary

Calculates the market penetration based on customer data within an area.

Learn more about how Market Penetration works

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

arcpy.ba.MarketPenetration(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})
ParameterExplanationData 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.

  • In the layer attribute table —Calculates the market penetration based on an existing field in the input layer.
  • Calculate using geography level —Calculates the market penetration based on Business Analyst data.
  • Calculate using online data —Calculates the market penetration based on ArcGIS Online data.
String
OutputFeatureClass

The feature class that will contain the market penetration features.

Feature Class
MarketPenetrationUseSelectedMPAreas
(Optional)

The features used to calculate the market penetration.

  • TRUE —Uses selected features to calculate the market penetration.
  • FALSE —Calculates the market penetration on all features. This is the default.
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.

  • TRUE —Uses selected features of the customer layer to calculate the market penetration counts.
  • FALSE —Calculates the market penetration counts based on all customer points. This is the default.
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.)

  • Simple XML —Enter "s.xml" for simple XML
  • PDF —Enter "pdf" for PDF
  • HTML —Enter "html" for HTML
  • CSV —Enter "csv" for CSV
  • ZIP —Enter "zip" for ZIP
  • XLSX —Enter "xlsx" for XLSX
  • Stripped XLSX —Enter "s.xlsx" for stripped XLSX
String
CreateReport
(Optional)

Generates a report.

  • True —Will generate a Summarize Points report. This is the default.
  • False —Will not generate a Summarize Points 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.8\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_2022/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

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

Related topics

  • An overview of the Trade Areas toolset

ArcGIS Desktop

  • Home
  • Documentation
  • Support

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

About Esri

  • About Us
  • Careers
  • Esri Blog
  • User Conference
  • Developer Summit
Esri
Tell us what you think.
Copyright © 2022 Esri. | Privacy | Legal