Economics is a set of machines. Here are four of them, running
Four essays in which you do not read about a model, you run it. Drag a curve, set a rate, hold a tournament, and the argument in the prose changes to match what you just did. Every empirical claim carries its source. Everything runs in your browser and nothing is sent anywhere.
01Why this exists
Economics is taught as a set of conclusions. Taxes fall on the inelastic side. Asymmetric information destroys markets. Cooperation can be stable. The discount rate is a technical parameter. Each of those is a sentence you can be told, agree with, repeat, and never once check.
But none of them is really a conclusion. Each one is the output of a machine with inputs you can change, and the interesting part of every one of them is not what the machine says on its default settings, it is which settings make it say something else. A tax falls on the inelastic side, until you ask how elastic and find that the whole answer sits in a ratio. Cooperation is stable, until you shorten the future and watch every cooperative rule in the pool die out.
You cannot get at any of that from a sentence. You get at it by turning the dial yourself and seeing which way the number moves, which is why every essay here has a working model in the middle of it rather than a picture of one. The prose carries the argument. The model is what stops the argument being something you have to take on trust.
The point is not that models are right. Most of them are wrong in ways each essay tries to name honestly in its closing section. The point is that a model you have played with is a model you cannot be lied to about. Once you have watched who bears a tax when the elasticities move, no one can tell you a story about that tax that you have no way of checking.
02The essays
Who actually pays a tax
OneTax incidence and elasticity
A parliament can decide who hands the money to the state. It cannot decide who ends up poorer. The statute names a payer; the market picks a different one, and the choice is made entirely by how easily each side can walk away.
You doDrag the supply and demand curves to change their slopes, set a tax per unit, and switch which side the law tells to pay. Watch the burden split, and watch the deadweight loss grow faster than the tax that caused it.
Read and run itThe market for lemons
TwoAdverse selection, after Akerlof 1970
A used car market in which the seller knows what the car is and the buyer does not. Nobody lies and nobody cheats, and the market still takes itself apart, because a price that cannot tell a good car from a bad one drives the good cars out.
You doSet how far quality varies and how much of it a buyer can see, then run the market round by round and watch the average quality and the price fall together. Switch on a warranty or a certificate and watch it come back, with a cost attached.
Read and run itThe evolution of cooperation
ThreeThe repeated prisoner's dilemma, after Axelrod
Cooperation is not naivety. It is what survives when the shadow of the future is long enough to make betrayal expensive. Shorten the future and the same strategies, unchanged, sort themselves into the opposite order.
You doChoose the strategies, compose one of your own from four rules, set the payoff matrix and the chance the game continues, then run a round robin tournament and an evolutionary run where the successful reproduce.
Read and run itWhy the future is cheap
FourDiscounting, and the ethics inside it
The same climate damage is a catastrophe at one discount rate and a rounding error at another. The choice between them is not technical and no experiment settles it. Stern and Nordhaus are set out side by side, sourced, with no verdict.
You doBuild the rate yourself out of the three Ramsey parameters, price a damage stream at four different rates at once, and then watch the same arithmetic decide how much of a company valuation is the part nobody forecast.
Read and run it03The rules these were built under
- Run, not watchEvery model is live. There is no animation of a result somebody else produced, no video and no picture of a chart. What is on the page is computed while you look at it, from the settings you chose.
- Written hereEvery model is plain JavaScript with inline SVG, written for these essays. No chart library, no framework, no build step for the reader, no network call after the fonts have loaded. Each page is a single file that keeps working offline.
- Sourced or cutEvery claim about the real world carries a citation with a link and the date the source was read. Attributions to named economists were verified against the source before they were written. Anything that could not be verified is not on the page.
- Limits statedEvery essay closes with what its model assumes and what it therefore cannot tell you, in the same size type as the rest. A model that does not say where it stops is being used to hide something.
- ReachableEvery interaction has a keyboard route, every model has a written summary of its current state for anyone not looking at the picture, and every figure is usable on a phone.
- ShareableThe state of every model lives in the address bar, so a link reproduces exactly the configuration the sender was looking at, down to the seed of the random draw.
04How it is built, and how to suggest an essay
One file each
Each essay is one HTML file with its styles and its model inlined. There is no backend, no database, no account and no analytics of any kind. Nothing you do on these pages is recorded, because there is nowhere for it to be recorded. The shared design system and the small library behind the models live in the same public repository as the rest of the instruments, and the build step is a twenty line shell script that splices them in.
If there is a model you think belongs here, the repository is the place to say so. An essay is worth building when the argument is genuinely contested or genuinely counterintuitive, when there is a model small enough to run in a browser and honest enough to be worth running, and when the sources exist to check it against. Open an issue with the argument and the source you would want it checked against.