Transport for London makes an ideal test bed for this kind of analysis. Since 2000, TfL has grown alongside the city it serves, evolving into one of the most extensive and well-documented transit systems in the world — largely thanks to a long-standing open data commitment that puts real operational data in the hands of anyone curious enough to dig in. The full network is captured in the official map.
The rail network spans five modes. The Underground (Tube) is the oldest and largest: eleven lines radiating from a dense central core into six concentric fare zones. London Overground was rebranded in 2024 into six named services — Lioness, Mildmay, Windrush, Suffragette, Weaver and Liberty — stitching together the orbital suburbs the Tube never reached. The Docklands Light Railway (DLR) connects east London, the Isle of Dogs and Heathrow Airport via Stratford. The Elizabeth line (Crossrail), fully opened in 2022, cuts east–west through a 13-kilometre central tunnel between Paddington and Whitechapel, linking Heathrow in the west to Reading and Shenfield in the east. Finally, the Tram network serves the south London boroughs around Croydon and Wimbledon. Buses, river services and a cable car complete the wider TfL family, but it is these five rail modes that define the city's rapid transit spine.
Together the five modes cover roughly 753 route kilometres of track — 402 km on the Underground alone, of which about 45% runs underground — and serve approximately 510 stations and stops (272 Underground, 113 Overground, 45 DLR, 41 Elizabeth line, 39 Tram). The network sprawls across Greater London's 1,572 km². On a typical 2019 weekday the rail network carried close to 5 million journeys; including buses and river services, TfL's combined daily ridership exceeded 12 million trips.
Station-to-station demand from NUMBAT is cast as a weighted directed graph — stations as nodes, connections as edges, and passenger volumes as time-varying weights across six four-hour periods. Four methods shape the analysis: information filtering to extract the statistically significant backbone, community detection to identify functional travel zones, shortest-path computation to measure efficiency, and rank correlation to compare how different metrics order the same connections.
Information filtering applies two complementary methods. The Disparity filter tests each edge against the weight distribution of its own endpoint, retaining connections that are anomalously high at a local scale. GloSS adds a second lens — combining a global significance test across all network edges with a local one — preserving links that are rare globally yet essential locally. Community detection then partitions the network using the Louvain method, a greedy modularity optimisation that groups stations into clusters where internal travel is denser than a random baseline would predict.
Passenger demand comes from TfL's NUMBAT crowding dataset — smartcard taps and gateline counts in 15-minute windows, across four representative day types. Network geometry was sourced from OpenStreetMap; station attributes from TfL's Open Data platform. A SQL data warehouse on Microsoft Fabric consolidates all three into the directed graph model that feeds the visualisations.
The map is built from scratch — tube lines rendered as interpolating cubic splines, railway edges as offset parallel tracks with directional arrows, all served as GeoJSON via Mapbox GL JS. Charts use D3.js and related libraries.
Hover underlined terms to see references and details.
NUMBAT records demand across four representative day types — a typical weekday (MTT), Friday, Saturday and Sunday — each capturing the distinct rhythm of that day's travel. Within each day, two granularities are available: six four-hour periods (Morning, AM Peak, Midday, PM Peak, Evening, Late) for aggregate pattern analysis, and the full 15-minute interval breakdown for finer temporal resolution. The data takes two complementary forms: origin–destination journey counts, which record how many passengers travelled between each station pair in a given window; and station-level entries and exits, which capture the total number of users passing through each gateline regardless of their destination. Together these two lenses — the flow between places and the load at each place — allow the network to be read both as a system of connections and as a collection of individual nodes under varying pressure.
Information filtering
Retains only connections whose traffic is statistically significant under a local null model — forming the load-bearing skeleton of the network. The alpha (α) threshold controls how selective the filter is.
Periods edge-rank correlation (5 × 5)
Weight
Disparity
GloSS
Traffic Tube 2024 Weekday AM peak
Network efficiency measures how well passenger flow can propagate between any two stations. Formally, it is the average inverse shortest-path length across all directed station pairs — a value that approaches 1 when every pair is tightly connected and falls toward 0 as the network becomes fragmented or circuitous. Betweenness centrality complements this by identifying which stations concentrate the greatest share of shortest routes through them: high-betweenness nodes are indispensable to efficient circulation and the first to become bottlenecks when demand surges.
Robustness assesses how resilient the network is when connections are degraded or removed. The analysis applies a targeted attack strategy — removing edges in descending order of betweenness centrality and measuring how rapidly global efficiency declines after each removal. This is intentionally adversarial: it simulates worst-case disruption rather than random outages, and exposes the structural fragility that peak-hour demand concentrations create. The distress KPI provides a complementary edge-level signal — connections that the backbone filter retains only at tight significance thresholds are under the greatest structural stress, and their removal causes disproportionate damage to network coherence.
The two indicators are structurally antagonistic. Because standby or redundant railway infrastructure is not operationally viable at scale, the edges that carry the network most efficiently are by the same token the ones whose removal causes the greatest disruption. There is no configuration that simultaneously maximises both; the analysis maps where on the efficiency–robustness frontier the TfL network sits in each period, and whether the trade-off is made deliberately or by default.
Six edge-level KPIs connect these abstract measures to NUMBAT demand data. Two are time-invariant: distance — the physical length of each directed connection in kilometres — and speed — the commercial speed in km/h, traffic-weighted across all lines sharing the segment. The four time-variant KPIs, computed per period, are: traffic (directed passenger flow in journeys per hour), passenger-km (traffic × distance), load (traffic × speed / frequency — a vehicle-occupancy proxy), and efficiency (traffic × distance × speed / frequency — throughput per operating vehicle across the full connection).
Periods edge-rank correlation (5 × 5)
Disparity
GloSS
Efficiency Tube 2024 Weekday AM peak
The three networks analysed — Underground, Overground and DLR — differ substantially in scale, topology and ridership, which makes them a natural testbed for evaluating analytical methods across different levels of complexity. A method that performs well on the relatively compact DLR graph must also remain interpretable when applied to the denser, more interconnected tube network, and the range of outcomes across the three systems reveals both the strengths and the boundary conditions of each approach.
Among the backbone filtering methods considered, neither the disparity filter nor GloSS can be declared categorically superior — each preserves a different notion of relevance, and the choice between them is governed by the analytical objective rather than by raw performance. What the comparison does establish clearly is the relative inadequacy of pure weight ranking as a filtering strategy: retaining edges solely on the basis of absolute traffic volume systematically discards the locally significant connections that give the network its structural coherence. The graph-theoretic methods are, in that specific regard, unambiguously better suited to the task of delineating a faithful traffic-flow blueprint.
The traffic analysis exposes a consistent directionality in passenger flow that shifts predictably across the day. Morning periods are characterised by strong inbound movement toward central interchanges, while evening periods reverse this pattern into dispersed outbound flows. This inversion is most pronounced on weekdays, where the AM and PM peaks are sharply defined; on weekends the directional asymmetry softens considerably, replaced by a more diffuse and temporally spread demand that reflects leisure rather than commute patterns. The distinction has practical implications for any capacity or resilience assessment that uses a single representative day as its input.
Community detection applied to the network yields complementary readings depending on the edge weight used. When weights are drawn from physical connection distances, the resulting communities reflect the geography of infrastructure: clusters correspond to corridor groups, branch families and engineering boundaries that define how the network was built. When weights are drawn from passenger traffic, the communities shift to reflect user displacement patterns — groupings that are shaped by where people actually travel rather than by how track was laid. Effective network operation seeks to minimise the divergence between these two readings: a system whose infrastructure communities closely mirror its demand communities is one whose capacity is well-matched to its riders.
The relationship between efficiency and robustness proves to be structurally antagonistic. Because standby or redundant railway infrastructure is not operationally viable at scale, the edges that carry the network most efficiently are, by the same token, the ones whose removal causes the greatest disruption. A highly efficient connection — one through which a disproportionate share of shortest paths passes — is also the network's most fragile point, unless an equally efficient alternative route exists in its absence. There is no configuration that simultaneously maximises both properties; the practical question is always one of where on the efficiency–robustness frontier a given operational posture sits, and whether the trade-off is made deliberately or by default.