Where Money Docs

Get started

Your first import

The first import sets up an account as a side effect of doing the import — and nothing else needs setting up: the layout is read off the file itself. Drop a statement on the screen and the app reads the answers out of it.

Overlapping date ranges are safe — duplicates are detected per transaction — so you never have to remember where the last export stopped.

1 — the file#

Drop the CSV on the Import tab, or click to browse. It is read in the page, not uploaded, and the original bytes are kept inside your database so a row's source is always available later.

2 — which account is this?#

If you already marked this statement's number on step 2 of a new file, there is nothing to ask: the file matches an account that exists, an Account matched chip says so, and the wizard goes straight to the import. What follows is what happens when it doesn't.

The app scans the file for account numbers, checksum-validates them, and works out which one the statement is for. That one is shown as the answer, with the reason it was picked:

ReasonMeaning
named in the file's headerPrinted in the preamble above the table — the bank naming the account. Strong.
on 96% of the rowsOn nearly every row, which only the statement's own side is.
appears 6×Nothing distinguishes it from the counterparties around it.

show rows displays the lines it was found on, so you can check rather than trust.

Every other number the file holds sits behind N other numbers in statement.csv, and opening them groups them by what is known about each:

  • seen on several rows — could be a second account of yours. Printed in full.
  • seen once — a one-off transfer, most likely someone else's account. Abbreviated to its last digits.

Pick one of those and it becomes the answer instead. If the file genuinely doesn't say — erste and pko print no owner number, Revolut prints none at all — nothing is proposed and you type the number in.

The naming form sits directly under the answer. Name the account and pick its owner kind:

  • own — yours. Money between two own accounts is an internal transfer, excluded from income and expense.
  • joint — shared. Not internal: money moved there has left this budget, so it counts as spending.
  • external — someone else's. Just a counterparty.

This affects every total, so it is worth getting right — see What counts as spending. You can change it later on the Accounts tab.

3 — review#

Read statement.csv → does the rest: the file's layout — encoding, delimiter, preamble length, date format, and which column is which — is worked out from the file itself, checked against the file itself, and the rows land on the review screen. The head says which columns were chosen; adjust opens the mapper if you disagree. Only a file the app cannot read with confidence opens the mapper on its own, pre-filled with everything it did work out.

Nothing has been written yet, and the header says so: STAGED — nothing written yet.

Beside the title is a row of counts that double as filters: parsed, will commit, categorized, uncategorized, parse errors, duplicates, skipped by you. Click a row to put it in the dock below the table; ▸ Record there opens its whole record, including the original CSV line.

Some rows arrive already categorized: the categories you kept in step 1 match their familiar merchants on the way in. The rest is fine to leave — those rows land uncategorized and show up on the dashboard as a gold slice you can click into. What matters here is that the amounts and dates look like your statement.

Then Commit N rows. Committing is also what makes the reading permanent: the layout is pinned, and every later export of the same shape reuses it as known layout.

Note

If the file has a running-balance column, the app checks it end to end and reports balance continuous. If it breaks, a red banner names the line — hard evidence that a row was dropped, doubled or parsed wrong.

Next#

  1. Categorize the rest. Transactions → category filter → Uncategorized. It has the same dock as the review screen, so tick always match as you go and the keyword becomes a rule; that is what makes the next import categorize itself. Or go back to the import and work its own dock: Import.
  2. Import the rest of your history — from here on it is drop, review, commit.
  3. Choose a save file. The pill at the bottom right says no save file yet until you do; after that every change is saved on its own.

Adding a second bank later: Set up another bank… on the Import tab runs this same guided flow.

Where Money is independent software, not connected to any bank, and its figures are not a substitute for your bank's own statements. Privacy, disclaimer & terms.