Monzo CSV to Beancount
Convert a Monzo bank statement CSV into balanced double-entry Beancount transactions — day-first dates and the per-row Currency column are already mapped, and Pot transfers arrive in the same file.
Column mapping verified against a real Monzo export
How to export your Monzo transactions
- 1
In the Monzo app, tap the three vertical dots on your card.
- 2
Tap Bank statements, then choose the date range you want covered.
- 3
Choose CSV as the format. The same screen also offers PDF and QIF, neither of which this converter reads.
- 4
Paste the export below. A Monzo Business account exports from the web instead: log in at business.monzo.com and use Export statement on the home screen.
Monzo dates run day-first, and only one of its two amount columns is yours
01/08/2026 in a Monzo export is the 1st of August, and the preset is set day-first for you — read the other way round, eight months of a year's transactions land in the wrong month and nothing visibly fails. A US Monzo account is the exception: it exports month-first, so flip the date-order control if that is you. The second trap is the pair of amount columns. Amount is in your account's currency and is what actually moved your balance; Local amount is what the merchant charged in theirs, so a 89.99 euro purchase appears as -78.30 GBP and -89.99 EUR on the same row. The preset maps Amount, and takes the payee from Name — the cleaned merchant name — rather than the padded bank descriptor in Description.
Beancount output
Monzo export questions
Is 01/08/2026 the 1st of August or the 8th of January?
The 1st of August. Monzo writes UK dates day-first and this preset is configured that way, so there is nothing for you to change. The one exception is a US Monzo account, which Monzo staff have said publicly exports month-first — if that is your account, switch the date-order control before converting, because a misread date produces a plausible-looking ledger rather than an error.
Why does my coffee in Amsterdam show two different amounts?
Because it is two amounts. Local amount is what the café charged in euros; Amount is what left your account in pounds once Monzo had converted it. Your ledger wants the pounds, so this preset maps Amount. If you want the original currency on the record too, add it as metadata on the transaction rather than switching which column is mapped.
My Pot transfers look like spending.
Monzo includes Pots in the same export, and the converter can only post one side of a row to the account you named — so the other side lands in the placeholder category account. Change that posting to the Pot's own account, say Assets:Monzo:Holiday, and the transfer balances between two accounts you own instead of reading as an expense.
Keep the ledger you just converted
Beancount.io hosts your plain-text ledger, imports future statements for you, and keeps every number auditable.
Start Free→