Urban Economics & Congestion Pricing
Vickrey Bottleneck Congestion & Dynamic Toll Formula
Calculate Vickrey’s (1969) equilibrium rush-hour commute cost delta*(N/s), peak queue length, and pure queuing deadweight loss eliminated by a dynamic congestion toll.
Show how Vickrey’s time-varying toll eliminates 100% of rush-hour queuing without raising commuter cost!
In William Vickrey’s (1969) bottleneck departure-time model, N commuters share a preferred arrival time t* across a bridge of capacity s cars/hr, valuing in-vehicle waiting time at alpha/hr, early arrival at beta/hr (0 < beta < alpha), and late arrival at gamma/hr. Defining harmonic schedule-delay cost delta = (beta * gamma) / (beta + gamma), untolled departure competition equalizes every commuter’s generalized cost at C_eq = delta * (N / s) — split 50/50 between schedule inconvenience and pure deadweight bottleneck queuing! Replacing that queue with a triangle dynamic toll peaking at delta * (N / s) at t* eliminates the queue completely (L_max = 0), leaves every commuter’s out-of-pocket + schedule cost unchanged at C_eq, and recovers 0.5 * delta * (N^2 / s) in public toll revenue!
Verify on N = 6,000 commuters (B2), bridge capacity s = 3,000 cars/hr (B3 -> 2.00-hour rush window), waiting-time value alpha = 20/hr (B4), early-arrival cost beta = 10/hr (B5), and late-arrival penalty gamma = 40/hr (B6): composite schedule factor is delta = (10 * 40) / 50 = 8.00/hr, individual equilibrium trip cost is 8.00 * 2.00 = 16.00, untolled peak queue reaches (8 / 20) * 6,000 = 2,400 cars (48-minute peak wait!), and Vickrey’s dynamic toll eliminates 0.5 * 8.00 * (36,000,000 / 3,000) = 48,000.00/morning of wasted queuing time!
| Vickrey Bottleneck Metric (N=6,000, s=3,000, a=20, b=10, g=40) | Formula | Verified Output |
|---|---|---|
| Composite Schedule Parameter (delta) | (beta * gamma) / (beta + gamma) | 8.00 / hr |
| Equilibrium Generalized Cost (C_eq) | delta * (N / s) | 16.00 per commuter |
| Untolled Peak Bottleneck Queue | (delta / alpha) * N | 2,400.00 vehicles |
| Daily Queuing DWL Saved by Dynamic Toll | 0.5 * delta * (N^2 / s) | 48,000.00 / morning |
Vickrey Equilibrium Commuter Generalized Cost delta * (N / s) Formula
Enforce physical departure-ordering stability 0 < beta < alpha (if beta >= alpha, commuters would arrive simultaneously in a mass jump rather than a smooth departure rate!).
=LET(n_cm, B2, s_cp, B3, al_t, B4, bt_e, B5, gm_l, B6, IF(OR(n_cm <= 0, s_cp <= 0, bt_e <= 0, al_t <= bt_e, gm_l <= 0), "Require 0 < beta < alpha and Positive Inputs", LET(dl_sc, (bt_e * gm_l) / (bt_e + gm_l), ROUND(dl_sc * (n_cm / s_cp), 4))))Aggregate Daily Queuing Deadweight Loss Eliminated 0.5 * delta * (N^2 / s) Formula
Notice that doubling bottleneck capacity s cuts aggregate queuing waste in half, whereas a dynamic Vickrey toll eliminates 100% of queuing waste with zero concrete poured!
=LET(n_cm, B2, s_cp, B3, al_t, B4, bt_e, B5, gm_l, B6, IF(OR(n_cm <= 0, s_cp <= 0, bt_e <= 0, al_t <= bt_e, gm_l <= 0), "Require 0 < beta < alpha and Positive Inputs", LET(dl_sc, (bt_e * gm_l) / (bt_e + gm_l), ROUND(0.5 * dl_sc * ((n_cm^2) / s_cp), 2))))Try the example
Use the original values or change them to test your understanding.