frzxw
Resume
Blog

Store the history, not just the number

Two very different products, a crypto terminal and a school savings app, ended up with the same rule for money: never edit a number, only add a record. Why that matters, and what it costs.

The simplest way to store money in software is a single number. A student has 150,000 rupiah, deposits 20,000, and you change the number to 170,000. It is quick to build and easy to read.

It is also impossible to check. When the number is wrong, nothing tells you how it got that way.

The rule

In Sakola, a savings platform for schools, money follows one rule: a balance is never typed in or edited. Every deposit and every withdrawal is added as a new line, like a bank statement you can never erase, and the balance is simply the total of the lines. The first version of Invictus handled money the same way.

What it gives you

  • Every balance can be explained. Show the lines, and the number adds up.
  • Mistakes stay visible. A wrong deposit is fixed by adding a correcting line, so the history shows both the mistake and the fix.
  • Many features come for free. Passbooks, daily cash checks and notifications to parents are all just different ways of reading the same list.

The process around it matters as much

A good record makes changes honest; a good process makes them safe.

  • Two people for every withdrawal. One staff member records the request and another approves it. It is slower on purpose, because the money belongs to children.
  • A daily check. At closing time the treasurer counts the cash in the safe, note by note, and the system compares it with what the records say should be there.

What it costs

Adding up lines takes more work than reading one number, and people expect an edit button. The design has to make "add a correction" feel as natural as "change the number", and explain why. For a school that is a small price for being able to answer any question about any rupiah.