1The agents & how money flows
Mark-0 is a closed economy: every dollar that leaves one agent arrives at another (money is conserved). Five agent types interact. Firms are a heterogeneous population (~10,000); the household, central bank, bank and energy sector are each a single representative agent.
2The feedback loops
The economy's behaviour comes from a handful of loops linking the agents' variables. R = reinforcing (amplifies), B = balancing (dampens). Select a loop to trace it; dashed arrows are negative links. Press play to overlay live values from a run.
3Parameters & their defaults
Every modelling choice is a named parameter with the paper's Table-1 default. They live in
config/params.yaml (Python) and mark0.js DEFAULTS (web). Grouped by the agent that uses them.
| Symbol | Parameter | Default | Enters |
|---|
4Extending the model — the sandbox plan
The engine routes everything through one contract: a firm-state array set plus a parameter object, advanced by a fixed sequence of per-agent update rules inside one monthly loop. That makes the model a sandbox — complexifying an agent is editing its rule; adding an agent is three steps.
To add a new agent (e.g. a government, a second sector, or a
heterogeneous banking network): 1 · add its state arrays + parameters
2 · insert its update rule at the right slot in the monthly loop
3 · wire its money flows into the conservation identity — then expose its controls here.
The faithful base lives in src/mark0/kernel.py; the COVID layer is an optional add-on in the same file (CovidConfig), which is exactly the pattern a new agent follows.