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.

Sessions

2

Visibility

Public

Category

Product Build

Slug

money-tracker-3-currencies

Duration

40 min

Judge reviews

~9 per session

Active session

No

Points

25–200

Tags
  • money
  • finance
  • product
  • money-tracker
  • campaign
  • 1

    Carry the earlier parts forward

    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: and test:;
    • 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.

  • 2

    Hold several currencies at once

    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 EUR

    Scenario: Home is a choice
    When the home currency is changed to USD
    Then every total re-reports in USD
    And not one entry is rewritten

    Scenario: 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 one

    Scenario: 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 numbers

    Scenario: 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 used

    Everything 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).