Skip to content
Open source · MIT licensed · Built with educators

Understand the Machine Behind Money.

The open-source, gamified platform teaching macroeconomics, central banking, and credit creation — one balance sheet entry at a time.

Balance sheet tiers
4Balance sheet tiers
Lessons live
180Lessons live
Free, forever
100%Free, forever

Central bank balance sheet

Tightening: holding steady

QE off

Assets

What it owns
  • Government bonds$2,100B
  • Loans to banks$480B
  • FX & gold$320B
Total$2,900B

Liabilities

What it owes
  • Bank reserves$1,650B
  • Currency in circulation$980B
  • Capital & other$270B
Total$2,900B

Both sides move together. The reserves the bank pays with are created on the spot — the sheet always balances.

Playable teaser

Don’t read about QE. Post the entries.

This is a real lesson step, graded by the same engine the app uses: place each entry on the right sheet and the right side, then find out what actually moved. No sign-up, no download.

Post the $10B purchase across both balance sheets.

The Fed executes $10B of quantitative easing, buying Treasuries from a primary dealer. The dealer keeps its account at a commercial bank, so that is where the payment is credited.

Entries to post

0 of 4 entries placed

Pick an entry, then choose whose sheet it lands on and which side. Every sheet must balance.

Federal Reserve

Issuer of the monetary base

Central bank

Assets

What it owns

  • US Treasuries$5.2T

Liabilities

What it owes

  • Bank reserves$3.1T
  • Banknotes in circulation$2.1T

Dealer’s Commercial Bank

Holds the dealer’s deposit account

Commercial bank

Assets

What it owns

  • Reserves at the Fed$80B
  • Loans and other assets$560B

Liabilities

What it owes

  • Customer deposits$640B

Place every entry, then check.

Simplified in one respect: the dealer’s own sheet is left off screen to keep two T-accounts on a phone. In the app the dealer appears as a third entity, and the same operation is replayed with randomised counterparties and amounts so the answer cannot be memorised.

The app

Five minutes a day, in your pocket.

The same course and the same challenges as this site, made for a phone — for the bus, the queue and the ten minutes before bed.

  • Every lesson works offline

    From the first lesson to the last, with no signal. The course lives on your phone.

  • Your streak comes with you

    Sign in once and your XP and day streak follow you between this site and the app.

  • Free. No ads. No tracking.

    No account needed and nothing to buy. Open source, like everything here.

Download on theApp StoreComing soon toGoogle Play
A lesson in the OpenMacro app, with the explanation after a correct answer
The OpenMacro app’s Today screen: a 12-day streak, 420 XP and the next lesson
12-day streakWorks offline

The model

Four balance sheets, one machine.

Money is somebody's liability at every level. OpenMacro teaches the whole hierarchy, not a cartoon of the top of it.

Tier 1 · The Fed & the ECB

The Central Bank

The only balance sheet that settles everything else. Its liabilities are the base of the system.

Assets

What it owns
  • Sovereign bonds
  • Private securities (APP/PEPP)
  • Gold & FX reserves
  • Discount loans

Liabilities

What it owes
  • Banknotes in circulation
  • Commercial bank reserves (M0)
  • Reverse repos
  • Government cash (TGA)

What you learn to operate

  • IORB
  • ON RRP
  • ECB Deposit Facility Rate
  • MRO
  • QE / QT

Features & philosophy

Personal finance teaches you to budget. We teach you the machine.

Three convictions shape every lesson we ship.

Not Another Budgeting App

Knowing to skip the daily coffee will not tell you why rent outran your raise. And “money basics” courses stop exactly where it gets interesting — at the point where you would have to open a central bank’s balance sheet.

Budgeting apps ask

  • Where did my money go?
  • Can I afford this?
  • How much should I save?

OpenMacro asks

  • Whose liability is this money?
  • What settles when a payment clears?
  • Which line on the Fed’s sheet just moved?

100% Open Source

Lessons are plain JSON — no React, no build step. An economist can write a T-account scenario in a text editor and open a pull request from the GitHub web UI.

  1. 1Fork the repo
  2. 2Drop a lesson file into src/content/lessons
  3. 3CI checks every sheet actually balances
  4. 4A maintainer reviews the economics

Parent & Educator Led

Built with the people who will actually sit next to the learner. Classroom and kitchen-table tools are first-class features, not an enterprise upsell.

Custom tracks

Reorder modules, hide what you have not covered yet, and pin a lesson as this week's homework.

