A country scores as capable if either lens sees it:
cap = max(physical share, trade score). Colour marks the class that matters most — can the trade data even see it? Teal = a refiner visible in trade (it exports refined). Amber = a domestic-absorbing refiner only physical data catches. Grey = a raw exporter (ships ore, no refining). The sub-type on each bar says how: integrated (mines + refines), import-fed (refines imported ore), or mine-to-metal.
How it’s measured & caveats
From the BACI bilateral matrix, per country × material: net_down = (refined_exp − refined_imp)/(refined_exp + refined_imp) (>0 = net exporter of refined), feedstock_import = ore_imp/(ore_imp+ore_exp) (~1 = sources ore by import), and trade_score = refined_world_share × max(net_down,0) — a robust, re-export-penalised, export-control-proof marker. Physical refined share is BGS/USGS from the atlas data. cap = max(physical, trade_score).
What a current-year share rests on. A physical share is computed from production figures whose first printing is an estimate, and the next edition revises it. Measured across 15 commodities and thirty years of editions, the world total ends up a median 1.5% from its first estimate for copper and 11.6% for antimony. A share built on those figures inherits that movement, which is the thing to check before reading a small year-on-year change as a trend: how firm is a current-year production figure?
Caveats: the physical share is a single recent vintage, so the year slider moves the trade signal, not the physical one — migration is clearest where trade carries the story (e.g. the magnet stage). The NdFeB magnet stage is trade-only (no physical magnet series), so premium magnet makers that net-import magnets (Japan, Germany) are undercounted — the same trade-blindness, now without a physical rescue. REE feedstock codes (2805.30 / 2846.90) are aggregated. Refining concentration is cross-checked against two authoritative sources: the IEA Critical Minerals Dataset (CC BY 4.0) — refining capacity by country for the energy-transition minerals — and the EU Critical Raw Materials 2023 study (European Commission), which gives the top global supplier and bottleneck stage (extraction vs processing) for ~31 materials, including the specialty metals where trade and USGS/BGS fall silent (tungsten, gallium, germanium, PGMs). A third, forward layer — the USGS World Minerals Outlook to 2029 (SIR 2025-5021, CC0) — adds 2024 capacity concentration and world capacity growth for 8 commodities (lithium capacity is set to roughly double; magnesium contracts). A final diversification pipeline overlay names representative publicly announced projects building capacity outside the dominant producer (Lynas, MP Materials, Iluka, Rio Tinto Rincón, Umicore…), with the IEA’s aggregate finding that refining/downstream capacity still lags mining to 2035 — curated, not exhaustive (the IEA’s project-level list is not public). The capability score cap = max(physical share, trade score) mixes two units, so read it as a detector and a class (integrated / import-fed / …), not a cardinal 0–1 measure — the bar length is indicative, the type is the finding. The IEA / EU-CRM / USGS cross-check lines are different vintages and stages, so they can disagree with the bar and with each other (that’s expected, not an error). “Most product-space-adjacent non-refiners”: raw density is ~95–98% just a country’s overall diversity (big diversified economies are close to everything — a control-test finding), so the list is ranked on density with breadth (diversity + ECI) regressed out — proximity to this stage beyond what size alone buys. Even so, read them as plausible, not destined. Built by build_feedstock.py. See also Break the chokepoint (the decision layer: what kind of moat, who could break it, who is building it), The refining wedge (does concentration rise from ore to metal? + IEA capacity), the product-space map and complexity.
Capability over time — all 32 materials
Trade-based capability score with the year slider. The first ~11 (a clean ore→refined HS pair) carry the full feedstock fingerprint — import-fed vs mine-to-metal; the rest are typed from physical mine-vs-refine. Below, the same 32 get a plain mine-vs-refine read, then the chokepoint ranking and the supply-shock test.
Every critical material — who mines it vs who refines it
The cards above score capability from trade, with the full ore→refined feedstock fingerprint where a clean HS pair exists (~11 materials) and a physical-derived type otherwise. This second grid gives the same all 32 materials the plainest read of all — each country’s mine share (grey) above its refine share (teal), the mine→refine handoff itself: a country that refines far more than it mines is import-fed; one that does both is integrated; one that digs but doesn’t refine is a raw exporter.
All critical materials, by refining chokepoint
The full ore→refined trade fingerprint (import-fed vs mine-to-metal) needs a clean HS pair, which ~11 of 32 materials have; the rest are typed from physical shares. Refining concentration needs only refined-output shares, so it spans all 29 that report them. HHI over BGS/USGS refined shares (magnets: HS 850511 exports). Colour = chokepoint band.
The fallback test — if the top refiner stopped supplying
A supply-shock counterfactual, not a forecast. The leader’s share of world refined output is the magnitude at risk; the fallback is who else exports the refined form onto the world market — the countries the rest of the world could actually buy from (a hoarded-at-home refiner is not a fallback; an exporter is). A material is a single point of failure only if the leader holds ≥50% of output and no other exporter reaches a third of its export volume. Export fallbacks can include re-export hubs, so read them as availability, not independent capacity. This is an export-share screen, not a capacity test — the reallocation stress test asks the harder question of whether the world’s remaining capacity could actually cover a cut, and by design flags a different, stricter set as “structurally uncoverable.” Materials whose refined form has no separable trade series (gallium and germanium share the “other minor metals” basket HS 811292) cannot be run through this trade screen, so they carry a production-based read instead (USGS MCS / EU CRM): gallium is a genuine near-monopoly chokepoint, while germanium is concentrated but has real alternative refiners (Umicore, Teck, Russia) the shared code hides. And where a material trades in more than one refined form (tungsten as metal vs APT chemical; manganese as metal vs ferro-alloys), the verdict can change with the form — the leader can be a single point of failure in one and have a real backup exporter in another; those rows carry a “depends on form” note with the per-form breakdown.
Reading it: the miner and the refiner are usually different countries, and the refiner sits downstream where the value is. The amber bars are the story the export data alone would miss — China refining copper, alumina and titanium sponge for its own industry, invisible to any trade metric. At the magnet stage, capability collapses onto a single country: watch China climb from 0.39 (2018) to 0.58 (2024) as the rest of the world stays near zero.
Robustness & HS-code provenance
HS-code provenance — which codes are clean
Independent robustness: two separate reconciliations of UN Comtrade — BACI (CEPII) and the Harvard Growth Lab Atlas (Bustos-Yildirim method, queried live via its public GraphQL API) — plus raw reporter-declared Comtrade. Agreement between the two independent reconciliations is the belt-and-braces check; a ⚠ marks a leader that differs from BACI. OECD BIMTS is balanced trade at aggregate (not HS6) level, so it can’t cross-check individual refined codes. Built by build_robustness.py + build_harvard.py; provenance by build_provenance.py.
Method lineage: Hidalgo & Hausmann product space / economic complexity; feedstock-signature capability mapping addresses the export-RCA-≠-capability critique (constrain with physical output; read the direction of transformation). Cf. the product-space paper on China’s critical minerals (Frontiers Env. Sci. 2023) and the Fitness-Criticality algorithm (Valverde-Carbonell, Pietrobelli & Menéndez, Resources Policy 2024).