ibano
← All insights

Signalized intersection capacity per the HCM: from saturation flow to control delay

How the Highway Capacity Manual turns a base saturation flow into capacity, v/c, control delay and level of service at a signalized intersection, worked end to end on one hypothetical lane group with the HCM 2000 closed-form equations, with notes on where the closed-form textbook method stops being enough.

·

Worked examples are illustrative and are not sealed engineering documents. Site-specific analysis requires a licensed engineer in the relevant jurisdiction. Regulatory references to other jurisdictions (e.g. California) are descriptive. Valerio Oricchio P.E.

1. The problem

A signalized-intersection study usually ends in one letter: the level of service (LOS). That letter comes from a chain of quantities: saturation flow, effective green, capacity, volume-to-capacity ratio and control delay. Each link rests on assumptions (lane use, heavy vehicles, controller type, analysis period, arrivals) that rarely appear on the summary sheet but can move the result by a full grade.

The US reference is the Highway Capacity Manual (HCM), published by the Transportation Research Board (TRB). The current edition is the HCM 7th Edition (2022), A Guide for Multimodal Mobility Analysis, a three-volume set [1]. The publisher’s page also lists an Edition 7.1 set of replacement chapters (Chapters 13, 14, 27 and 28); no 8th edition was listed when this article was written [1]. In the 7th Edition, signalized intersections are covered in Chapter 19. Wisconsin DOT, for example, accepts “the HCM, Chapter 19 methods” for signalized intersections and requires HCM7 methods for projects started on or after 1 January 2023, unless its regional traffic staff authorize otherwise [2].

This article walks through the classical closed-form chain, works one hypothetical lane group in Python, and shows where that method is enough and where it is not. The equations are the HCM 2000 Chapter 16 forms [3], also reproduced in public teaching and agency material [4][5]; the LOS thresholds are checked against agency documents citing the HCM 6th and 7th Editions [6][7]. The current Chapter 19 procedure is not reproduced here and may differ in factors, defaults and steps, so check the edition your agency requires before relying on any single value.

2. Definitions

  • Lane group: one or more lanes on an approach that are analyzed together for capacity and delay.
  • Saturation flow rate, s (veh/h): the equivalent hourly rate at which vehicles can pass through the intersection approach under prevailing conditions [5].
  • Base saturation flow rate, s0: “usually 1,900 passenger cars per hour per lane (pc/h/ln)” in HCM 2000 [3]. The same value is used in FHWA’s HPMS application of the method [8].
  • Effective green, g: the part of the cycle that the movement can actually use, after start-up and clearance lost time [3][5].
  • Cycle length, C: the total signal cycle (s).
  • Capacity, c: the maximum rate at which vehicles can pass through the intersection under prevailing conditions, c = s(g/C) [5].
  • Volume-to-capacity ratio (degree of saturation), X: X = v/c. The FHWA Traffic Signal Timing Manual describes lane groups whose v/c exceeds 1.00 over the analysis period as oversaturated [5].
  • Control delay, d (s/veh): “the portion of delay that is attributable to the control device” [5]. Signalized LOS is based on this measure.

3. Method

3.1 Saturation flow

The HCM 2000 form (Eq. 16-4) is a base rate multiplied by a chain of adjustment factors [3]:

s = s0 · N · fw · fHV · fg · fp · fbb · fa · fLU · fLT · fRT · fLpb · fRpb

where N is the number of lanes in the group. The factors (HCM 2000, Exhibit 16-7, metric form) [3]:

Factor Expression (HCM 2000) Notes
fw, lane width 1 + (W − 3.6)/9 W in m, W ≥ 2.4 m
fHV, heavy vehicles 100 / [100 + %HV(ET − 1)] ET = 2.0 pc/HV
fg, grade 1 − %G/200 −6 ≤ %G ≤ +10
fp, parking (N − 0.1 − 18Nm/3600)/N 1.000 with no parking; fp ≥ 0.050
fbb, bus blockage (N − 14.4NB/3600)/N fbb ≥ 0.050
fa, area type 0.900 CBD; 1.000 elsewhere
fLU, lane utilization vg / (vg1 · N) vg1 = volume in the busiest lane
fLT, left turns 0.95 (protected, exclusive lane) permitted and shared cases use separate procedures
fRT, right turns 0.85 (exclusive lane) shared lanes use separate expressions
fLpb, fRpb pedestrian and bicycle blockage turning movements only

