The Long Way Around

Global chokepoint monitor / IMF PortWatch replay

The long
way around

Compare a quiet spring, the Ever Given blockage and the Red Sea disruption. The counts show container ships passing measured chokepoints, making it possible to see the difference between a temporary stop and a sustained detour around Africa.

Replay dateApr 18, 2021100%

On March 23, 2021 a 400-meter container ship wedged itself across the Suez Canal. Transits fall to near zero for six days while ships stack up in the Red Sea — then a 36-ship convoy bursts through the day after she floats free.

01Suez Canal today20 ships
02Vs pre-event pace-98 transits
03Bab el-Mandeb Strait today11 ships
04InspectionAll corridors
A
Ships moving through gates over time

Traffic picks a lane, and the lanes trade places

Each ribbon is three days of real container-ship transits recorded at the downstream gate. Hover or click a ribbon to isolate its corridor.

Skip to data table
On March 23, 2021 a 400-meter container ship wedged itself across the Suez Canal. Transits fall to near zero for six days while ships stack up in the Red Sea — then a 36-ship convoy bursts through the day after she floats free.
B
Geographic movement

Three corridors, nine measured gates

Leg width is the trailing 7-day average of real daily container transits at the gate each leg crosses; particles indicate direction.

C
Imperative event stream

Track accumulated shortfall at the selected gate

Daily bars are real transits minus this scenario's own pre-event pace at the watched gate, so the running level reads as accumulated shortfall. Selecting a corridor moves the gauge to its gate.

Cross-scenario analysis / Form 04

Compare daily traffic across all three periods

Each dot is one real day measured at Suez, Bab el-Mandeb, the Cape of Good Hope, and Panama. The quiet spring forms the reference cluster. The Ever Given period departs mainly along the Suez axis, while the Red Sea period shifts traffic from Bab el-Mandeb toward the Cape as Panama also runs below its reference pace. Select a dot to open that day in the replay.

Suez / day
2 – 36
Bab el-Mandeb / day
2 – 32
Cape / day
1 – 24
Panama / day
2 – 12
Skip to data table
Quiet spring ’23
Ever Given ’21
Red Sea ’23–24
Suez / day
Bab el-Mandeb / day
Cape / day
Panama / day
Suez / day
Bab el-Mandeb / day
Cape / day
Panama / day
Real AIS-derived data

Data: IMF PortWatch (portwatch.imf.org), daily chokepoint transit calls, AIS-derived by the IMF and Oxford University. Extract dated 2026-07-02. Transit counts, dates, and events are real; corridor geometry is an illustrative reduction of each lane to its measured gates.

One replay, four views

The map shows routes, the flow chart follows traffic through chokepoints, and the daily bars compare it with the earlier pace. The matrix puts all three periods side by side. Select a corridor or a day to carry the same comparison across views.

JSX
// Three IMF PortWatch periods share one replay shell. const [scenarioId, setScenarioId] = useState("everGiven") const [cursor, setCursor] = useState(scenarioDays(scenarioId)) const currentTime = replayTimeForCursor(scenarioId, cursor) // Declaratively derived snapshots of the selected scenario. <FlowMap nodes={locations} flows={flowsAtTime(scenarioId, currentTime, selectedCorridor)} areas="land-110m" /> <ProcessSankey nodes={gates} edges={processEdgesAtTime(scenarioId, currentTime, selectedCorridor)} domain={domainFor(scenarioId)} pairing="temporal" /> // Deviation-from-pace bars mirrored through the imperative changeset API. useSyncedPushData(waterfallRef, visibleDeviationRows, { id: "id", resetKey: `${scenarioId}:${watchedGate}`, }) // The matrix holds every day of all three scenarios at once — // clicking any point jumps the replay to that scenario and date. <ScatterplotMatrix data={PORT_MATRIX_ROWS} fields={["suez", "babElMandeb", "capeOfGoodHope", "panama"]} colorBy="scenario" onClick={(row) => { setScenarioId(row.scenarioId) setCursor(row.dayIndex + 1) }} />