The method is based on finding the solution to a linear equation with the following properties:

- The slope of the line is based on the distance involved, the speeds involved, and the cycle length of the signals.
- The y-intercept is based on the position of the first signal in the plan.
- Each signal should be as close as possible to a multiple of half the cycle length in travel time from the x-intercept.
- An error value is calculated for each signal. It is the signed distance (in half cycles) between the signal's location on the line and the nearest half cycle.
- A value that is half the absolute value of the error value is calculated to decide how to phase the signal.

Here is the method used in the progression web page on this site:

VARIABLE | VALUE | ||||||||
---|---|---|---|---|---|---|---|---|---|

Conversion Factor | Convert = 5280 / 3600 for mi/hr & ft | Convert = 1000 / 3600 for Km/hr & m | Convert = 1 for m/s & m, or ft/s & ft | ||||||

Cycle Length | CycLen Set by Engineer | 60 s | |||||||

Master Offset | MasOffset Set by Engineer | 0 | |||||||

VARIABLE | FORMULA | 1st St | 2nd St | 3rd St | 4th St | 5th St | 6th St | 7th St | 8th St |

Block Length | BlkLen Measured (first = 0) | 0 | 1320 | 1320 | 990 | 660 | 990 | 1320 | 1320 |

Speed | Speed Measured in block | 30 | 30 | 30 | 30 | 30 | 30 | 30 | 30 |

Split | Split Set by Engineer | 0.50 | 0.66 | 0.52 | 0.75 | 0.75 | 0.50 | 0.66 | 0.50 |

Cumulative Distance | CuDist(i) = CuDist(i-1) + BlkLen(i) | 0 | 1320 | 2640 | 3630 | 4290 | 5280 | 6600 | 7920 |

Adjusted Speed | AdjSpd = Speed * Convert | 44 | 44 | 44 | 44 | 44 | 44 | 44 | 44 |

Travel Time | TravTim = CuDist / AdjSpd | 0 | 30 | 60 | 82.5 | 97.5 | 120 | 150 | 180 |

Distance in Cycles | DstCyc = TravTime / CycLen | 0 | 0.5 | 1 | 1.375 | 1.675 | 2 | 2.5 | 3 |

Distance in Half Cycles | DstHlfCyc = DstCyc * 2 | 0 | 1 | 2 | 2.75 | 3.25 | 4 | 5 | 6 |

Offset Half Cycles | OSHlfCyc = DstHlfCyc + MasOffset | 0 | 1 | 2 | 2.75 | 3.25 | 4 | 5 | 6 |

Closest Half Cycle | ClosHlfCyc = FLOOR(OSHlfCyc + 0.5, 1) | 0 | 1 | 2 | 3 | 3 | 4 | 5 | 6 |

Half Cycle Error | HlfCycErr = OSHlfCyc - NearHlfCyc | 0 | 0 | 0 | -0.25 | 0.25 | 0 | 0 | 0 |

Half Cycle Nearness | HlfCycNear = ABS(HlfCycErr / 2) | 0 | 0 | 0 | 0.125 | 0.125 | 0 | 0 | 0 |

Bandwidth | Bandwid = Split - 2 * ABS(HlfCycNear) | 0.50 | 0.66 | 0.52 | 0.50 | 0.50 | 0.50 | 0.66 | 0.50 |

Entire Bandwidth | EntBandwid = MIN(Bandwid) | 0.50 |

**The conversion factor (Convert)**The conversion factor is used to compensate for the use of different units of measure for speed and distance:

- If meters per second and meters are used the conversion factor is 1.
- If kilometers per hour and meters are used, the conversion factor is 1000/3600.
- If feet per second and feet are used, the conversion factor is 1.
- If miles per hour and feet are used, the conversion factor is 5280/3600.

One of these four systems must be chosen for the calculations.

**Cycle Length (CycLen)**For progression to occur, all of the progressed signals must be related by a common cycle length. This is the number of seconds from the end of the green on the progressed street for one cycle to the end of the green on the progressed street for the next cycle.

