How Generate Threshold Drive Times works

Available with Business Analyst license.

The Generate Threshold Drive Times tool allows you to generate drive-time trade areas that use the street network and expand outward until the threshold criterion is reached. The size of the output polygon is determined by the value provided in the Threshold Values parameter for the selected threshold variable from the Business Analyst dataset.

Generate Threshold Drive Times is dependent on the input point feature class, the threshold variable, and the threshold values. Because the geoprocessing tool has distance-based parameters, it uses the network dataset to perform the solve.

Algorithm details

The concept of a root-finding algorithm is used in the Generate Threshold Drive Times tool. While the goal of a root-finding algorithm is to find the zeros for function F(t), the algorithm implemented in this tool is optimized, and the goal is to reach close to the minimum of function F(t) instead of exactly zero.

Algorithm formula

  • THvalue—Threshold value (constant), provided by the user.
  • THvariable—Threshold variable used in the analysis, for example, 2021 Total Population. The DTpoly will be enriched with this variable at each iteration.
  • DTpoly(Point(xy),t)—Drive-time polygon around point with coordinates (xy) and distance unit value (t).

The algorithm is iterative, and the end goal is to find distance unit (t), where F(t) is equal to almost zero (or zero). At each iteration, the algorithm computes a new estimate of (t), calculates the new value of F(t), and checks the different stop conditions. The iteration stops when any of the stop conditions (listed below) is met. The value of distance unit (t) is then used to generate a drive-time polygon surrounding the traversable streets. This polygon is then apportioned and enriched with the threshold variable, and the enriched value is closer to the threshold value.

The following parameters in the geoprocessing tool are stop conditions for the root-finding algorithm:

  • Iterations Limit—The number of iterations to find the distance unit value (t) where F(t) is zero. This is an optional parameter.
  • Minimum Step—The minimum distance units between one threshold area candidate and the next as the model approaches the threshold value to prevent infinite iterations. This is an optional parameter.
  • Threshold Percent Difference—The maximum percentage difference between the target value and threshold value that will be used when determining the threshold drive time, for example, 5 percent. The default value is 5.

As the algorithm is optimized to reach the minimum of function F(t), the root-solving algorithm will not always reach zero. This is because the iterations can continue indefinitely in trying to reach exactly zero, which will impact the performance of the tool. To avoid this, the tool will iterate until the minimum step between two iterations is 2 seconds or 22 meters. The default minimum step will be overridden if a user inputs a different value.

The distance unit value (t) from the root-finding algorithm is used to generate the drive-time polygons, which are based on the Service Area algorithm. The goal of the Service Area algorithm is to return a polygon containing the subset of connected edge features such that they are within the specified network distance or cost cutoff.

Example tool workflow

Consider an analysis in which you are looking for an optimal location for a new community center. Based on previous analysis, you know that the total number of households that are required to support the new community center is 7,000. Using this information, you can use the Generate Threshold Drive Times tool to visualize the trade areas from which people will travel toward the community center and how long it will take them.

Locate the prospective locations on the streets network

Because the Generate Threshold Drive Times tool contains distance-based parameters that use the network dataset, the proposed community centers first need to be snapped onto the streets that make up the network dataset.

Iterate time values, drive-time trade areas, and apportionment

The tool then adopts the root-finding algorithm and iterates multiple times until function F(t) equals zero. For each value of time (t) that the root solving algorithm iterates through, the solver creates a drive-time trade area using time value (t). It then enriches each trade area with the threshold variable (for this example, 2021 Total Households). This iteration continues until F(t) equals zero (or almost zero). At this point, the solver now has a time value (t) that will be used in the next step.

Solve drive-time trade area with time (t) where F(t) equals zero

Once the time value (t) is found where function F(t) is equal to zero (or almost zero), a final drive-time trade area is created around the input proposed community centers.

The following image shows the drive-time polygons that are generated around the two input community centers:

Drive-time polygons around two community centers

You can see that the two polygons are not the same size. The reason for this is that Uptown Charlotte (lower left polygon) has a greater population density, which means higher total households in smaller areas, as compared to the Charlotte suburbs. In terms of the algorithm, this means that the root-solving algorithm found different values of (t) for the two input community centers, where F(t) equals zero.

Enrich the threshold variable

The drive-time trade areas are then enriched with the threshold variable (2021 Total Households) using the block apportionment method. The apportionment method is dependent on the size of the trade area and the extent of the analysis.

Output geometry and attributes

The solver generates the polygons around each input point and generates key attribute information within the attribute table of the polygon layer.

For the above analysis, the key attributes are as follows:

Output attribute table

2021 Total Households and Actual Value—These fields have the enriched value for the drive-time polygon that was created around each community center. These values are close to the threshold value of 7,000, but the areas that capture the total households are different in size.


The field name 2021 Total Households appears in the table because 2021 Total Households was used as the threshold variable in this analysis. Depending on the threshold variable you choose, the appropriate field will be generated in the output layer.

Radius and Radius Units—The Radius field has the time value where F(t) was close to zero. The drive-time trade area around the community center was created using this value. The Radius Units field shows the units of measurement for the trade area. Radius units are dependent on the Distance Type and Distance Units parameters used in the tool.

You can see how the Radius values are different for the two input community centers, while the areas still capture approximately 7,000 households. The community center in Uptown Charlotte will need household population to drive only 3.17 minutes to meet the threshold, while the community center in Concord (Charlotte suburb) requires household population to drive 6.3 minutes to meet the threshold.

The above analysis allows the decision makers to visualize the trade areas by considering the underlying demographics and the actual road network around the proposed community centers. The trade areas from the Generate Threshold Drive Times tool can further be analyzed to choose the optimal site for the new community center.

Related topics

In this topic
  1. Algorithm details