Greenshields Flow–Density Parabola

Also known as flow density curve · fundamental diagram · Greenshields parabola · volume density parabola · q k curve · traffic fundamental diagram · uncongested and congested branch

q=vf(kk2kj)q = v_f\left(k - \frac{k^{2}}{k_j}\right)

Enter your known values, leave one input blank, and solves for the missing one. Try different units for next level excitement!

Learning zone

This is where the subject actually begins. Take the identity q=kvq = kv, substitute Greenshields' straight line for vv, and the flow becomes a quadratic in density: q=vf(kk2/kj)q = v_f(k - k^2/k_j). Plotted, it is a downward parabola. It starts at zero on an empty road — no vehicles, no flow. It ends at zero at jam density — plenty of vehicles, none of them moving. And in between it rises to a maximum. That picture is called the fundamental diagram, and almost everything worth knowing about uninterrupted traffic flow is visible in it.

The single most important consequence is the one this page's answer is built around. A parabola takes every value below its maximum twice. So for any flow below capacity there are two densities that carry it — one on the rising left-hand limb and one on the falling right-hand limb — and the equation cannot tell you which one you are looking at. Take a road with vf=90v_f = 90 km/h and kj=150k_j = 150 veh/km. At 30 veh/km the flow is 2160 veh/h and traffic is moving at 72 km/h. At 120 veh/km the flow is also 2160 veh/h, and traffic is crawling at 18 km/h. Four times the vehicles, a quarter of the speed, and the counter in the pavement reports the identical number.

The two limbs have names and completely opposite behaviour. The left one is the uncongested or free-flow branch, and on it adding vehicles adds flow: the road is doing more work, and demand and throughput move together in the direction common sense expects. The right one is the congested or forced-flow branch, and on it adding vehicles reduces flow, because speed is falling faster than density is rising. On the congested branch, every intuition about traffic is inverted. More demand delivers fewer vehicles per hour. Removing vehicles improves throughput.

That inversion is the justification for a great deal of expensive infrastructure. Ramp metering exists to hold vehicles at the on-ramp so the mainline stream stays on the left branch, where it carries more; the queue on the ramp is deliberately traded for higher throughput on the freeway, and the total delay usually comes out lower. Variable speed limits upstream of a bottleneck do the same job differently, smoothing the arrival so the stream never tips over the apex. And the phenomenon of capacity drop — the observation that once a bottleneck breaks down it discharges at perhaps five to ten percent below the flow it managed just before — means the trip across the apex is not symmetric. Getting back is harder than falling off.

Which is why a flow reading alone is close to useless as a measure of how a road is doing. A detector reporting 2160 veh/h on our example road is reporting a state that is either excellent or nearly stopped, and the number does not say which. Occupancy resolves it in an instant: high flow with low occupancy is the left branch, the same flow with high occupancy is the right one. So does speed. This is why detector stations report more than counts, and it is why the classic misreading — seeing a flow comfortably below capacity, concluding the road is coping, and missing that the queue is growing upstream — is a mistake experienced people still make when they are reading a summary table instead of a time series.

Two smaller notes. The roots always sum to kjk_j, which is a tidy check: if this page hands you 30 veh/km and kjk_j is 150, the congested twin is 120. And the square root vanishes exactly at capacity, where the two roots merge at kj/2k_j/2 — which is another way of saying that a road running at capacity has no margin in either direction, and a road with no margin is one incident away from the other branch.

Greenshields Flow–Density Parabola
q=vf(kk2kj)q = v_f\left(k - \frac{k^{2}}{k_j}\right)
qkqmaxkj
Where
  • qq= Flow rate (veh/h)
  • kk= Density (veh/km)
  • vfv_f= Free-flow speed (km/h)
  • kjk_j= Jam density (veh/km)