Sponsored prize pools

Fund a bounty for your class or your kid — books, hardware, or privileges. You set the goal and award it directly.

Real rewards, if you choose

A parent or teacher can reward a learner in euros (EURC) for the XP and active time they earn. The money is theirs, and it is withdrawn on the website only. The app shows XP, never money.

Syllabus

Sixteen tracks, from tax liabilities to swap lines.

Each track builds the mechanism the next one depends on, and every one of them ends in a balance sheet you post yourself.

Live in beta9 lessonsOperates on Tier 1 & Tier 2

The Commercial–Central Bank Interface

Trace a payment from one bank to another and say exactly what settles, and in what.

  • Correspondent banking
  • Fedwire & TARGET2
  • Fractional reserves
  • SOFR & €STR

The incentive loop

The knowledge is free. The retention is the product.

Every central bank publishes its balance sheet. Almost nobody reads one twice. Rewards exist to fix that, and they are earned by demonstrating the mechanism — never by showing up.

Proof of Competency

Adaptive micro-tests and T-account scenarios with randomised parameters. The same operation comes back with different counterparties and amounts, so memorising an answer key gets you nowhere.

MacroXP & MintBucks

Points earned only through verified mastery, daily analysis streaks and module completions. Non-inflationary by design: there is no way to buy them, farm them, or trade them.

Tiered Credentials

Cryptographic attestations for a demonstrated skill — “Open-Market Operations Specialist”, “Balance Sheet Mechanic: ECB Architecture”. Verifiable by anyone, issued only against a passed assessment.

Prize Pools & Bounties

Sponsored by parents, educators and the community: books (Mehrling, Bagehot, Stigum), hardware, or family-set privileges. Sponsors fund and award them directly — never the platform.

Points and money are separate

MacroXP and MintBucks are a learning score. Nobody can buy, sell or trade them. Separately, a parent or teacher can choose to pay a learner in euros (EURC) for the XP and active time they earn. That money comes from the person who set it up, is withdrawn on the website only, and never appears in the app. Nothing here is a wager, and nothing costs a learner anything.

Contributor hub

A lesson is a JSON file. That is the whole barrier.

Economists, teachers and developers all contribute the same way: one file, one pull request. Encode a central bank operation as postings, and the app plays it.

packages/core/src/content/lessons/module-03-fed-ecb-levers/lesson-02-rrp-floor-mechanics.json
{  "id": "rrp-floor-mechanics",  "title": "The Floor Under Every Overnight Rate",  "subtitle": "Watch the ON RRP facility drain reserves and set the price of cash.",  "icon": "🪜",  "difficulty": "advanced",  "challenges": [    {      "id": "rrp-flow-step",      "type": "t_account_flow",      "prompt": "A money market fund parks $500M at the Fed's ON RRP window overnight.",      "explanation": "Total Fed liabilities are unchanged: $500M moved from the reserves line to the reverse repo line. But reserves are base money and reverse repos are not.",      "currency": "USD",      "entities": [        { "id": "fed", "label": "Federal Reserve", "tier": "central_bank",          "openingLines": [            { "account": "Commercial bank reserves", "side": "liability", "amount": 3100000000000 },            { "account": "Reverse repurchase agreements", "side": "liability", "amount": 420000000000 }          ] },        { "id": "mmf", "label": "Money Market Fund", "tier": "shadow_bank",          "role": "Cannot hold reserves" }      ],      "expectedShifts": [        { "entityId": "fed", "side": "liability",          "account": "Reverse repurchase agreements", "delta": 500000000 },        { "entityId": "fed", "side": "liability",          "account": "Commercial bank reserves", "delta": -500000000 },        { "entityId": "mmf", "side": "asset",          "account": "Reverse repo claims", "delta": 500000000 },        { "entityId": "mmf", "side": "asset",          "account": "Bank deposits", "delta": -500000000 }      ],      "aggregateEffects": [        { "aggregate": "M0", "direction": "contract",          "note": "Reserves fell by $500M. Reverse repos are a Fed liability too, but they are not base money." }      ],      "xp": 30    }  ]}

Validated in CI against packages/core/src/content/schema.ts by npm run lint:content,which rejects any scenario whose expected postings leave a balance sheet unbalanced — the mistake every first-time contributor makes.

obrunodegouveia/openmacro

Start here

Good first issues are labelled good-first-lesson.Bring the economics; we will help with the tooling. Reviews are about the mechanism, not the syntax.