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.json → risk_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.
| # | Material | supply type | base risk | by-prod % | adjusted | rank Δ | 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:
| Metal | by-prod % | value share | factor: companionality | factor: 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.