Critical Materials Atlas
Method · risk · supply elasticity

When supply can’t respond

Every supply-risk score quietly assumes the market can answer a shortage by producing more. For the by-product metals that assumption breaks — you can’t open a gallium mine. This layer re-weights the risk index by how elastic each material’s supply actually is, and asks: which materials does “just mine more” most under-rate?

How the adjustment works

We take the transparent risk score and multiply it by a supply-response factor derived from supply-shock economics. The scarcity impact of a disruption scales inversely with supply elasticity — an outage bites harder when output can’t respond — so vulnerability ∝ 1/(1+ε). We infer each metal’s long-run supply elasticity from its companionality (a primary metal can scale, ε ≈ ε0; a pure by-product cannot, ε ≈ 0):  ε(c) = ε0(1 − c/100),  factor = (1+ε0)/(1+ε(c)), normalised so a primary metal is unchanged and a 100%-by-product carries the full 1+ε0. We then re-rank and report the movement — the rank change is the message, not the absolute value.

What makes ε0 = 0.5 defensible, not arbitrary. It now has a structural meaning: it is the long-run supply elasticity of a scalable primary metal. The literature supports the two endpoints the model rests on — every non-fuel mineral is price-inelastic in the short run (mines can’t be built quickly: USGS / Fernandez 2025, 74 commodities; Dahl MEDS), while long-run primary supply is substantially elastic (Stuermer 2017; Radetzki 2008; Krautkraemer 1998) — so ε0 = 0.5 is conservative (higher published values would only deepen the by-product penalty). And companion supply really is host-locked: the most rigorous open model of a by-product — the copper–cobalt–nickel supply-curve system (Nature Communications 2025, ~99% of cobalt a by-product) — is built on exactly this mechanism. Honest ceiling: per-material long-run elasticities are not published for the critical by-products (they’re too hard to estimate — the thesis itself), and the gold-standard structural models need proprietary cost curves. We tried estimating own-price response from 8 years of BACI trade data; too noisy (re-exports, quality mix, shared Ga/Ge/Hf HS code) to trust. So ε(c) is a calibrated inference from companionality, not a measurement — a re-ordering lens grounded in the economics, not a cardinal elasticity. Inputs: risk.json × companionality.jsonrisk_adjusted.json.

Re-ranked by whether supply can actually respond

Base = the standard risk score. Adjusted = after penalising inelastic (by-product) supply. = the market under-rates this material; the lever column is what you can actually do about a shortage.

#Materialsupply typebase riskby-prod %adjustedrank Δmitigation lever

Refinement: does the by-product pay enough to move its host?

By-product share alone treats every companion the same. But a metal that is 0.1% of a mine’s revenue can’t move that mine, while one that is 40% can — so its true supply response depends on its value share in the host operation. This is the method of the peer-reviewed Mineral Economics 2026 companionality-risk metric (perceived elasticity from revenue weight). We reproduce it on open data — production × price — and set it beside the companionality-only factor:

Metalby-prod %value sharefactor: companionalityfactor: value-share

What this changes, and what it spawns

The re-ranking pushes the hostage metals — gallium, germanium, cobalt, vanadium — up past materials whose risk is real but addressable with new mines. That has a policy edge: for the risers, building capacity is not the lever; recovery yield at the host, stockpiling, and substitution are. It also seeds the next layer — a host-shock model: if the market can only give you more gallium by smelting more aluminium, then an aluminium downturn is a gallium shock. That is the child this page asks for next.