Note that fLU comes from the observed or forecast lane split; leaving it at 1.0 overstates the capacity of a multilane group with uneven lane use.

3.2 Capacity and v/c

c = s · (g/C)

(HCM 2000 Eq. 16-6) [3]

X = v / c

Here v is the demand flow rate for the analysis period, in veh/h.

3.3 Control delay

The HCM 2000 control delay (Eq. 16-9) has three terms [3]:

d = d1 · PF + d2 + d3

Uniform delay (Eq. 16-11), the Webster first term with X capped at 1:

d1 = 0.5 · C · (1 − g/C)^2 / [1 − min(1, X) · (g/C)]

Incremental delay (Eq. 16-12), which covers random arrivals and cycle failures [9]:

d2 = 900 · T · [ (X − 1) + sqrt( (X − 1)^2 + 8·k·I·X / (c·T) ) ]

with [3][4]:

  • T: analysis period in hours (0.25 h for 15 minutes);
  • k: incremental delay factor for controller type. “For pretimed signals, a value of k = 0.50 is used.” For actuated control, k is read from Exhibit 16-13 as a function of unit extension and X. It runs from 0.04 (unit extension ≤ 2.0 s, X ≤ 0.50) up to 0.50 at X ≥ 1.0 [3];
  • I: upstream filtering/metering factor. “For a signal analysis of an isolated intersection … a value of 1.0 for I is used” [3].

Initial queue delay, d3: if no queue is left over from the previous period, “a value of zero is used for d3” [3]. The worked example below assumes this. It is a real assumption, not a default to accept without checking (see Section 5).

Progression factor, PF: this adjusts d1 for the quality of signal coordination [4]. The example below is an isolated intersection, and PF = 1.0 is taken as an assumption.

3.4 Level of service

Signalized-intersection LOS criteria, as reproduced by agencies citing the HCM 6th Edition [6] and the HCM 7th Edition [7]:

Control delay (s/veh) LOS, v/c ≤ 1.0 LOS, v/c > 1.0
≤ 10.0 A F
> 10.0 – 20.0 B F
> 20.0 – 35.0 C F
> 35.0 – 55.0 D F
> 55.0 – 80.0 E F
> 80.0 F F

Both documents add a note: “For approach-based and intersection-wide assessments, LOS is defined solely by delay” [6][7]. The v/c > 1.0 rule therefore works at the lane-group level. A lane group with X above 1.0 is LOS F whatever its computed delay. HCM 2000 used the same delay thresholds without the v/c column [3][5].

4. Worked example (hypothetical)

All inputs are illustrative and do not describe any real intersection.

Inputs. Through lane group, N = 2 lanes, W = 3.6 m (fw = 1.000). Heavy vehicles 3% with ET = 2.0. Level grade (fg = 1.000). No parking (fp = 1.000), no bus stops (fbb = 1.000), non-CBD (fa = 1.000). No turning movements in the group, so fLT = fRT = fLpb = fRpb = 1.000. Demand flow rate v = 1,300 veh/h, of which 680 veh/h are in the busier lane. Pretimed control: C = 90 s, g = 40 s, k = 0.50, I = 1.0, T = 0.25 h, PF = 1.0, d3 = 0.

Step 1 — adjustment factors. fHV = 100/(100 + 3 × 1) = 0.9709. fLU = 1,300/(680 × 2) = 0.9559.

Step 2 — saturation flow. s = 1,900 × 2 × 1.000 × 0.9709 × 1.000 × 1.000 × 1.000 × 1.000 × 0.9559 = 3,527 veh/h (3,526.6 unrounded).

Step 3 — capacity and v/c. g/C = 40/90 = 0.4444; c = 3,526.6 × 0.4444 = 1,567 veh/h; X = 1,300/1,567.4 = 0.829.

Step 4 — delay. d1 = 0.5 × 90 × (1 − 0.4444)^2 / (1 − 0.829 × 0.4444) = 22.0 s/veh. d2 = 900 × 0.25 × [(0.829 − 1) + sqrt((0.829 − 1)^2 + 8 × 0.5 × 1.0 × 0.829/(1,567.4 × 0.25))] = 5.2 s/veh. d = 22.0 + 5.2 + 0 = 27.2 s/veh, so LOS C (X ≤ 1.0).

The calculation in Python:

import math

