Skip To Content

Calculate Market Penetration

Summary

Calculates the market penetration based on the number of customers within an area compared to a demographic variable such as total population.

You can also calculate market penetration based on a weight field in the customer layer rather than customer counts—for example, you can calculate penetration based on total sales per household for each ZIP Code.

Usage

  • The layer used for calculating market penetration must be a polygon layer, such as a standard geography layer from Business Analyst or a trade area.

  • The polygon layer requires a numeric field with market information—for example, total households.

  • The customer layer must be a point feature class.

  • Use a trade area and specify a store ID for both the polygon layer and the customer layer to calculate the performance of your store trade areas.

  • All features from the input polygon layer will be used in the analysis. To improve performance, limit the features to the analysis area.

  • The Calculate Market Penetration tool creates the following fields:

    • BA_CUST—The number of customers in each trade area or boundary.
    • BA_TCUST—The total number of customers in the analysis.
    • BA_PCUST—The percentage of customers in each trade area boundary. The formula used is as follows: (BA_CUST/BA_TCUST) * 100
    • BA_CUSTW, BA_TCUSTW, and BA_PCUSTW—These fields are the same as the customer fields (CUST, TCUST, and PCUST) except these are based on weights. This is often sales per customer or an expenditure value.
    • BA_BASEVAL—The base market value for calculating penetration (total market count). This is often shown as total households or population. The market value is used as the denominator.
    • BA_MKT_P—The market penetration rate. The formula used is as follows: (BA_CUSTW/BA_BASEVAL) * 100. When customer counts are used in place of weighted values, the formula is (BA_CUST/BASEVAL) * 100.

Syntax

CalculateMarketPenetration_ba (in_features, out_feature_class, id_field, market_penetration_base_field, in_customer_features, {area_description_field}, {weight_field}, {create_report}, {store_id}, {link_field}, {report_title}, {report_folder}, {report_format})
ParameterExplanationData Type
in_features

The input feature class used for calculating market penetration.

Feature Layer
out_feature_class

The output feature class that contains the calculated market penetration features.

Feature Class
id_field

A unique ID field in the market penetration layer.

Field
market_penetration_base_field

The field containing the values used to calculate market penetration. This field will be used as the denominator and represents your market—for example, Total Population or Total Households.

Field
in_customer_features

The input feature class containing the points for the customer layer.

Feature Layer
area_description_field
(Optional)

The field used to describe each feature in the market penetration layer.

Field
weight_field
(Optional)

The field in the customer layer used as a weight to calculate market penetration rather than customer counts.

Field
create_report
(Optional)

Specifies whether a summary report will be created per boundary or by combining reports into a single report file.

  • CREATE_REPORTA summary report will be created.
  • DO_NOT_CREATE_REPORTA summary report will not be created. This is the default.
Boolean
store_id
(Optional)

A unique identifier associated with each store for each trade area.

Field
link_field
(Optional)

An ID that assigns a trade area to a customer.

Field
report_title
(Optional)

The title of the report.

String
report_folder
(Optional)

The output directory that will contain the report.

Folder
report_format
[report_format,...]
(Optional)

Specifies one or more output report formats. The default value is PDF.

String

Derived Output

NameExplanationData Type
output_report

The output report file.

File

Code sample

CalculateMarketPenetration example (stand-alone script)

The following Python window script demonstrates how to use the CalculateMarketPenetration tool.

import arcpy
arcpy.ba.CalculateMarketPenetration("UC_West", r"MyProject.gdb\UC_West", "id", "TOTHH_CY", "Cust_Points", "name", "Sales", "DO_NOT_CREATE_REPORT", None, None, None, None, None)

Environments

Licensing information

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

Related topics