This model has a single traded commodity (food). There are multiple “locations” within the model (currently two), with a single fiat currency. (The locations are currently green circles on a black background, and with sufficient imagination, are planets.)
The entities currently within the model are the following.
An aggregated household sector at each location. They have an exceedingly simple consumption function.
An (aggregated) Job Guarantee Program that hires workers and has them produce food.
This creates the simplest possible closed economic loop: workers get paid money, which they use to buy food. Since the Job Guarantee program is the only food producer, and households need food to survive, there is actually no need for taxes - buying food is the cash drain. However, this is not entirely satisfactory, so I want to add a private sector.
There will be individual firms that produce food. These firms fit the bill of being actual agents, as opposed to the previous entities that are actually aggregates. They will hire people, hopefully produce and sell food at a profit, and then distribute dividends. (Otherwise, the firms will end up hoarding all the money.)
There will “travelling agents” that buy and sell food at a location, and can transport them to other locations. (Think spaceships.) I already have a player-controlled travelling agent, but it is not yet connected to the markets.
Most of the previous work was getting to the stage where we can see the simulation results in real time on the screen. The screenshot above shows the current client. The “travelling agent” (blue square) is at the location “Orth,” and the current market pricing is available: a bid/ask of $86/$91, with a last price of $91. (The player cannot see the prices at the other location — Mors — because the intergalactic trading terminals lack faster-than-light communications.)
Once I could see what is happening, I discovered that my model code was full of bugs (as somewhat expected). I hopefully cleaned those up, and the simulation is now running closer to as intended.
The problem with defining agent behaviour is that typical business logic requires access to at least some prices. However, my simulation starts with no inherited contracts nor prices — which does not happen in the real world, since we have yesterday’s economy that generated prices and contractual relationships for the future. Without any dollar price information whatsoever, we have a chicken and egg problem: it makes no sense to enter into any contract (in this case, enter a legally binding bid or offer into the market) without some notion of what the “price level” should be.
Modern Monetary Theory to the rescue! The Job Guarantee programme creates a bid price for labour, giving firms a benchmark for setting their offer price for wages. And once they have their wages set, they can then set output prices as a markup over input costs (which are 100% labour in the model at this point). By putting the Job Guarantee in first, the markets can get initial bid/offers set by government fiat, and then the private sector can start to work.
In order to make the results look sensible, I will work with the following assumptions.
Private sector food production is more capital intensive, and is more productive.
Productivity will vary between locations.
The central government will start buying a certain amount of food (for example, to provision the armed forces).
I expect that under these conditions, the simulation will move towards a steady state, with the amount of production done at private firms (versus the Job Guarantee) depending on the relationship between the flat tax rate and government consumption. Wage prices will be relatively uniform across locations, and goods prices related to them by productivity and how much shipping capacity there is to even out prices.
Why a Steady State?
I want a model which evolves towards a steady state so that we can compare an agent-based model outcome versus one that we could guesstimate based on aggregate analysis. For example, we could build a stock-flow consistent model, and see what steady state it evolves towards.
Once I am happy that the simulation is doing what I expect, I want to create instability by adding new commodities, most importantly capital goods. I want to create a series of models that gravitates towards Minsky’s Financial Instability Hypothesis.
Food is a stand-in for “necessities.” It may be that I will look at some post-Keynesian research on consumption functions, but for now, I am working with my intuition that suggests that households have a target amount of necessities that they want to buy before they start spending on optional purchases. I want the economy for things like food to be like it is in the modern developed economies — not a major source of economic instability.
I have the Job Guarantee producing food because I want to use this simulation for a hobby video game. Generally speaking, you want to design a video game economy so that there are no obvious exploits. With the consumption function I have in mind, the obvious exploit is to hoard food in order to corner the market. Since the household sector is not price sensitive for food, a corner could be immensely profitable. By having the government maintaining a stockpile of food, it will be much harder to corner that market. Instead, I want to force the thinking to be about how to maximise profits in the more cyclical parts of the economy.
(Note: I want to discuss the more technical side of my projects on the Patreon I use to support my open source project work, but this update is more on the economics, so I put it here.)