def los(d, X):  # LOS F if v/c > 1.0, else by delay band
    if X > 1.0: return "F"
    return next((g for lim, g in [(10,"A"),(20,"B"),(35,"C"),(55,"D"),(80,"E")] if d <= lim), "F")

fHV = 100 / (100 + 3 * (2.0 - 1))    # 3% HV, ET = 2.0
fLU = 1300 / (680 * 2)               # lane split
s = 1900 * 2 * 1.0 * fHV * fLU       # fw = fg = fp = fbb = fa = 1.0 -> 3526.6 veh/h

def evaluate(v, g, C=90, k=0.5, I=1.0, T=0.25, PF=1.0, d3=0.0):
    c = s * g / C
    X = v / c
    d1 = 0.5 * C * (1 - g / C) ** 2 / (1 - min(1, X) * g / C)
    d2 = 900 * T * ((X - 1) + math.sqrt((X - 1) ** 2 + 8 * k * I * X / (c * T)))
    d = d1 * PF + d2 + d3
    return c, X, d1, d2, d, los(d, X)

print(evaluate(1300, 40))  # c=1567.4, X=0.829, d1=22.0, d2=5.2, d=27.2, 'C'

4.1 Sensitivity to effective green (v = 1,300 veh/h, C = 90 s)

g (s) g/C c (veh/h) X d1 d2 d (s/veh) LOS
30 0.333 1,176 1.106 30.0 60.3 90.3 F
35 0.389 1,371 0.948 26.6 14.7 41.3 D
40 0.444 1,567 0.829 22.0 5.2 27.2 C
45 0.500 1,763 0.737 17.8 2.8 20.6 C
50 0.556 1,959 0.664 14.1 1.8 15.9 B

4.2 Sensitivity to demand (g = 40 s, C = 90 s, fLU held at 0.9559)

v (veh/h) c (veh/h) X d1 d2 d (s/veh) LOS
1,100 1,567 0.702 20.2 2.7 22.8 C
1,200 1,567 0.766 21.1 3.6 24.7 C
1,300 1,567 0.829 22.0 5.2 27.2 C
1,400 1,567 0.893 23.0 8.2 31.2 C
1,500 1,567 0.957 24.2 14.6 38.7 D
1,600 1,567 1.021 25.0 28.1 53.1 F
1,700 1,567 1.085 25.0 49.4 74.4 F

What the tables show:

  1. d2 drives the “cliff”. d1 changes little (and is capped at X = 1); d2 climbs steeply near X = 1. From X = 0.83 to 0.96, total delay rises about 42% (27.2 to 38.7 s/veh), mostly through d2.
  2. The v/c rule changes the answer. At v = 1,600 veh/h the delay (53.1 s/veh) falls in the D band, but X = 1.021 > 1.0, so the lane group is LOS F. A delay-only summary would show D.
  3. Five seconds of green is worth a grade. Going from g = 35 s to 40 s moves this lane group from D to C. Those 5 s come out of a conflicting phase, so the intersection must be evaluated as a whole.

5. Limitations: when the closed-form method is enough and when it is not

The Section 3 equations suit teaching, checking software output, and first-cut screening of isolated, clearly undersaturated lane groups with stable demand. They do not replace the current HCM procedure, or other tools, in these cases:

  • Oversaturation and residual queues. With d3 = 0, the period is assumed to start with no leftover queue. Quoting the HCM 6th Edition, Creasey and Sampson (ITE Journal, 2020) give the rule: “If the analysis period’s demand volume exceeds capacity, then a multiple time-period analysis should be undertaken” [9]. A single 15-minute run with X > 1 understates delay in the periods that follow.
  • Time-varying flows and progression. Webster’s d1 assumes a triangular queue under uniform arrivals. Strong, Rouphail and Courage showed the Webster formula “is simply a degenerate case” of a more general incremental queue accumulation (IQA) calculation, which replaces the triangle with trapezoids when flows change within the cycle [10]. Coordinated arterials, protected-permitted left turns and shared lanes depart from the triangle; use the current Chapter 19 procedure (or software implementing it) for them.
  • Actuated control. k and the green times both depend on detector and controller settings. Using pretimed k = 0.50 for an actuated movement overstates d2 when X is low [3].
  • Storage and spillback. The FHWA Traffic Signal Timing Manual notes that the HCM does not treat “the effect of queues that exceed the available storage bay length … in sufficient detail”. It adds that starvation from an upstream oversaturated signal is “often best analyzed using microsimulation” [5].
  • Edition consistency. The equations here are the HCM 2000 forms; later editions may define factors, defaults and delay steps differently. A review should check that the edition stated in a report matches the edition the software actually ran.

