Development Notes

The macroeconomy

Our philosophy, approach, and implementation

MarketSimulator Macro Explorer showing the classified economic regimes across 89 runs and 240 quarters.
Our internal tool for testing the macroeconomy across many seeds and analysing the results.

Our goal for the macroeconomy is to be a semi-realistic generator for a complex, deep simulation. We want it to be varied and unexpected, but still recognisable. If you look at all the values, you should be able to interpret them in the same way you would in real life and draw strong conclusions from them.

The simulation behind it

If you look at a company or an industry, no single value should stand on its own. Where does demand come from? It should come from the macroeconomy. Where does supply come from? From the companies in that industry. Every number should come from somewhere.

If you look at the macroeconomic numbers and ask why they are this way, or why inflation is that high, you should be able to point to policy, companies and the consumer market. We simulate that inflation figure without simulating entire countries to arrive at it. We will not simulate job gains, job losses and all of that. We want to improve this, but the macroeconomy will still have some of this magic unless we simulate the whole world. All the values should mean something and have the same meaning they do in real life.

We are not going to have too much hidden truth in the macroeconomy. Newspapers will publish the numbers and roughly what is happening. They can be slightly wrong, and things can suddenly change, but the macroeconomy is not fully hidden.

Actually understanding the macroeconomy

Understanding and being able to read the macroeconomy is essential to investing and operating companies well. You will have booming economies where you should just go all-in. You will have recessions where finding shorts is simply very profitable. It is about knowing when to rotate into bonds and when to rotate into stocks. It is also about knowing what to do with the companies you control as the economy changes. Maybe you would want to invest in gold or mining companies instead of tech.

A distinct profile per seed

Playing across different seeds lets us introduce a large amount of variation, though I should not call it randomness. It is more like a distinct profile per seed. If you start another seed, you might end up in a completely different regime and macroeconomy, where a different set of moves would be ideal. I do not want this game to have a clear winning strategy.

Across a very large number of seeds, we want the averages and all of the stats to look realistic. The distributions have to make sense in terms of the number of recessions and booms, and typical economic events like credit crunches. We allow more variance and more real outliers. Quite a bit more, actually. A single run can be quite wild, but I still want it to be semi-realistic. That is an invariant.

If it is not realistic, this game does not make any sense. The problem is that realism can be too slow and sometimes boring, so we pump it up a little bit. But if you make the macroeconomic simulation too complex, it becomes a mess, so we are trying to keep it manageable. At a later stage, we could massively expand it, but today I am not convinced that simulating more would fundamentally change the game. Once we go into industry expansion, we might add more macroeconomic values, but that is for later. For now, it is supposed to be manageable and make for a really good, balanced game.

A hundred-run distribution

We track a ton of stats per game. We look at how many games are unacceptably negative, how many are nothing but booms, and how much variance there is both within and across games. For every game, we ask: if I play for the first ten years, would it be fun? The first twenty? The first fifty? Is there enough variation?

We put a whole lot of tests around this analysis. We test how a hundred-run distribution should look, then the individual runs inside it and the requirements they have to meet. Whenever we change the macroeconomy, we can automatically check whether it still meets our needs for a semi-realistic, interesting economy.

The tests do not define fun. But they do tell us whether the economy provides varied environments across runs. They set the conditions for potential fun, and without enough variation the game would instantly be dull.

Calibration tooling

We have built all kinds of calibration tooling, and AI makes large-scale analysis practical for us in a way it was not before.

At the core, we chose a small set of values to represent the macroeconomy:

ValueWhat it means
Output gapHow far the economy is running above or below what it can sustainably produce.
InflationHow quickly prices across the economy are rising.
Policy rateThe main short-term interest rate, which affects borrowing, saving, and demand.
Credit spreadThe extra interest borrowers pay when credit is riskier or the financial system is under strain.
Financial fragilityHow vulnerable the financial system has become after things like easy credit and overinvestment.
Energy pricesHow far energy prices have moved away from normal, feeding into both activity and inflation.

The large test sets and analysis tools let us keep control of it. We can tune the macroeconomy to make it more interesting while making sure the things we want to preserve stay the same. If we make a huge change, we can see how it affects the economy across a lot of games.