Understand the Machine Behind Money.
The open-source, gamified platform teaching macroeconomics, central banking, and credit creation — one balance sheet entry at a time.
Or browse all 180 lessons. Already learning? Sign in
- Balance sheet tiers
- 4Balance sheet tiers
- Lessons live
- 180Lessons live
- Free, forever
- 100%Free, forever
Central bank balance sheet
Tightening: holding steady
Assets
What it owns- Government bonds$2,100B
- Loans to banks$480B
- FX & gold$320B
Liabilities
What it owes- Bank reserves$1,650B
- Currency in circulation$980B
- Capital & other$270B
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 bankAssets
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 bankAssets
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.


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.
- 1Fork the repo
- 2Drop a lesson file into src/content/lessons
- 3CI checks every sheet actually balances
- 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.
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.
{ "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.