The rule, and why it’s an upper bound
For every import flow: if the supplier genuinely mines the material (world mine share ≥ 5%) the origin stays the supplier; otherwise the supplier is treated as a refiner or hub, and the value is re-attributed to the material’s dominant mine. A country’s hidden dependence is the share of its imports re-attributed away from the apparent supplier.
First-order trace — an upper bound. We don’t observe each refiner’s ore sourcing, so all refiner-fronted flow is assigned to the single leading producer; real refiners blend ores, scrap and contracts. Read it as the scale of the refiner illusion, not a customs-grade origin. Computed by build_origin.py.
Hidden dependence by importer
Apparent #1 supplier vs the likely #1 origin (upper-bound attribution), and the share of imports that are refiner-fronted (sourced via a non-producer). Re-export hubs excluded; ranked by import value.
| # | Importer | Apparent #1 supplier | Likely #1 origin | refiner-fronted |
|---|---|---|---|---|
| 1 | 🇨🇳 China | 🇨🇩 Congo [DRC] 15% | 🇦🇺 Australia 28% → | 36% |
| 2 | 🇯🇵 Japan | 🇦🇺 Australia 56% | 🇦🇺 Australia 74% | 28% |
| 3 | 🇰🇷 South Korea | 🇦🇺 Australia 26% | 🇦🇺 Australia 55% | 38% |
| 4 | 🇺🇸 United States | 🇨🇱 Chile 33% | 🇨🇱 Chile 41% | 40% |
| 5 | 🇮🇳 India | 🇿🇦 South Africa 23% | 🇦🇺 Australia 35% → | 63% |
| 6 | 🇹🇼 Taiwan | 🇦🇺 Australia 42% | 🇦🇺 Australia 48% | 34% |
| 7 | 🇩🇪 Germany | 🇺🇸 United States 11% | 🇨🇱 Chile 27% → | 63% |
| 8 | 🇹🇷 Turkey | 🇷🇺 Russia 36% | 🇨🇱 Chile 38% → | 51% |
| 9 | 🇮🇹 Italy | 🇧🇬 Bulgaria 11% | 🇨🇱 Chile 49% → | 68% |
| 10 | 🇧🇷 Brazil | 🇨🇱 Chile 32% | 🇨🇱 Chile 32% | 17% |
| 11 | 🇻🇳 Vietnam | 🇦🇺 Australia 50% | 🇦🇺 Australia 57% | 38% |
| 12 | 🇲🇾 Malaysia | 🇦🇺 Australia 40% | 🇨🇱 Chile 39% → | 60% |
| 13 | 🇹🇭 Thailand | 🇨🇳 China 20% | 🇨🇱 Chile 48% → | 53% |
| 14 | 🇫🇷 France | 🇨🇱 Chile 20% | 🇨🇱 Chile 32% | 39% |
| 15 | 🇮🇩 Indonesia | 🇦🇺 Australia 48% | 🇦🇺 Australia 44% | 23% |
| 16 | 🇨🇭 Switzerland | 🇿🇲 Zambia 25% | 🇷🇺 Russia 45% → | 94% |
| 17 | 🇬🇧 United Kingdom | 🇿🇦 South Africa 27% | 🇿🇦 South Africa 47% | 61% |
| 18 | 🇪🇸 Spain | 🇨🇩 Congo [DRC] 24% | 🇨🇩 Congo [DRC] 24% | 32% |
| 19 | 🇲🇽 Mexico | 🇺🇸 United States 56% | 🇨🇱 Chile 54% → | 74% |
| 20 | 🇨🇦 Canada | 🇺🇸 United States 44% | 🇺🇸 United States 27% | 33% |
| 21 | 🇸🇪 Sweden | 🇦🇺 Australia 17% | 🇨🇱 Chile 53% → | 66% |
| 22 | 🇵🇱 Poland | 🇰🇿 Kazakhstan 19% | 🇦🇺 Australia 47% → | 82% |
| 23 | 🇪🇬 Egypt | 🇨🇩 Congo [DRC] 37% | 🇨🇩 Congo [DRC] 37% | 36% |
| 24 | 🇸🇦 Saudi Arabia | 🇨🇩 Congo [DRC] 50% | 🇨🇩 Congo [DRC] 51% | 40% |
| 25 | 🇲🇰 Macedonia [FYROM] | 🇬🇧 United Kingdom 97% | 🇷🇺 Russia 53% → | 100% |
Where the mine stage is more concentrated than the trade stage
27 of 32 materials are more concentrated at the mine (production) than in trade — apparent-supplier diversity can overstate how diversified the underlying production is. Trade and mine concentration are different objects (multi-stage chains naturally disperse trade), so read this as a flag, not proof of disguise.
| Material | Apparent #1 supplier (trade HHI) | Traced #1 origin (mine HHI) | HHI gap |
|---|---|---|---|
| Gallium | 🇨🇳 China HHI 0.14 | 🇨🇳 China HHI 0.96 | +0.82 |
| Germanium | 🇨🇳 China HHI 0.14 | 🇨🇳 China HHI 0.81 | +0.67 |
| Cobalt oxides & hydroxides | 🇨🇩 Congo [DRC] HHI 0.17 | 🇨🇩 Congo [DRC] HHI 0.74 | +0.57 |
| Natural graphite | 🇨🇳 China HHI 0.22 | 🇨🇳 China HHI 0.78 | +0.56 |
| Silicon, < 99.99% | 🇨🇳 China HHI 0.20 | 🇨🇳 China HHI 0.69 | +0.48 |
| Nickel, unwrought | 🇳🇴 Norway HHI 0.09 | 🇮🇩 Indonesia HHI 0.57 | +0.48 |
| Platinum, unwrought | 🇿🇦 South Africa HHI 0.17 | 🇿🇦 South Africa HHI 0.64 | +0.47 |
| Tungsten, unwrought | 🇨🇳 China HHI 0.40 | 🇨🇳 China HHI 0.85 | +0.45 |
| Ferro-vanadium | 🇦🇹 Austria HHI 0.13 | 🇨🇳 China HHI 0.54 | +0.41 |
| Magnesium, unwrought | 🇨🇳 China HHI 0.54 | 🇨🇳 China HHI 0.90 | +0.36 |
| Antimony, unwrought | 🇹🇯 Tajikistan HHI 0.17 | 🇨🇳 China HHI 0.47 | +0.30 |
| Fluorspar, >97% CaF2 | 🇲🇽 Mexico HHI 0.25 | 🇨🇳 China HHI 0.54 | +0.29 |
| Hafnium, unwrought | 🇨🇳 China HHI 0.14 | 🇦🇺 Australia HHI 0.41 | +0.27 |
| Phosphate rock | 🇯🇴 Jordan HHI 0.15 | 🇨🇳 China HHI 0.41 | +0.26 |
| Palladium, unwrought | 🇿🇦 South Africa HHI 0.14 | 🇷🇺 Russia HHI 0.39 | +0.25 |
| Ferro-niobium | 🇧🇷 Brazil HHI 0.59 | 🇧🇷 Brazil HHI 0.82 | +0.23 |
| Helium | 🇶🇦 Qatar HHI 0.16 | 🇺🇸 United States HHI 0.39 | +0.22 |
| Baryte | 🇮🇳 India HHI 0.11 | 🇨🇳 China HHI 0.33 | +0.22 |
| Phosphorus | 🇻🇳 Vietnam HHI 0.35 | 🇨🇳 China HHI 0.57 | +0.21 |
| Tantalum, unwrought | 🇺🇸 United States HHI 0.16 | 🇨🇩 Congo [DRC] HHI 0.36 | +0.19 |
| Refined copper cathodes | 🇨🇩 Congo [DRC] HHI 0.11 | 🇨🇱 Chile HHI 0.30 | +0.19 |
| Titanium, unwrought | 🇯🇵 Japan HHI 0.18 | 🇨🇳 China HHI 0.33 | +0.15 |
| Arsenic | 🇨🇳 China HHI 0.18 | 🇵🇪 Peru HHI 0.32 | +0.14 |
| Rare-earth permanent magnets | 🇨🇳 China HHI 0.42 | 🇨🇳 China HHI 0.54 | +0.11 |
| Feldspar | 🇹🇷 Turkey HHI 0.21 | 🇹🇷 Turkey HHI 0.32 | +0.11 |
| Coking coal | 🇦🇺 Australia HHI 0.22 | 🇦🇺 Australia HHI 0.30 | +0.08 |
| Natural borates | 🇹🇷 Turkey HHI 0.38 | 🇹🇷 Turkey HHI 0.43 | +0.05 |
Computed from flows_2024.json + data.json → origin_trace.json.
Where the trace stops at China: its own imported feed
Suppliers with at least 5% of world mine output are kept as the origin, so for these materials the trace above stops at China. But China also imports ores, concentrates and intermediates for them, and the trade records then name China as the exporter of what it makes from them. This table shows that imported feed for the selected materials where China mines at least 5% of world output and the feed has a dedicated customs code.
| Material and imported feed | China mines | China’s imports 2017 | 2024 | Top partner countries 2024, share of tonnes |
|---|---|---|---|---|
| Aluminium bauxite (aluminium ores) · HS 260600 | 21% | 68.5 Mt | 158.6 Mt | 🇬🇳 Guinea 69%, 🇦🇺 Australia 25%, 🇹🇷 Turkey 2% |
| Manganese manganese ores and concentrates · HS 260200 | 7% | 21.3 Mt | 29.3 Mt | 🇿🇦 South Africa 54%, 🇬🇭 Ghana 16%, 🇬🇦 Gabon 14% |
| Copper copper ores and concentrates · HS 260300 | 8% | 17.3 Mt | 28.1 Mt | 🇨🇱 Chile 33%, 🇵🇪 Peru 25%, 🇲🇳 Mongolia 6% |
| Titanium titanium ores and concentrates · HS 261400 | 32% | 3.1 Mt | 5.1 Mt | 🇲🇿 Mozambique 45%, 🇦🇺 Australia 12%, 🇳🇴 Norway 8% |
| Phosphate natural phosphates · HS 251010, 251020 | 44% | 123 kt | 2,069 kt | 🇪🇬 Egypt 47%, 🇯🇴 Jordan 38%, 🇱🇧 Lebanon 5% |
| Hafnium zirconium ores (zircon, the hafnium source) · HS 261510 | 10% | 980 kt | 1,746 kt | 🇦🇺 Australia 41%, 🇿🇦 South Africa 25%, 🇲🇿 Mozambique 8% |
| Fluorspar fluorspar · HS 252921, 252922 | 60% | 175 kt | 1,347 kt | 🇲🇳 Mongolia 88%, 🇿🇲 Zambia 3%, 🇹🇭 Thailand, 🇳🇬 Nigeria and 🇿🇦 South Africa 2% each |
| Feldspar feldspar · HS 252910 | 9% | 65 kt | 122 kt | 🇮🇳 India 80%, 🇹🇷 Turkey 17%, 🇧🇷 Brazil and 🇩🇪 Germany 1% each |
| Rare earths rare-earth compounds and metals · HS 284610, 284690, 280530 | 69% | 34 kt | 77 kt | 🇲🇲 Myanmar [Burma] 57%, 🇲🇾 Malaysia 21%, 🇱🇦 Laos 14% |
| Baryte natural barium sulphate · HS 251110 | 30% | 11 kt | 70 kt | 🇱🇦 Laos 80%, 🇲🇲 Myanmar [Burma] 17%, 🇰🇬 Kyrgyzstan 1% |
| Antimony antimony ores and concentrates · HS 261710 | 48% | 71 kt | 53 kt | 🇹🇭 Thailand 31%, 🇲🇲 Myanmar [Burma] 16%, 🇹🇯 Tajikistan 11% |
| Graphite natural graphite · HS 250410, 250490 | 78% | 147 kt | 52 kt | 🇹🇿 Tanzania 49%, 🇲🇬 Madagascar 23%, 🇲🇿 Mozambique 23% |
| Tungsten tungsten ores and concentrates · HS 261100 | 80% | 4 kt | 12 kt | 🇰🇵 North Korea 29%, 🇲🇲 Myanmar [Burma] 19%, 🇷🇺 Russia 10% |
How to read it, and what it cannot show
Gross tonnes, not content. Tonnages are gross weights as traded, not contained metal, so they cannot be set against mine output or turned into a share of China’s supply. Rows differ in what they count: rare earths are compounds and metals (HS 2805.30 also includes scandium and yttrium), not ore; hafnium is measured as zircon tonnage, which says nothing about hafnium content; fluorspar adds both acid and metallurgical grades.
Partner, not mine. The partner is the country China’s customs declarations record, which may be a miner, a processor or a transit country — for example Malaysia (rare-earth processing), Thailand (antimony ores) or Lebanon (phosphate rock) may not be where the material was mined. Several partners are sanctions-relevant: North Korea and Russia supply tungsten ores, and Myanmar appears in rare earths, antimony, tungsten and baryte; trade with North Korea rests on China’s declarations alone.
Cross-check. CEPII BACI, which reconciles exporter and importer declarations, is within 2.5% of China’s own total for 8 of 13 rows in 2024. It differs, BACI relative to China’s total, for hafnium (-40%); titanium (-31%); antimony (-4%); feldspar (+3%); graphite (+16%). For hafnium BACI also leads with South Africa (41%), where China’s record leads with Australia. For titanium BACI puts Mozambique at 21%, against 45% in China’s record. Partner shares also differ in places; BACI’s leading partners for every row are in the JSON. The table uses China’s own record because the question is where China’s imported feed comes from. Comtrade flags estimated weights on some of China’s 2024 rows by partner and customs code; the most are on rare earths (40 rows) and graphite (10 rows).
Two endpoints. 2017 and 2024 are endpoints of a series that is not smooth; the full 2017–2024 series is in the JSON. These records fall below half of both neighbouring years; treat them as suspect: the 2023 record for aluminium (28.8 Mt; neighbours 125.5 Mt in 2022 and 158.6 Mt in 2024; weights estimated by Comtrade); the 2022 record for phosphate (32 kt; neighbours 68 kt in 2021 and 1,430 kt in 2023); the 2022 record for fluorspar (279 kt; neighbours 668 kt in 2021 and 1,017 kt in 2023); the 2021 record for baryte (35 kt; neighbours 87 kt in 2020 and 80 kt in 2022); the 2020 record for graphite (26 kt; neighbours 197 kt in 2019 and 60 kt in 2021).
Not shown: Lithium carbonate: spodumene is in basket code HS 2530.90; Strontium carbonate: celestite is in basket code HS 2530.90; Ferro-vanadium: vanadium slag has no dedicated HS code; Coking coal: HS 2701.12 mixes coking and thermal coal; Arsenic: no dedicated ore code; Beryllium, unwrought: beryl is in a basket ore code; Magnesium, unwrought: mined as magnesite/dolomite; metal made domestically; Germanium: recovered from zinc and coal; no ore trade; Gallium: recovered from alumina; no ore trade; Silicon, < 99.99%: quartz feed is not traded under a dedicated code; Phosphorus: elemental phosphorus is made from phosphate rock (natural phosphates row). Import tonnes and partner shares: China’s own import declarations, UN Comtrade annual data (HS 2017 codes), net weight; cross-check: CEPII BACI V202601. “China mines” is the atlas mined list (USGS/IEA, approximate), a separate source not comparable with these tonnes. Computed by build_origin_feed.py → origin_feed.json. Sorted by 2024 tonnage.