80-20 Analysis (Crime Analysis and Safety)


Conducts an 80/20 analysis of features and determines cluster locations by creating a graduated symbol layer based on the number of incidents occurring at each location. The tool calculates a cumulative percentage field to identify the locations where incidents are disproportionately occurring.


  • The 80/20 rule is a theoretical concept in which a large majority of incidents occur at a small minority of locations, for example 80 percent of incidents at 20 percent of locations.

  • The output is sorted based on newly generated ICOUNT (cluster count), CUMU_PERC (cumulative percentage), and PERC (percentage) fields.

    • ICOUNT—The number of points found within the cluster tolerance for that cluster.
    • CUMU_PERC—The cumulative percentage of the current cluster point and all other larger cluster points. This value can be used to determine if a disproportionate number of cluster locations represent a larger proportion of crimes, for example, 20 percent of cluster locations contain 80 percent of total points.
    • PERC—The percentage of the total number of points found within the cluster tolerance for that cluster.
  • The output feature class will be symbolized by the ICOUNT (cluster count) field.


EightyTwentyAnalysis(in_features, out_feature_class, {cluster_tolerance}, {out_fields})
ParameterExplanationData Type

The input point features used to create clusters.

Feature Layer

The output point cluster feature class.

Feature Class

The maximum distance (meters, feet, kilometers, or miles) separating the points at which they will be considered part of the same cluster.

If no cluster tolerance is specified, the tool will identify features that are geometrically identical to cluster.

Linear Unit

The input feature fields that will be preserved. When no fields are preserved, no input feature fields will be copied to the output. This is the default behavior.


Code sample

EightyTwentyAnalysis example 1 (python window)

The following Python window script demonstrates how to use the EightyTwentyAnalysis function in immediate mode.

import arcpy
arcpy.env.workspace = r"C:/data/city_pd.gdb"
arcpy.ca.EightyTwentyAnalysis("CallsForService", "80_20_clusters")
EightyTwentyAnalysis example 2 (stand-alone script)

The following Python script demonstrates how to use the EightyTwentyAnalysis function in a stand-alone script.

# Name: EightyTwentyAnalysis.py
# Description: Conducts a 80/20 analysis of 911 calls to determine clusters of calls within 50 meters of each other.

# import system modules 
import arcpy

# Set environment settings
arcpy.env.workspace = r"C:\data\city_pd.gdb"

# Set local variables
in_features = "CallsForService"
out_feature_class = "80_20_clusters"
cluster_tolerance = "50 Meters"
out_fields = ["FULLADDR","RESCITY", "RESSTATE", "RESZIP5"]

# Execute EightyTwentyAnalysis

Licensing information

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

Related topics