Why this exists, how it is built, and what is deliberately left out.
Protectionism is argued about everywhere and modelled publicly almost nowhere. The debate runs on assertion; the literature runs on paywalled papers with no interface. Existing trade explainers fail in one of two ways: static articles with no mechanism, or interactive toys with invented numbers. Shockwave is an interactive tool whose numbers are propagated from published parameter estimates and validated against a real historical episode.
The project was first conceived around a caricature of a named politician. That was rejected deliberately. The moment a real political figure appears, the tool stops being about economics and becomes about him: half the audience cheers, half gets defensive, and nobody engages with the mechanism. A medieval fortress-mode is nobody's team.
It also makes the tool evergreen, because protectionism did not begin or end with any one administration, and it makes the control and the metaphor the same object. Raising the bridge is the severity dial.
The parameter table is calibrated from estimates published by other people. A regression pipeline exists and is gated, but only on synthetic panels: no value the engine reads has come out of it. All heavy work is precomputed. The delivered site is static files with no backend, no API calls, and no hosting cost. That is not a shortcut. It is what lets the whole model be audited, because the same arithmetic runs in Python where it can be tested.
| Source | Provides |
|---|---|
| World Bank WDI | Trade shares, investment, FDI flows, growth, inflation, population, applied tariffs, migration, labour force, unemployment, government revenue, remittances, saving. Licensed CC BY 4.0. |
| IMF IMTS | Bilateral goods trade by partner, the matrix THE WORLD mode runs on. Successor to DOTS. |
| IMF CDIS | Inward direct-investment positions is the stock the capital lever acts on. |
| BIS | Central bank policy rates, for the 58 countries that publish one. The other 150 carry a named stand-in: a lending rate, or inflation. No displayed figure depends on it: the rate’s level is not shown anywhere, and the rate change that is shown comes from a rule applied to changes, which never reads the level. |
| Natural Earth | Map geometry at 1:50m scale, simplified in the pipeline to 25,563 points. Public domain. |
Not used, despite what an earlier version of this page said: OECD TiVA, UN Comtrade, WITS and UN DESA. TiVA and Comtrade have no open bulk endpoint, so the input–output structure and retaliation coverage they would supply are imputed for every country from trade openness, which is why no country reaches a “direct” data tier. Tariffs come from WDI rather than WITS, and migration from WDI rather than UN DESA.
The engine, the uncertainty propagation, the validation gate and this interface are complete, and the country data is a scripted pull: 208 countries, with each field carrying a route saying whether it was reported by the source or filled by the pipeline. Five displayed figures can carry an “est.” marker. Four carry it only where that country's figure was filled are trade openness, the applied tariff, baseline inflation and the protected-jobs count; the fifth, the exchange-rate regime, is published as such for no country, so it carries the marker for all 208. Figures behind the lower cards carry none: investment is filled for 29 countries and government revenue for 58, both displayed without a marker. Every route and count is recorded in the data file itself. (An earlier version of this page said the figures were hand-entered. That has not been true since the pipeline was built.)
What is genuinely outstanding: the estimation pipeline has only ever been run on synthetic panels, so no parameter carries the “estimated” tier: every coefficient in the model is taken from published literature or is a stated assumption. Trade diversion is modelled only in its single-target form: when the tariff is aimed at one named partner, a stated share of the abandoned demand re-routes pro-rata to the untargeted suppliers, who gain. Under a universal tariff nobody gains, because every supplier is taxed alike and there is no untaxed alternative left. There is no product-level substitutability and no multi-partner targeting. And the input–output structure is imputed for all 208 countries, because the OECD TiVA file has no open bulk endpoint.