Dylanvir
Atlas

← the contents

The reroute

One flow, moving between two rows — Bab el-Mandeb falling as the Cape of Good Hope rises, in the same period.

plotting 2 of 8 chokepoint rows · 25.0%denominator · chokepoint rows published from atlas.db · derived here from 2 ÷ 8, not quoted0 verified · 1 independent attestation

the reroute

One flow, moving between two rows

Traffic left the Red Sea and went round the Cape. The two rows move in opposite directions and the difference is paid in DAYS, which is why this pair belongs on a timetable and not on a volume chart.

Bab el-Mandeb and the Cape of Good Hope, before and after the Red Sea diversionTwo lines on one shared volume axis in millions of barrels per day. Bab el-Mandeb falls from 8.7 to 4.0; Cape of Good Hope rises from 6.0 to 9.2. The lines cross. Volume here does have a vertical position and a slope — the shared scale is what makes the two moves comparable as moves — so height on this figure encodes volume and only volume. It does not encode importance: criticality, the field this table actually ranks by, is printed beside each plotted row in words and is given no length, area or angle. Strait of Malacca carries the most at 23.2 and rates moderate; Strait of Hormuz carries 20.9 and rates very high, so a glyph sized by volume would invert the ranking. No difference between the two moves is plotted or carried forward as a quantity; the two candidate subtractions are printed once directly beneath the figure, in order to be refused. Nothing is summed and nothing is stacked: one voyage is counted at several of these gates, so a total would describe no fleet that exists. Further points sit in a detached column to the right — each row’s own stored value, and one later figure the record itself calls its least attested — drawn unconnected because neither belongs on the line. Every figure carries its tier and its source reference.0246810mb/dbefore2023afterthrough August 2024detachedon no linecriticality high · alternative farBab el-Mandeb8.7 mb/d · T3 · BRIEF-2026-09-08C4.0 mb/dfell · T3 · BRIEF-2026-09-08Ccriticality low · alternative n aCape of Good Hope6.0 mb/d · T3 · BRIEF-2026-09-08C9.2 mb/drose · T3 · BRIEF-2026-09-08C4.2 stored · T3 · BRIEF-2026-09-08C8.1 least attested · T3 · BRIEF-2026-09-08C9.1 stored · T3 · BRIEF-2026-09-08Cthe lines cross · opposite signs, comparable steepness, one periodthe price of the move is roughly ten extra days round the Cape — a duration, not a distancenothing here is summed, stacked or totalled · the subtraction is printed once below, only to be refused
Height is millions of barrels per day on a fixed 0–10 axis, and both slopes share it, which is what makes the two moves comparable as moves. Say plainly what that costs: on a shared scale the two rows can also be compared by height, and that comparison is volume and nothing else. Height is not importance. Criticality — the field this table ranks by — is printed beside each plotted row in words, and is given no length, area or angle anywhere on this page. It runs the other way: Strait of Malacca carries the most at 23.2 mb/d and rates moderate, while Strait of Hormuz carries 20.9 and rates very high, because no maritime alternative exists. No radius, length or area on this figure is read from a volume — the marks are fixed at r=5 and r=7. The two moves are of opposite sign and comparable size, and that is the whole claim: no difference between them is plotted or carried forward as a quantity. The two candidate subtractions are printed once, directly beneath, in order to be refused. Every source reference on this figure — BRIEF-2026-09-08C — resolves to no row in source, source_register, source_doc, so it identifies the brief inside this atlas and retrieves nothing outside it.

why no difference is stated

8.7 - 4.0 and 9.2 - 6.0 are not the same 4.7 and 3.2 barrels. The figures come from different reporting periods in one brief and the rows overlap by construction. The direction of each pair is the finding; the difference between them is not a quantity.

where these four numbers come from

Not from a column. The chokepoint schema holds a single mb_d at a single as_of and has no before/after pair at all, so the exporter read the slope out of free text. Both source sentences are reprinted whole — including the parts the slope does not use — so the parse can be checked against the prose it came from rather than trusted.

Bab el-Mandeb[T3 · BRIEF-2026-09-08C · unverified · unresolved]
“Fell from 8.7 mb/d in 2023 to 4.0 through August 2024 as traffic went round the Cape at roughly ten extra days. Reported back up to 8.1 with Saudi crude rerouted through the East-West pipeline to Yanbu — that last figure is the least attested in the table.”
parsed as 8.7 → 4.0, fell The same row’s stored mb_d is 4.2, which matches no figure in its own note. Neither field is wrong on its face — they are as-of different moments — but a reader who takes the column and the note as one measurement is combining two, so the stored value is drawn detached rather than as the end of the line. The note also reports 8.1 and calls that figure the least attested in the table. It is drawn as a detached ghost ring and joined to nothing.
Cape of Good Hope[T3 · BRIEF-2026-09-08C · unverified · unresolved]
“The release valve itself. Rose from 6.0 to 9.2 as the Red Sea fell.”
parsed as 6.0 → 9.2, rose The same row’s stored mb_d is 9.1, which matches no figure in its own note. Neither field is wrong on its face — they are as-of different moments — but a reader who takes the column and the note as one measurement is combining two, so the stored value is drawn detached rather than as the end of the line.

parser controls · positive 'rose from 6.0 to 9.2' -> [6.0, 9.2] · negative '... in 2025' -> [] (a bare year is not a volume) · PASS - the comparison can fire and can stay quiet, so a flag below is about the row

the weaker argument, named and not used

There is a second route to this conclusion: these volumes sum to more than world seaborne oil trade, so they must be counting the same cargo twice. It is not made here, and it is the weaker one. It reaches outside this table for a denominator built by someone else to a different definition of what counts, so a reader can always answer it with your total is wrong and nothing in this atlas can settle that. The reroute needs no outside number at all. It is two rows in this table moving against each other, in one period, with the falling row’s own note naming where the traffic went. That is why the sum appears nowhere on this page.

