Critical Materials Atlas
Method · demand · falsification

Does the market already show the squeeze?

The squeeze thesis predicts that where demand rises and supply is by-product-locked, pressure escapes into price. That is a testable claim — so test it. This page checks the atlas’s own implied-price series against the squeeze, and reports what the data says, including where it refuses to cooperate.

How the price test is built (and its limits)

Price = the implied world unit value (trade value ÷ quantity, $/tonne) from BACI, per material, 2002–2024 — the same series behind the value-vs-volume page. We take the 2018→2024 change and correlate it across materials against the squeeze index and companionality.

Limits (important): trade unit values are not spot prices — they mix grade, product form and contract lags, are nominal (not inflation-adjusted), and are noisy for thinly-traded materials. Gallium, germanium and hafnium share one HS6 code (811292), so they carry identical unit values (marked ⛓) — counted once in the correlations, not three times. This is a directional corroboration test, not a price model; a weak or mixed correlation is a real result, not a bug. Inputs: volume.json × demand.jsonprice_squeeze.json.

Squeeze vs realised price change, 2018–2024

Right = higher squeeze index (surging demand + inelastic supply). Up = the implied price actually rose over 2018–24. If the thesis were mechanical, everything would sit on a rising diagonal — watch where it doesn’t.

The price record, material by material

Material2024 unit value $/tchange 18–24squeezewhat the price says

What the test refines

The clean result would have been “squeeze predicts price.” The real one is sharper: what companionality changes is the direction of price outcomes — or rather, who decides it. Gallium and germanium — by-product-locked and hit by 2023 export controls — spiked; cobalt, equally by-product-locked, fell as Indonesian nickel dragged a flood of by-product cobalt to market. Same structure, opposite prices, because in each case the host’s cycle decided. That is exactly why the host-shock layer matters, and it pointed to the next child: track each squeeze metal’s price against its host’s output.

That child came back with bad news, and it belongs here. The host-coupling test looked for “the host decides” as a general law and could not find it: on real prices with a valid control, the average companion–host coupling is 0.03, and only bismuth←lead survives. Testing the channel the theory actually names — the host’s output — finds nothing at all. So this paragraph is narrowed to what it can carry: in these episodes, host and policy shocks set the direction. Gallium’s 2023 spike and cobalt’s Indonesian crash are documented events and are not in doubt. What is not supported is the stronger claim that companion prices systematically track their hosts. They track the commodity cycle, like everything else.

This page once carried a second claim — that companionality also raises price volatility. Retesting withdrew it, and it has been removed from this page and its dataset rather than left standing: on real price series with a market-size control the gap belongs to market size, and trade unit values turn out not to measure volatility at all. The replacement is here; the full record of what broke and why is on the error record.