This is the reason the light stays green on the progressed street when no traffic is using the green at the moment. The signal must stay in synchronization with the other signals. Actuated signals can vary the amount of the other phases, but the end of the green for the progressed street must always be synchronized to the timing plan.

**Master Offset (MasOffset)**The master offset, in units of whole cycle lengths, adjusts the position of the timing plan, so the first signal does not have to be at a perfect half cycle position. All of the signals are adjusted by this amount.

**Block Length (BlkLen)**The block length is the distance (in the chosen unit of measure for distance) from one signal to the next. The first signal has a block length of zero. The second signal has the block length from the first signal to the second signal, etc.

**Speed (Speed)**The speed is the actual progression speed (in the chosen unit of measure for speed) in the block given. The second signal gets the actual speed over the section between the first signal and the second signal, etc. The first signal gets the same speed the second signal gets.

**Split (Split)**The split is the fraction of the cycle given to the progressed street. It must be between 0 and 1.

**Cumulative Distance (CuDist)**Cumulative Distance is the distance from the first signal to this signal.

**Adjusted Speed (AdjSpd)**This is the speed, but converted to feet/second or meters per second.

**Travel Time (TravTim)**Travel Time is the time in seconds it takes to go at the selected speed from the first signal to this signal.

**Distance in Cycles (DstCyc)**Distance in Cycles is the time in cycle lengths it takes to go from the first signal to this signal.

**Distance in Half Cycles (DstHlfCyc)**Distance in Half Cycles is the time in half cycle lengths it takes to go from the first signal to this signal.

**Offset Half Cycles (OSHlfCyc)**Offset Half Cycles is the time in half cycle lengths it takes to go from the master offset point to this signal.

**Closest Half Cycle (ClosHlfCyc)**Closest Half Cycle finds the half cycle that is closest to the signal location in time.

**Half Cycle Error (HlfCycErr)**Half Cycle Error is the difference between the actual signal position in time and the nearest half cycle, in half cycles.

**Half Cycle Nearness (HlfCycNear)**Half Cycle Nearness is the value used to calculate the best phasing for the intersection. Its values range between 0 and 0.25:

- If HlfCycNear is less than 1/9, a single phase for the progressed road is indicated. This is the best case.
- If HlfCycNear is between 1/9 and 2/9, a lead-lag left turn phasing is indicated. This is where double alternate progression works best.
- If HlfCycNear is greater than 2/9, split phase or two greens per cycle is indicated. This is the worst case.

These limits were chosen to make the software easier to write. But they cover the value range quite well.

**Bandwidth (Bandwid)**This is the portion of a cycle useful to progressed cars. Note that a negative value becomes zero.

**Entire Bandwidth (EntBandwid)**This is the smallest of the bandwidth calculations. It gives the overall bandwidth available as a fraction of the cycle length.

The time-space diagram is the tool traditionally used to figure progression before computers were commonly used in traffic engineering.

How it works.

- Upper Diagram - The Time-Space Diagram:
- The horizontal axis shows the distance between signals, adjusted for speed.
- The vertical axis shows the passage of time, with time flowing upward.
- The diagonal lines are at the slope of the calculated line.
- The white bands are the green times.
- The dark blue-green areas are the spaces between the platoons.
- The red bars are red lights at the intersections.
- The cyan bars are places where a leading left turn stopping traffic on the colored side is appropriate.
- The magenta bars are places where a lagging left turn stopping traffic on the colored side is appropriate.

- Lower Diagram - The Method Used in the Program:
- The red trace is Half Cycle Error (HlfCycErr), measured in half cycles.
- The blue trace is Half Cycle Nearness (HlfCycNear)
Half Cycle Nearness is the value used to calculate the best phasing for the intersection. Its values range between 0 and 0.25, measured in half cycles. The following table shows the best phasings:

RANGE | INDICATED PHASING |
---|---|

0.0 | |

Best |
Single phase for progressed road. |

0.111 (1/9) (Alternate value: 0.1) | |

Medium |
Lead-lag phasing Single lead Single lag |

0.222 (2/9) (Alternate value: 0.2) | |

Worst |
Split-Phase Double green cycle Diverging Diamond Interchange |

0.250 (1/4) |

Links: