Blog/

Met coal vs thermal coal stockpiles: how port inventories diverge

Anyone who has stared at a Newcastle or Qinhuangdao stockyard photo and tried to eyeball tonnage knows the two coal streams don't move together. Met coal and thermal coal piles at the same port complex can tell opposite stories in the same week, and if your model treats "coal stocks" as one number, you're averaging away the signal.

The physical reason is simple: different buyers, different shipping windows, different quality specs. A met coal cargo going to a Japanese or Indian blast furnace sits on a different schedule than a thermal cargo going to a utility in Guangdong. Stack them on the same pad and you'd never separate them anyway; most ports don't.

Why the two streams diverge

Thermal coal inventories at ports like Qinhuangdao or Richards Bay track power-burn seasonality pretty closely. Builds ahead of northern hemisphere winter, draws through peak heating demand, a second smaller build before summer air-conditioning load. It's a pattern you can set your watch to in a normal year, and when the draw-down runs later or shallower than the seasonal norm, that's usually visible in the pile count before it shows up in the API4 or API8 price.

Met coal, especially the premium hard coking coal grades loaded at Dalrymple Bay or Hay Point, runs on a steel-production clock instead. Chinese and Indian blast furnace utilization, not ambient temperature, sets the draw rate. A met coal stockpile can sit flat for months and then empty out over three weeks because a washery took on a term contract it hadn't disclosed yet. Quarterly filings from the big Queensland producers will eventually mention a volume shift, but by the time that 10-Q or investor update lands, the pad has already moved.

This is the gap a lot of desks are working around with shipment data alone. Vessel nominations and bill-of-lading records tell you what left port. They don't tell you what's sitting behind the berth waiting to load, and that's exactly the number that moves first when a buyer pulls back or a washery falls behind on output.

Reading the divergence as a signal

When thermal stockpiles are building while met coal stockpiles are drawing down at the same port complex, that's usually a power-demand lull sitting alongside tight steel-side blending coal, PCI included. Flip it, thermal drawing while met builds, and you're likely looking at a cold snap or a grid shortfall hitting ahead of any slowdown in blast furnace restocking.

The useful read is the spread between the two trend lines, and how that spread moves relative to where API4, API8, or the relevant coking coal benchmark is already pricing the divergence. If the physical pile data hasn't caught up to what the futures curve is implying, that's the gap a desk wants to see first, not a week after the next customs release.

Semi-soft and PCI stockpiles sit somewhere in between the two pure cases. They get pulled into both thermal substitution and met blending depending on relative pricing, so their draw pattern can look like either stream depending on the quarter. Worth tracking separately rather than lumping into either bucket.

Where the data gap bites hardest

Port-level disclosure on coal stocks is uneven at best. Some terminal operators publish a monthly throughput figure, a few give you a stockyard capacity utilization number buried in an investor deck, and plenty give you nothing between quarterly calls. None of that tells you whether this week's pile at a specific berth is building against five-year average or drawing against it, split by met versus thermal grade.

That's the piece stereo satellite imagery is actually built for: a weekly read on pile volume at a named site, tracked as its own series rather than backed into from a shipment manifest. A desk that wants a coking coal stockpile trend running alongside a thermal coal port inventory series, both updating on the same weekly cadence, can see how we approach that on the Bulk Stockpile Index homepage.

If you're tired of waiting on the next disclosure cycle to confirm a divergence your price feed already implied, that's the gap this index is built to close.

Start a pilot