A Toy Linked Model

Battery demand → critical mineral demand → primary mining and end-of-life recovery. Move the knobs.

This is a teaching toy, not research. It is a deterministic stock-and-flow sketch with order-of-magnitude parameters, rounded hard and calibrated to nothing. It is not SEAR Lab output, it does not represent any real supply chain, and no number it produces should be cited. It exists to make one mechanism visible — see the note at the bottom.

Mineral

Demand
Primary supply
The loop back
Mineral demand against primary and recovered supply, by year
Primary mining Recovered (end-of-life) Demand Unmet

What this is showing

The recovered-supply band is the whole point. Its size in any given year is set by how many packs were built ten to fifteen years earlier, multiplied by how many of them are actually collected and how much metal the process recovers. Those are decisions made long before the shortfall appears.

Try it: push demand growth up until a gap opens, then try to close it by raising the recovery yield. You cannot — not quickly. The material simply is not in the waste stream yet. Now lower the pack lifetime and watch the loop arrive sooner but carry less. Then set LFP share to 100% and watch the nickel and cobalt problems vanish while the lithium problem does not.

That is the argument for studying these systems end to end and back rather than one stage at a time. A model of mining alone cannot see the recovery loop; a model of recycling alone cannot see what feeds it. The interesting behaviour lives in the coupling, and it is a decade-scale lag.

Model source: src/scripts/linkedModel.js. Roughly eighty lines, no dependencies, all parameters at the top.