Four Step Model Example
GIS Toolbox Demonstration
Introduction
This document demonstrates how to use the Four Step Model GIS Toolbox to forecast trips taken by car, walking,
bicycling, and bus. The toolbox includes five tools: one tool to create skim matrices and a tool for each step of the
four-step model (See Figure 1). The tools and example results are described below. 1 The toolbox can be used with
ArcGIS Pro 2.6. The toolbox does not need installation, but rather can be run from any directory.
• Download the zip file. Extract and move only the extracted folder into your OneDrive folder for this course.
• Create a new project in ArcGIS Pro, call it FourStepExample
• Add Folder Connection to your Data folder and the Four Step Model GIS Toolbox folder.
• Before you begin review the suggested output file names on the last page of this document.
Figure 1. Four Step Model GIS Toolbox
Figure 2a shows seven Traffic Analysis Zones (TAZs) for Moab, Utah. The TAZ boundaries correspond to Census
Block Groups. Table 1 shows demographic and business data that were collected through surveys for each zone.
This data can be found in the corresponding GIS geodatabase. The geodatabase also includes a feature class for the
street network. There are various fields associated with the street links, including length in feet and travel time in
minutes to traverse a link via each of the four modes. Car travel time is based on link speed limit. Walk travel time
was calculated using a walking speed of 3 mph. Bike travel time was calculated using a bicycling speed of 7 mph.
An extra 10% and 25% travel time per roadway lane was added to links to account for the added “cost” of walking
and bicycling along roads, respectively (i.e. off-street pathways are preferred, and more lanes means more “cost”).
Bus travel time is equal to car travel time along the bus route and equal to walking travel time everywhere else.
a. Traffic Analysis Zones b. Street Network
Figure 2. Study Area
1 This toolbox and fabricated example were created by Mike Lowry to teach the concepts of the four-step model.
Page 1 of 8
Table 1. TAZ Demographic and Business Data
TAZ FIPS Businesses Population Median_Income Num_Cars
1 490190002002 44 1315 46250 362
2 490190003003 12 1920 48421 979
3 490190003002 32 1312 28854 633
4 490190002004 217 964 33512 288
5 490190002003 2 1150 51667 518
6 490190003001 87 2177 59279 771
7 490190002001 50 706 49900 102
a. Bikeways b. Bus Route
Figure 3. Bikeways and Bus Route
Step 1. Trip Generation
A similar-sized rural town used travel diary data to calibrate (i.e. create) a similar four-step travel demand model.
For this demonstration, we will apply (i.e. use) their model, including the following equations for trip generation.
These equations forecast productions and attractions from home to work for a zone on a weekday.2 The units are
trips/day.
𝑃𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑜𝑛𝑠 = 0.65𝑥1 + 1.1𝑥2 + 0.0025𝑥3 + 0.8𝑥4
𝐴𝑡𝑡𝑟𝑎𝑐𝑡𝑖𝑜𝑛𝑠 = 31.9𝑥1 + 0.004𝑥2 + 0.001𝑥3 + 0.002𝑥4
where
𝑥1 = Number of Businesses
𝑥2 = Population
𝑥3 = Median Income
𝑥4 = Number of Cars
• Use the Trip Generation Tool to forecast Productions. Then, use the tool again to forecast Attractions.
2 Travel demand modeling is typically run multiple times for different trip purposes, such as home to work, work to home, and
from a non-home location to non-home location.
Page 2 of 8
• Check that your results match those shown in Table 2 and Figure 4 (Note the symbology color in Figure 4b was
manually changed to hues of red for the attractions).
Table 2. Results from Trip Generation
TAZ Production Attraction
1 1880 1456
2 3024 441
3 2043 1056
4 1516 6960
5 1810 121
6 3216 2845
7 1015 1648
a. Productions b. Attractions
Figure 4. Results from Trip Generation
• Label the zones with Production. Now label with Attraction. Now label with TAZ ID
• Create a figure using ArcGIS Pro that shows a bar chart over each zone for Productions and Attractions. Identify a
TAZ that is skewed toward production. Identify a TAZ that is skewed toward attraction. Identify a TAZ that is
relatively balanced.
Step 2. Trip Distribution
Before you can proceed to the next step, you must first create a skim matrix for the friction between zones.
• Use the Create Skim Matrix Tool to create an Excel file for the friction factors. Use the link length in feet to create
the zone to zone friction distances. For the output parameter, navigate to the desired output folder and name the
file “ZoneToZone_Distance” (The extension .xlsx will be automatically added to the file name that you provide.)
• Check that your friction factors match those shown in Figure 5.
Page 3 of 8
Destination
1 2 3 4 5 6 7
1 1232.78 21431.98 22199.00 8422.39 2465.56 10870.62 9989.14
2 21431.98 6634.67 15045.67 14023.48 23652.46 13269.34 14329.42
3 22199.00 15045.67 5664.19 15174.71 23964.07 11328.38 15991.80
Origin
4 8422.39 14023.48 15174.71 1923.16 10642.87 3846.33 4713.94
5 2465.56 23652.46 23964.07 10642.87 1232.78 12635.69 12209.62
6 10870.62 13269.34 11328.38 3846.33 12635.69 1923.16 8238.07
7 9989.14 14329.42 15991.80 4713.94 12209.62 8238.07 2356.97
Figure 5. Zone to Zone Friction Factors (Distance in Feet)
• Use Trip Distribution Tool to create an Origin-Destination (OD) Trip Matrix. Name the output file
“All_Modes_OD_Trip_Matrix”.
The tool uses the following gravity model to distribute productions from all zones to all zones:
𝐴𝑗 𝐹𝑖𝑗
𝑇𝑖𝑗 = 𝑃𝑖 ∗
∑𝑗 𝐴𝑗 𝐹𝑖𝑗
where
𝑃𝑖 = the number of trips produced at origin i.
𝐴𝑗 = the number of trips attracted to destination j.
𝑇𝑖𝑗 = the number of trips going from i to j.
𝐹𝑖𝑗 = the friction factor (distance, time, and/or "cost") between i and j.
• Check that your OD trips match those shown in Figure 6.
The output is the OD trips (for all modes combined).
• How many trips are going from zone 2 to zone 4?
Destination
1 2 3 4 5 6 7
1 18 67 166 941 3 490 196
2 319 22 117 1628 25 621 292
3 220 33 29 1173 17 353 217
Origin
4 238 87 224 423 22 341 182
5 28 59 142 941 1 450 189
6 515 138 280 1420 43 286 533
7 115 36 96 423 10 298 37
Figure 6. OD Trip Matrix for All Modes
Step 3. Mode Split
Before you can proceed to the next step, you must first create four more skim matrices for zone to zone travel time
by each mode.
• Use the Create Skim Matrix Tool to create four Excel files for the zone to zone mode travel times. Use the mode link
travel time for each mode’s impedance. Name the files “ZoneToZone_TravelTime_Car”,
“ZoneToZone_TravelTime_Walk”, “ZoneToZone_TravelTime_Bike”, and “ZoneToZone_TravelTime_Bus”.
• Check that your skim matrices match those shown in Figure 7.
Page 4 of 8
1 2 3 4 5 6 7 1 2 3 4 5 6 7
1 0.466962 8.241698 6.03237 3.162973 0.933923 3.521591 4.039694 1 7.004423 64.39432 59.90332 26.15479 14.00885 23.76377 40.76005
2 8.241698 2.360628 4.960599 5.487185 9.175621 4.721256 5.831445 2 64.39432 20.31527 73.91232 44.08149 74.348 40.63055 58.34961
3 6.03237 4.960599 1.25539 3.916603 6.966293 2.510779 5.396504 3 59.90332 73.91232 18.06977 41.95236 69.857 36.13955 56.22049
4 3.162973 5.487185 3.916603 0.702912 4.096896 1.405824 2.043322 4 26.15479 44.08149 41.95236 3.796362 36.46814 7.592723 21.18129
5 0.933923 9.175621 6.966293 4.096896 0.466962 4.455514 4.973617 5 14.00885 74.348 69.857 36.46814 7.004423 33.71745 51.0734
6 3.521591 4.721256 2.510779 1.405824 4.455514 0.702912 3.302693
6 23.76377 40.63055 36.13955 7.592723 33.71745 3.796362 22.19799
7 4.039694 5.831445 5.396504 2.043322 4.973617 3.302693 1.021661
7 40.76005 58.34961 56.22049 21.18129 51.0734 22.19799 10.59064
a. Car travel times. b. Bus travel times.
1 2 3 4 5 6 7 1 2 3 4 5 6 7
1 7.004423 110.2703 124.6743 40.23624 14.00885 57.35901 53.24472 1 4.002528 59.35369 69.00131 20.47311 8.005055 30.60505 29.34749
2 110.2703 37.59807 90.44545 75.19613 116.6163 82.4149 81.41715 2 59.35369 20.70337 53.09988 41.40674 61.26312 49.10021 46.52409
3 124.6743 90.44545 39.30195 89.60014 131.0203 78.6039 95.82116 3 69.00131 53.09988 24.49227 51.05437 70.91074 48.98455 56.17171
4 40.23624 75.19613 89.60014 11.14241 46.58221 22.28482 26.20179 4 20.47311 41.40674 51.05437 6.329054 22.38254 12.65811 14.75734
5 14.00885 116.6163 131.0203 46.58221 7.004423 63.70499 59.5907 5 8.005055 61.26312 70.91074 22.38254 4.002528 32.51448 31.25693
6 57.35901 82.4149 78.6039 22.28482 63.70499 11.14241 46.12235
6 30.60505 49.10021 48.98455 12.65811 32.51448 6.329054 25.51965
7 53.24472 81.41715 95.82116 26.20179 59.5907 46.12235 13.1009
7 29.34749 46.52409 56.17171 14.75734 31.25693 25.51965 7.378671
c. Walk travel times. d. Bike travel times.
Figure 7. Travel time skim matrices for each mode.
A similar-sized rural town used travel diary data to calibrate (i.e. create) a multinomial discreet choice model. We
will apply (i.e. use) their model. The utility for each mode from zone to zone is calculated as:
𝑈𝑡𝑖𝑙𝑖𝑡𝑦𝑖𝑗𝑚 = −0.31𝑥1 − 6.2𝑥2 − 3.6𝑥3 − 4.8𝑥4
where
𝑈𝑖𝑗𝑚 = the utility for mode m from i to j.
𝑥1 = the travel time (minutes) for mode m from i to j.
𝑥2 = Indicator variable for car. Takes the value 0 or 1.
𝑥3 = Indicator variable for bike. Takes the value 0 or 1.
𝑥4 = Indicator variable for bus. Takes the value 0 or 1.
The variables 𝑥2 , 𝑥3 , and 𝑥4 are indicator variables representing the additional disutility (i.e. “cost) inherent to each
mode, comparison to walking which is the base mode. These coefficient account for things such as the fuel cost,
finding parking, sweating on your bike, and sitting on a crowded bus. They are all negative values because there is
a “cost” to travel (if we could teleport to our destination we would!). Walking is the “base” mode (or “default”
mode) which means the utility of the other modes are in comparison to walking. In the Mode Split tool one of the
modes must have zero to indicate which mode is the base mode coefficient, usually walking is the base mode.
• Use the Mode Split Tool to determine OD trips for each mode. Name the output file “Each_Mode_OD_Trip_Matrix”.
The tool will calculate the utility for each mode between every zone combination and then calculate the probability
of using each mode to travel from zone i to zone j, as follows:
𝑒 𝑈𝑖𝑗𝑚
𝑃𝑟𝑜𝑏𝑎𝑏𝑖𝑙𝑖𝑡𝑦𝑖𝑗𝑚 =
∑𝑚𝑜𝑑𝑒𝑠 𝑒 𝑈𝑖𝑗𝑚
• Check that your results match those shown in Figure 8 and Figure 9.
Page 5 of 8
1 2 3 4 5 6 7 1 2 3 4 5 6 7
1 0 67 166 878 0 485 195 1 0 0 0 3 0 4 0
2 319 21 117 1628 25 621 292 2 0 0 0 0 0 0 0
3 220 33 28 1173 17 353 217 3 0 0 1 0 0 0 0
4 222 87 224 17 21 123 118 4 1 0 0 27 0 73 1
5 3 59 142 898 0 449 188 5 0 0 0 0 0 0 0
6 510 138 280 513 43 12 519 6 4 0 0 306 0 18 6
7 114 36 96 273 10 290 3 7 0 0 0 3 0 3 1
a. Car trips. b. Bus trips.
1 2 3 4 5 6 7 1 2 3 4 5 6 7
1 16 0 0 4 2 0 0 1 1 0 0 55 0 1 1
2 0 0 0 0 0 0 0 2 0 1 0 0 0 0 0
3 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0
4 1 0 0 337 0 94 32 4 14 0 0 41 1 51 31
5 22 0 0 1 1 0 0 5 4 0 0 42 0 1 1
6 0 0 0 391 0 228 0 6 2 0 0 211 0 28 7
7 0 0 0 75 0 0 29 7 1 0 0 71 0 4 5
c. Walk trips. d. Bike trips.
Figure 8. OD Trip Matrix for Each Mode.
Figure 9. Mode Share for Each Zone
• How many trips are expected by bicycle from zone 5 to zone 4?
• What is the overall mode share?
Step 4. Route Assignment
The final step forecasts the routing of all trips throughout the network. The analysis must be repeated four times,
once for each mode.
• Use the Route Assignment Tool to forecast the trips on the segments. Use the mode link travel time for each
mode’s impedance. Name the fields “Volume_Car”, “Volume_Walk”, “Volume_Bike”, and “Volume_Bus”.
• Check that your results match those shown in Figure 10 (Note the symbology color was manually changed for all
modes).
Page 6 of 8
a. Car trips. b. Bus trips.
c. Walk trips. d. Bike trips.
Figure 10. Trip Routing for Each Mode.
Next in the Modeling Process
The 4-steps are repeated for other trip purposes (this example was for trips from home to work). Then, the 4-steps
are repeated for “external trips”, i.e. trips that enter or exit the study area. For this location, external trips are those
that enter or exit the town on Highway 191 north of town or south of town. After all runs are complete, the route
assignment values are summed to estimate the total daily volume on every link of the street network.
Next, everything is repeated again for different scenarios. For example, a scenario might be “twenty years into the
future” or scenarios for “with” and “without” a proposed light rail system. Each scenario will have different input
data for the TAZs and/or street network. For example, the population in one of more zones might be expected to
increase by a growth factor or perhaps more businesses are expected in a certain zone because of the zoning
defined in the city’s comprehensive plan. Likewise, the street network might be changed with new links or the
attributes of the links could be changed, such as number of lanes and speed limit. Scenarios can even be analyzed
for proposed policies that are expected to change travel behavior. For example, suppose a local fuel tax has been
proposed and research suggests this will decrease the utility coefficient for car from -6.2 to -8.1.
• Run the Mode Split tool again with the car utility coefficient as -8.1. Compare the results.
• Create a new column in the TAZ feature class called Pop_Future that is equal to Population*1.5. Now, run the Trip
Generation tool for Productions again and compare the results.
Page 7 of 8
Suggested Names for Output Excel Files
The .xlsx extension will be added automatically.
Output from Trip Distribution
Output from Mode Split
Output from Create Skim Matrix
Page 8 of 8