On banking projects for National Bank of Greece and Eurobank, I learned that a number is only useful if you can say where it came from. This article explains what that means, why most personal-finance apps leave it out, and how I've built Euporia, my personal-finance app for Greece, around it.
I'll call it provenance: the record of where a number came from, when it was valued, and how it was calculated.
What provenance means
Think of a receipt. It tells you the shop, the date and what you paid for. If a charge on your card looks wrong, the receipt is how you check it.
A number with provenance carries its receipt with it. A balance on a screen was produced by someone or something: a bank, a file you imported, or you typing it in. It was correct at a certain moment. If it mixes currencies, it was converted at a certain rate on a certain day.
In a bank, that information travels with the number. If it doesn't, nobody can check the number, and nobody should make a decision based on it.
Why most personal-finance apps leave it out
Most personal-finance apps I've used show a total and expect you to trust it. Net worth: €128,430. Spent this month: €2,481. They rarely say which accounts are included, when they were last updated, or whether anything was estimated.
That keeps the screen simple, and most of the time it's fine. The problem shows up when a number looks wrong. Without its history there's no way to find out why, so you start doubting every other number too. For a finance app, losing that trust is the end of it being useful.
How Euporia records it
I designed Euporia so every number shows where it came from. In practice that comes down to three rules.
Every transaction has a source. It was imported from a file or added by hand. Open a transaction and its Source line says which, with the file's name and when it was imported.
Totals across currencies show their rate. If your accounts are in euros and dollars, the total says which exchange rate it used and from what date, for example Valued 14 Sep · FX: frankfurter.app (ECB). The rates are the European Central Bank's, published through frankfurter.app.
The AI only explains. Euporia's weekly review summarises your numbers and suggests what to look at. It never changes a transaction or a total.
{
"amount": "-42.80",
"currency": "EUR",
"description": "Groceries",
"source": "imported",
"importedFrom": "statement-2026-09.csv",
"recordedAt": "2026-09-14"
}What it costs
Provenance isn't free, and it's worth being clear about what it takes.
Every path that creates a number has to record its source. There's no shortcut where a value appears from nowhere. That makes new features slower to build, because each one has to say where its numbers come from.
There's more text on screen. One line under each important number is useful, but ten of them would be noise. I keep it to small grey captions and show it where a decision depends on the number.
The same money can arrive twice. Once bank connections arrive, a transaction can come both from an imported file and from the bank. The app has to decide which record wins, and provenance is what makes that decision possible.
What's next
Euporia is in private beta, and I'm working on connecting bank accounts directly. That's where provenance gets tested hardest, and I'll write about it here when it ships.