Critical Materials Atlas
Method · optimal transport on real trade flows

Reallocation stress test

The fallback test asks is there another exporter? This asks the harder question: if a refining chokepoint is cut, can the world’s remaining export capacity actually cover it — or does removing the leader just hand the chokepoint to the next player, and who is left stranded? We model the shock as the loss of the leader’s exports (the only supply that was ever redirectable) and reallocate its freed demand across every surviving exporter by optimal transport — minimum geographic cost on the real bilateral trade matrix. Three numbers fall out: how hard the rest must scale, whether removal actually de-concentrates, and how much demand is structurally uncoverable.

Why “is there a fallback?” is the wrong question. A fallback exporter is not free capacity — it is already serving its own customers. The real questions are whether the spare capacity, scaled to a plausible ceiling, can cover the cut; whether removing the leader de-concentrates or just shifts the chokepoint to a runner-up (sometimes it makes concentration worse); and whether the spare sits near the stranded buyers or far away. Optimal transport answers all three on the actual flow matrix.
Method & caveats

N−1 stress = 1/(1−f), where f is the leader’s share of world exports: the factor by which every other exporter must scale to cover the same demand. Concentration is the export HHI before, and after the leader is removed and survivors are renormalised (the runner-up’s new share). Coverage@κ assumes each surviving exporter can scale its exports up to κ× current; spare = (κ−1)×current, coverage = min(1, Σspare / freed). Reshuffle & friction: entropic optimal transport (Sinkhorn) reallocates the leader’s freed demand onto survivors at minimum great-circle cost between country centroids; friction = mean distance the reshuffled supply travels ÷ the leader’s original mean shipping distance (>1 = spare sits farther away).

Caveats. This is export-based by construction — it models the loss of what the leader ships, which is the correct frame for reallocation (a domestic-consuming refiner’s output was never available to importers), but it means the leader’s share here is an export share, not a production share. The κ scale-up ceiling is an explicit assumption, not a forecast — read coverage as “how much slack exists at ceiling κ,” not a prediction. Distance is a crude friction proxy (centroid great-circle, not shipping cost or capability). Shared HS codes (gallium/germanium 811292) mix metals, so those rows are a basket. This is a stress test of today’s trade structure, not the post-diversification world the Break the chokepoint page tracks. Built by build_ot.py on CEPII BACI. See also the leverage map (how exposed is each importing country), shock scenarios, the supply-shock cascade, and the decision layer.

Reshuffle map