Research · Lepton Software

Recurrent Road Bottleneck Detection via Causal Origin-Victim Attribution

Om Jain, Umang Saraf
Lepton Software, Gurugram, India · July 2026
Download the paper (PDF) → Intelligent transportation systems Real-time traffic data

Abstract

Recurring road bottlenecks, locations that jam on a regular daily or weekly schedule, account for most urban congestion, yet identifying the few places that cause it is hard: on a network-wide traffic feed, most slow roads are not bottlenecks but spillback from a jam elsewhere. We present a fully automated, city-general pipeline that turns a coarse ten-minute per-segment traffic feed into a ranked list of recurring bottleneck sites. Its core step classifies every congested road as a causal origin or a bounded downstream spillback victim, applying the onset-ordering principle of congestion propagation on a road graph built from geometry alone. Per-city calibration is self-bootstrapping, requiring no external labels, so the same model transfers across cities. Deployed for Hyderabad over 30 days, the method finds that 83.6% of congested road-segments are spillback and only 16.4% are causal origins, reducing a naive slow-road map by 6.1x to 124 recurring bottleneck sites. The same pipeline runs unchanged on additional cities, and is integrated into a deployed traffic-analytics product.

Key findings

  • Most congestion is spillback, not cause. Of 2.6 million congested road-buckets in Hyderabad over 30 days, only 16.4% are causal origins; the other 83.6% are roads that are slow only because a jam downstream backed up into them.
  • A 6.1x smaller problem. Isolating causes turns a naive "every slow road" heat-map into a short, ranked list of 124 recurring bottleneck sites, roughly one in six of what a speed-threshold map would flag.
  • No new hardware. The only input is one traffic reading per road every ten minutes plus the road network's geometry. No camera feeds, no signal data, no labeled bottleneck inventory.
  • City-general by construction. A city is defined entirely by data and a configuration record; onboarding a new city adds no algorithm code. The same pipeline runs unchanged on Delhi and Bengaluru.

The idea in one picture

How a jam spills backward: cause versus victim Traffic flows to the right toward a junction. The junction is the cause. The segments queued upstream behind it are victims. The road ahead of the junction is clear. How one jam spills backward Traffic flows one way. The queue grows the other way. TRAFFIC FLOW VICTIMS · stuck behind the jam THE CAUSE CLEAR AHEAD room to drain QUEUE GROWS BACKWARD Cause (head of jam) Victim (spillback) Free-flowing
The head of the jam is the cause; every segment queued behind it is a victim. Fix the head, and the tail clears.

From a whole network to a short list

Congestion propagates upstream from a bottleneck, so temporal precedence orders cause before spillback. For each congested road the pipeline walks downstream, bounded by travel time, to find the jam it is backing up behind. If it finds one, the road is a victim; if it finds nothing to drain into, the road is a causal origin. Single-day origins are aggregated across a month into recurring sites with a recurrence class and a severity ranking.

The funnel: 9,856 monitored roads narrow down to about 120 real recurring causes A three-stage funnel. Top: 9,856 road segments monitored. Middle: 1,827 congested at least once. Bottom: about 120 recurring bottlenecks, the real causes. THE FUNNEL · 9,856 ROADS DOWN TO ~120 CAUSES 9,856 road segments monitored 1,827 congested at least once (~1 in 5) ~120 recurring bottlenecks
From the whole monitored network down to the short list of real causes.

Deployment results (Hyderabad, 1-30 June 2026)

StageCount
Road-graph edges (directed)9,856
Roads congested at least one day1,827
Congested road-buckets (origin + victim)2,602,865
Of which causal origins427,401 (16.4%)
Recurring bottleneck sites (final)124

Source: deployment over a 30-day window. Full method, calibration, and multi-city generality in the PDF.

Why it matters

A congestion heat-map tells a city it is congested, which it already knows. A ranked list of causes tells it where to act, in what order, for the most relief per rupee, because clearing one cause drains the whole tail of victims queued behind it. And it scales like software, not construction: the same pipeline produced every city's list with no city-specific code and no roadside hardware, using data cities already generate through Google's Roads Management Insights feed.

For the plain-language version of this work, read The Real Bottleneck on our blog.

How to cite

O. Jain and U. Saraf, "Recurrent Road Bottleneck Detection via Causal Origin-Victim Attribution," Zenodo, 2026. doi: 10.5281/zenodo.21351937. [Online]. Available: https://doi.org/10.5281/zenodo.21351937

See this on your city's roads

We can point the same pipeline at your network and hand back the ranked list of real bottlenecks.