the rule
mb/d is NEVER summed, stacked, totalled or put in a pie.
why
One Gulf-to-Europe voyage transits Hormuz AND Bab el-Mandeb AND Suez and is counted at all three. A total would count that cargo three times and would not say so.
how volume is encoded in the table
Criticality is the ranked and coloured field on this page. Volume appears as a numeral beside its as_of date and is given no length, area or angle - nothing a reader can add up by eye.
criticality is not volume
Malacca carries the most at 23.2 mb/d and rates MODERATE; Hormuz carries less at 20.9 and rates VERY HIGH, because no maritime alternative exists. Sizing these by volume would invert the only ranking that matters.
and how it is encoded on the figure above
Differently, and the sentence beside this one is about the table, not the slope. The slope does give volume a vertical position and a slope angle, on one shared axis holding two rows, so a reader can compare Bab el-Mandeb and Cape of Good Hope by height. That is deliberate — comparable steepness is the finding — and it is volume, not rank. Nothing is sized by volume, no total is drawn, and criticality travels with each plotted row in words so the height is never mistaken for the ranking.

what each row says it double-counts with

Printed as the column holds it, in both directions. double_counts_with is not reciprocal in this table. Hormuz names Bab el-Mandeb and Suez; neither names Hormuz back. A reader who de-duplicates by reading the field from one side gets a different answer from a reader who reads it from the other, so the relation is published as declared and NOT symmetrised here.

that sentence names one of the declaring rows · the one-way declarations are made by Cape of Good Hope and Strait of Hormuz, counted from the rows and listed in full below

gatemb/d · as ofalternativecriticalitydeclares it double-counts withtier · source
Strait of Hormuz20.9 · 2025-H1nonevery highBab el-Mandeb, Suez Canal and SUMEDT3 · BRIEF-2026-09-08C
Danish Straits4.9 · 2025-H1farhighnot recorded — which is not “none exists”T3 · BRIEF-2026-09-08C
Suez Canal and SUMED4.9 · 2025-H1farhighBab el-MandebT3 · BRIEF-2026-09-08C
Bab el-Mandeb4.2 · 2025-H1farhighSuez Canal and SUMEDT3 · BRIEF-2026-09-08C
Turkish Straits3.7 · 2025-H1nonehighnot recorded — which is not “none exists”T3 · BRIEF-2026-09-08C
Panama Canal2.3 · 2025-H1farhighnot recorded — which is not “none exists”T3 · BRIEF-2026-09-08C
Strait of Malacca23.2 · 2025-H1closemoderatenot recorded — which is not “none exists”T3 · BRIEF-2026-09-08C
Cape of Good Hope9.1 · 2025-H1n alowBab el-Mandeb, Suez Canal and SUMEDT3 · BRIEF-2026-09-08C

4 of the declared pairs are one-way. CP-CAPE → CP-BABMANDEB · CP-CAPE → CP-SUEZ · CP-HORMUZ → CP-BABMANDEB · CP-HORMUZ → CP-SUEZ. The relation is published exactly as declared and is not symmetrised, because reading it from one side would silently answer a question the table never settled.

what this page cannot show you

  • One witness, not two. Neither table carries a verification column. Every one of the 15 rows traces to BRIEF-2026-09-08C and to nothing else, so the T2 and T3 tiers here are SELF-DECLARED BY ONE BRIEF. Two figures from one source are one witness, and finding a second document that repeats this brief would not change that. Single-source dependence is a permanent property of these rows, not a field waiting to be revised upward.
  • Tiers, counted. 6 at T2, 9 at T3 across 15 rows, from 1 distinct source reference (BRIEF-2026-09-08C). 0 verified. Neither table carries a verification column, so that zero is a fact about the schema and not a count of failed checks.
  • The source reference resolves to nothing. 1 of 1 source_ref values resolve to no row in source / source_register / source_doc (1532 rows searched). The badge on every figure here is an identifier internal to this brief, not a citation that can be retrieved. danglingReferences validates double_counts_with ids against chokepoint.id ONLY. It never reads source_ref, so its empty list is not a clean bill for the citations printed on this page. The integrity block above reports 0 dangling references, and that number is about double_counts_with ids checked against chokepoint.id. This check does NOT read source_ref - see sourceRefResolution. A green tick on a check that cannot see the field is not a clean bill, so the resolver carries its own positive control: 'cliopatria' resolves in source_register (1 rows) - the resolver can find a reference that exists, so an unresolved verdict below is about the reference and not about the search.
  • The tier gate ran. 15 rows examined across chokepoint and route_corridor, 0 excluded. PASS - admit() was handed a row declared T0 and refused it, and 1 genuinely T0 row(s) exist elsewhere in atlas.db, so the zero below is a fact about these two tables rather than a gate that never ran
  • No route is drawn here, and none could be. A corridor is not a straight line between its two nodes: the volta do mar and the Brouwer route sail away from the destination and are shorter in time for it, so a straight segment would make the record look like a mistake. This atlas holds a coordinate for almost none of the names in these tables. The only length in the reroute record is roughly ten extra days round the Cape — a duration.
  • And the part that cannot be foreclosed. Two rows agreeing about a reroute, both drawn from one brief, would look exactly like this whether the reroute happened or the brief was wrong about it. Internal consistency is what is shown. Nothing on this page can distinguish it from corroboration, and no further reading of this table will.

generated by war-atlas db/export_routes.py on 2026-09-08 · recompute · python db/export_routes.py · this component reads only the committed payload and queries nothing