Critical Materials Atlas
Method · optimal transport on real trade flows

For 4 materials, no reallocation covers the loss — and 8 get worse

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. The materials flagged structurally uncoverable here are deliberately not the same set as the export-fallback single points of failure — this is the stricter capacity test, so it names a different list.
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; where USGS publishes real forward capacity we ground it in the data (see “Under real capacity plans” below), and it shows the abstract κ flatters the real plans. 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.

Under real capacity plans, not just an assumption

The coverage above rests on an explicit assumption — that survivors could scale to κ× current output. For the 8 commodities where the USGS World Minerals Outlook publishes actual forward capacity (to 2029), we ground it in the real number, on a consistent production basis: the dominant producer’s share of world capacity, and the capacity actually projected to be built. The “real coverage” column is a generous upper bound — it assumes every projected new tonne of capacity is spare, exportable and outside the cut country, ignoring baseline demand growth — so the true figure is lower still. Even so, two failure modes fall out, and only lithium escapes both.

Material (dominant producer) USGS capacity growth to 2029 Real coverage of a producer cut If everyone else doubled
Magnesium (China 89%)-3% ▼0%13%
Platinum (South Africa 72%)+0%0%39%
Palladium (South Africa 41%)+1%2%100%
Gallium (China 87%)+12%14%14%
Cobalt (DR Congo 75%)+27%36%33%
Helium (United States 55%)+23%42%80%
Titanium (China 66%)+34%52%52%
Lithium (Australia 41%)+111%100%100%

Two ways a cut stays uncovered. (1) Concentration too high: gallium (87%), magnesium (89%) and cobalt (75%) are so dominated that even if everyone else doubled it would barely dent the gap (14–33%) — and reality (12–27% growth) matches. (2) The capacity isn’t being built: palladium and platinum have leaders under 75%, so doubling would cover a cut (39–100%) — but USGS projects their capacity flat or shrinking, so real coverage is 0–2%. Only lithium (+111% capacity) genuinely escapes. True per-country ceilings don’t exist in public data for the rest, so the κ sweep stays for them — but where USGS data does exist, real plans are far bleaker than any “survivors could scale” hope. real coverage = min(1, capacity-growth ÷ producer-share); reproducible: build_ot_capacity.py.

Reshuffle map