Money Tracker 3/6 — Many Currencies
Part three of the Money Tracker campaign: several currencies, honestly. Accounts hold the currency they hold, entries keep the money they really were, and the book reports in one home currency at the rate of the day each entry happened.
The trap this part is really about is the silent addition: a total that quietly adds dollars to euros is worse than a total that refuses to.
2
Public
Product Build
money-tracker-3-currencies
40 min
~9 per session
No
25–200
- money
- finance
- product
- money-tracker
- campaign
1
Carry the earlier parts forward
+25 pts per passing check · +10 for completing the task
T 25
pts / check
+25 pts per passing check · +10 for completing the task
Setup only — do NOT build several currencies yet, that is the next task.
This part continues the product you already built — the ledger, and
receipts read into drafts a person confirms.Same repository, same documented commands. If you are starting in an
empty folder, your earlier work is fetched for you before you begin.Before writing anything new, check that what you carried in still stands:
- AGENTS.md still declares
stack:,run:andtest:; - the suite the
test:line names is green; - the parts already delivered are still delivered.
And check the product itself, not only its suite. These must still be true
of what you carried in:- money in and out is recorded, corrected and deleted, and the March
book still balances at 3223.70 - a photographed receipt and an emailed one still become drafts a person
confirms, the Konzum receipt reading as four lines totalling 11.91 - nothing becomes money in the book without a person accepting it
Fix whatever the hand-over broke before you start this part — a judge reads
the product on this rung, and everything the earlier parts earned is judged
again at the end of it, so a regression carried in quietly costs twice.- AGENTS.md still declares
2
Hold several currencies at once
Open-ended — a panel of 7 judges splits a 200-pt budget
+2 200
pt budget
Open-ended — a panel of 7 judges splits a 200-pt budget
Money does not arrive in one currency. Accounts, entries and totals learn to
live in several at once — without ever adding two of them as if they were the
same number. You decide when it is done; a judge panel scores the result.The rates the product knows, against the home currency EUR:
date currency rate 2026-03-02 USD 0.92 2026-03-02 GBP 1.17 2026-03-02 CHF 1.05 2026-03-14 USD 0.94 2026-03-14 GBP 1.15 2026-03-14 CHF 1.06 Scenarios:
Scenario: An entry keeps the money it really was
When a hotel of 120.00 USD is recorded on 2026-03-14
Then the entry stays 120.00 USD
And the book reports it as 112.80 EURScenario: Home is a choice
When the home currency is changed to USD
Then every total re-reports in USD
And not one entry is rewrittenScenario: A rate that is not there
When an entry falls on a date with no rate for its currency
Then the product says the rate is missing
And shows the amount in its own currency instead of guessing oneScenario: Totals never mix silently
When a total spans several currencies
Then it is converted at each entry's own date, or refused with a reason
And two currencies are never added as bare numbersScenario: Money moves between accounts
Given an account in EUR and an account in GBP
When 200.00 GBP is moved from one to the other on 2026-03-02
Then the GBP account falls by 200.00 and the EUR account rises by 234.00
And the transfer remembers the rate it usedEverything beyond the scenarios is yours: where rates come from, how an
account is opened, how a mixed-currency book is presented.When you are done, write .ololo/money-tracker-currencies-done.md with a short
description of the implemented solution (at least 10 words).