Synthetic Matrix Development


One of the most essential aspects of traffic modelling is the accurate distribution of traffic flows around a specified network. When working on dynamic assignment models, these flows are represented through origin-destination matrices (either through externally referenced .fma files, or through internal, embedded matrices).

Ideally, the data used to derive these matrices would be either Roadside Interview Surveys (RSIs) or Automatic Number Player Recognition Surveys (ANPRs). This is because the nature of these surveys provides a detailed representation of not only movement through a network, but also possible routes taken to get from start (origin) to finish (destination). Unfortunately, these surveys can be very expensive and do not always provide a large enough sample size, meaning that they need to be backed up by additional data sources which further increases the overall survey cost. Therefore, for reasons such as data limitations, budgetary constraints and client preferences, many traffic modelling projects require the development and use of ‘synthetic matrices’ to provide a distribution of traffic around the network.

These matrices are typically derived through an iterative process of ‘following’ volumes and movements through each series of adjacent junction turning counts in order to calculate the OD relationship. Although not as accurate as a ’true matrix’ based on RSIs and/or ANPRs, they provide a sensible approach in the absence of this more detailed information.

The following note provides a summary of the steps taken by Multimodal to develop the ‘synthetic matrices’ used in this study. For a more concise look at the methodology please refer to the flowchart at the end.

Please note that Microsoft Excel is used for the calculation of these matrices.

Step 1: Build Stick Diagram

A stick diagram that shows the general network structure, including junction type (Roundabout, T-Junction, Crossroads, Signalised, etc.) and connecting links. At this stage, consideration should be given to the scale of the stick diagram to ensure there is sufficient space to add traffic flows, turning movements, zoning and other annotations.

Step 2: Identify Zones

Once the study area is established, identify the zones required and add to the stick diagram. It is necessary to keep the numbering system identical to that used in the VISSIM microsimulation model to avoid unnecessary confusion.

Step 3: Identify Vehicle Types and Time Periods

Establish the resolution requirements of the matrix development, specifically the vehicle types and time periods for the created matrices. Typically, Multimodal develop matrices for the following vehicle types: Cars, LGVs, HGVs and Motorcycles. Data for each of these is split in 15-minute time slices. This normally includes around 15-30 minutes for warmup and cooldown periods and a 60/120 minute peak period.

Buses and other service vehicles are input separately as fixed static routes.

Step 4: Enter Traffic Data into Stick Diagram


Available traffic data such as Manual Classified Counts (MCCs) and Automatic Traffic Counts (ATCs) are added to the stick diagram. Also included are the % of vehicles making each turn. Using Excel functions, Match and Index, formulas are created so that the stick diagram can be populated with traffic flows by vehicle type and time period. The formulas are linked to a dropdown menu so that the user can easily switch between these.

Step 5: Identify Gaps in Data

At this stage, consulting the stick diagram, flow discrepancies between junctions are identified. Reasons for discrepancies can vary: adjacent junction flows collected on different days / months / years, intermediate junctions or side roads where vehicles enter / exit the network, etc.

Step 6: Add additional zones (Sinks)

The flow discrepancies mentioned above are generally accounted for by adding additional zones between junctions. The modeller should use their best judgement to determine how many additional zones should be added: will one zone suffice or is there local knowledge available that suggests two or more will be more appropriate?

Step 7: Build Matrix

In Step 7, the initial/ prior matrices for each vehicle type and time period are built based on the flow data included in the stick diagram. These bullet points summarise the process:

·         For each Origin-Destination (O-D) pair, identify the routes that vehicles will need to take to complete the journey. If there is a lot of route choice it may be necessary to discard some of the more unrealistic routes, similar to the iterative process which will happen to create suitable paths within VISSIM.

·         Take the Target Total IN (surveyed junction IN flow) for the Origin Zone and multiply by the relevant turning proportions encountered whilst moving through the network until reaching the Destination Zone. Repeat if there are multiple routes identified between zones.

·         Repeat this process for each O-D Pair until the overall matrix is populated with Actual Flows. Please remember that by including drop down menus, as mentioned above, this process does not have to be repeated for each vehicle type and time period as it should be automated when a different selection is made.

The following screenshot shows an example of this process:


Step 8: Matrix Flow Balancing

At this stage there are likely to be discrepancies between Target Flows (surveyed Junction IN and Out Flows) and Actual Flows (those calculated and populating the matrices). To solve this, the matrix rows and columns need balancing. This is done using the Furness Distribution Model as follows:

·         Starting first with the matrix rows (Origins) work out the % value of each cell relative to the total Actual Flow. As a check, the percentage sum for each row (Zone) should add up to 100%.

·         Multiply each cell percentage value by the Target Total Flow on each row. As a check the difference between Actual and Target Flows should now be zero on each row.

·         Now that the row balancing has been completed, the differences between the column Actual and Target Flows may have increased. Therefore, the same process needs to now be applied to columns only.

The following screenshots shows an example of this process:

  Matrix Row Balancing: Origins

Matrix Row Balancing: Origins

  Matrix Column Balancing: Destinations

Matrix Column Balancing: Destinations

Step 9: Iterative Furnessing

The process described in Step 8 above may need to be repeated several times until the results have normalised. From previous experience this should take approximately four iterations. Once a complete round of balancing is finished (both rows and columns), the matrices for each are then averaged. The desired difference between Actual and Target flows should at this stage be within 5%. This is based on the Table 1 Acceptability Guidelines of TAG Unit M3.1 (Section 3.2.5). If this is not the case, then further iterations may need to be carried out although this is not always a guarantee that results will significantly improve.

Step 10: Input Matrices

Once suitable matrices have been produced, these are ready to input into VISSIM, either directly, in version 9 and above, or as .fma files for older VISSIM versions. The flowchart below summarises these 10 steps.

  Synthetic Matrix Development Flowchart

Synthetic Matrix Development Flowchart

author Carl Moreno