Materials Decoded Lab · Artifact 03
Where critical materials come from, how long they stay in use, and whether recycling them matters
mfa-engine is a dynamic material flow analysis engine. It runs three technology systems, Denmark's wind fleet, the world's electric cars and the world's data centres, through the same reusable code, and follows six critical materials from the year they enter service to the year they are recycled or lost. It then asks a narrow question about each one: if the largest supplier stopped exporting for a year, would the material coming back from recycling make a dent in the gap?
3
technology systems, one engine
Danish wind turbines, the global EV fleet and global data centres, one per textbook dMFA mode
8
material and system pairs
copper, lithium, nickel, cobalt, graphite and rare earths, tied to 2023 UN Comtrade trade data
10⁻⁹ t
worst yearly mass-balance gap
stock change equals inflow minus outflow, checked every year for every material
6
mistakes caught and fixed
listed below, including one that undervalued lithium 5.3-fold

Three systems, three ways of modelling a stock
Dynamic material flow analysis has three textbook ways to build a stock over time: from a register of assets known to be standing, from a record of what was sold, or from the stock a system needs. Each case here needs a different one, so each uses a different one, all on the same base classes. That is the practical test of "modular and reusable": a new technology system is a new subclass with its own data, not a rewrite.
| System | Mode | Data | How it works |
|---|---|---|---|
| Danish wind turbines | Register-based | Danish Energy Agency's national turbine register | Kaplan-Meier and Weibull lifetimes fitted to every turbine, standing or retired; reproduces dk-wind-mfa's published numbers exactly |
| Global EV fleet | Inflow-driven | IEA Global EV Outlook sales and chemistry mix, NHTSA survival, CRS/GREET cathode masses | Each year of sales decays from its own sale year; metal content from cathode stoichiometry (NMC811, LFP) |
| Global data centres | Stock-driven | McKinsey capacity demand (60 GW in 2023, 171 to 219 GW by 2030), IEA, Masanet et al. 2020, ASHRAE service lives | Required capacity drives new build plus replacement; copper per MW from WEF/Kearney; servers left out, no consistent per-MW figure exists |
From stocks and flows to supply risk
- A full stock-flow account. Inflow, in-use stock and end-of-life outflow for every material, every year, and the account has to balance: the worst yearly gap is around a billionth of a tonne.
- Recycled, not just retired. Material leaving service is multiplied by its cited end-of-life recycling rate before anything counts as recovered. Under current practice, Denmark's wind fleet returns about 1 t of the roughly 137 t of rare earths leaving service by 2050. For EV lithium, moving from current practice to the EU Batteries Regulation's 2031 targets raises recovery about 160-fold.
- Scenarios. IEA's Stated Policies Scenario against a flat 2026 car market for EVs, and McKinsey's low and high 2030 capacity for data centres, through the same engine. By 2030, new data centres need about 0.66 Mt of copper a year, roughly 30% of what all new EVs need under STEPS.
- Supply risk. The recovery side is compared with crm-trade-network's analysis of 2023 UN Comtrade data: how concentrated supply is, how large a one-year shortfall losing one supplier would open, and how that shock cascades through the trade network. Copper is a good example: at a 20% failure threshold, losing Chile brings down all 183 other countries in the refined-copper network within six rounds; from a 55% threshold upward, under 5% fail. The switch is abrupt, not gradual, the "robust-yet-fragile" pattern the cascade literature describes for cobalt and lithium.
- Diversification. A linear program finds the smallest reallocation of existing trade that keeps every supplier under a cap, 65% by default, the EU Critical Raw Materials Act benchmark.
ODYM and flodym, the standard open-source dMFA tools, cover the physical side; the aim here is to put the trade-risk side next to it for the same materials, in one place, with every number traceable to a source.
Mistakes it caught, and what changed
Each of these produced numbers that looked plausible. None threw an error. They were found by checking results against physics, sources and common sense; the fixes and their reasons are written into the code and the README.
- Comparing a 25-year recovery total with a one-year supply shortfall. Graphite came out at over 1,000% "coverage". Both sides are now one-year figures, with the peak year shown beside the average.
- Treating every tonne leaving service as recycled. Overstated copper recovery by about half and lithium and rare earths by over 100 times. Cited end-of-life recycling rates now apply (UNEP IRP 2011; EU Batteries Regulation targets as an upper bound).
- A snapshot filter that dropped 2025 and 2026 EV sales. About 43 million real vehicles never reached the model.
- A scenario extrapolated past its source. IEA's STEPS trajectory kept climbing after 2035 to an 87% EV share no source gives. It now holds at its published 2035 endpoint.
- EV sales treated as vehicles still on the road. Overstated the fleet and pushed retirements that had already happened into the future. Sales now enter as cohorts and decay from their sale year.
- Lithium metal valued at the lithium carbonate price. One tonne of lithium is 5.32 tonnes of carbonate, so every lithium dollar figure was 5.3 times too low. Found in a review before this page was written.
Reading the dashboard
Thirteen pages follow the analysis in order, from how long one unit lasts to what a disruption would cost, and a glossary explains all 45 technical terms, with the exact formula behind each one. Pick a material in the sidebar and every page follows it, in that material's own colour. Each chart opens with one sentence worked out from the numbers on screen, keeps its formula and sources in a "How this is calculated" panel, and downloads as CSV; a "How to read this page" button at the top of every page explains the page in a minute. The colours were checked for colour-vision deficiency and contrast in light and dark mode.
What this is not
- No life-cycle assessment, and no Monte Carlo uncertainty analysis yet: material content, lifetimes and recycling rates carry published low-high ranges, shown as bounds rather than propagated together.
- The cascade runs on one trade layer per material, not the several linked life-cycle stages (mining, refining, manufacturing, use, recycling) the published cascade studies use.
- Trade data is a 2023 snapshot and production data is 2024; the map shows them side by side and never combines them in a calculation.
- Denmark's wind fleet is national and covers turbines already standing; EVs and data centres are global. That follows from which data exists for each technology, and the dashboard's Methods page explains it.
- Not a claim that recycling solves supply concentration. It measures how much one recovery pathway matters against one measured disruption.