6. Practitioner checklist

  1. State the HCM edition (7th Edition, 2022, or the edition the agency requires) and the software version.
  2. Confirm the demand flow rate: hourly volume converted with the peak hour factor, or measured 15-minute counts.
  3. Check fLU against observed or forecast lane volumes; do not leave it at 1.0 by default for multilane groups.
  4. Check heavy-vehicle percentage and grade per approach, not one value for the whole intersection.
  5. Check effective green against the timing plan (phase splits, yellow, all-red, lost time).
  6. Use k values that match the controller type; use I = 1.0 only for a genuinely isolated intersection.
  7. Flag every lane group with X > 1.0 as LOS F, whatever its computed delay.
  8. If any X > 1.0, or if a queue is likely to carry over, run a multiple-period analysis and report d3.
  9. Compare estimated queues with available storage; use microsimulation where queues spill back or interact between intersections.
  10. Reproduce at least one lane group by hand, or with a short script like the one above, to catch input errors.

For an independent review of a study like this, see peer review or get in touch.

Sources

  1. Transportation Research Board / National Academies of Sciences, Engineering, and Medicine. Highway Capacity Manual 7th Edition: A Guide for Multimodal Mobility Analysis, 3 vols., 2022 (Edition 7.1 replacement chapters noted). https://www.nationalacademies.org/publications/26432
  2. Wisconsin Department of Transportation. Traffic Engineering, Operations and Safety Manual, Chapter 16, Section 15 (traffic analysis tools; HCM7 applicability), February 2025. https://wisconsindot.gov/dtsdManuals/traffic-ops/manuals-and-standards/teops/16-15.pdf
  3. Transportation Research Board. Highway Capacity Manual 2000, Chapter 16, Signalized Intersections (Eqs. 16-4, 16-6, 16-9, 16-11, 16-12; Exhibits 16-2, 16-7, 16-13), 2000. Course copy: https://www.civil.iitb.ac.in/tvm/ce774/2022/rblecnotes/16-HCM-2000-Ch-16-Singlized-Intersection_Read-p-1-to-47.pdf
  4. NPTEL (IIT Bombay). Traffic Signal Design, Module 7: Delay models (HCM 2000). https://archive.nptel.ac.in/content/storage2/courses/105101008/572_Delay_A/point8/point.html
  5. Federal Highway Administration. Traffic Signal Timing Manual, FHWA-HOP-08-024, Chapter 3, 2008 (archived; replaced by the Signal Timing Manual, Second Edition, NCHRP Report 812, 2015, https://www.nationalacademies.org/publications/22097). https://ops.fhwa.dot.gov/publications/fhwahop08024/chapter3.htm
  6. New York State Office of Parks, Recreation and Historic Preservation. Hudson Highlands Fjord Trail, Intersection Capacity Analysis Methodology (LOS criteria citing HCM 6th Edition). https://www.parks.ny.gov/documents/inside-our-agency/PublicDocuments/HudsonHighlandsFjordTrail/IIIIVL1IntersectionCapacityAnalysisMethodology.pdf
  7. AKRF. Traffic impact study, 1241 East Main Street, Stamford, CT (July 2025), Table 1, LOS Criteria for Signalized Intersections (citing HCM 7th Edition). Hosted by the City of Stamford, CT. https://www.stamfordct.gov/home/showpublisheddocument/47445/638991546996170000
  8. Federal Highway Administration. HPMS Field Manual, Appendix N (capacity estimation procedures; base saturation flow 1,900 pcphpl; factor list). https://www.fhwa.dot.gov/ohim/hpmsmanl/appn5.cfm
  9. Creasey, T., and Sampson, B. “Intersection Capacity Analysis: Are You Doing It Wrong?” ITE Journal, January 2020, pp. 35–39. https://www.caliper.com/pdfs/ite-january-2020-creasey-article.pdf
  10. Strong, D. W., Rouphail, N. M., and Courage, K. “New Calculation Method for Existing and Extended HCM Delay Estimation Procedures.” Paper 06-0106, TRB 85th Annual Meeting, 2006. https://www.strongconcepts.com/Publications/06PPR1TRB.pdf

Need this applied to your corridor?

Send the study scope and the data you have. You will get a reply within two working days.

Discuss a project