I was a little disappointed to find that there’s no simple way of generating statements from the Monzo app, so I set about creating my own permanent record by exporting “all spending” to a CSV file and importing the data into a spreadsheet.
I found that the data doesn’t contain a running balance (as one would normally see in a bank statement), so I inserted a column and calculated the balance after each transaction. I then found that the sum of all credits minus the sum of all expenditure didn’t equal the current balance shown in the app.
This discrepancy is wholly explained by the presence in the CSV file of several duplicated transactions, where each series of duplicates is a few seconds apart and refers to a single real transaction. For example:
I’ve just reported this in the app chat and Monzo responded:
The CSV export is a very raw export of the transaction data used to make the feed. Transactions have two parts which mean there will be duplicates in the CSV.
There’s no way to identify duplicates within the CSV file, other than by manual inspection, so this feature/bug rather limits the utility of the CSV export.
Monzo added that they can now do bank statements internally and that it won’t be long before there will be better ways of exporting data.
Incidentally, I think that the duplicates result from declined attempt(s) immediately followed by a successful transaction.
Reported the same bug a couple of months ago when the Android export was added. It’s definitely declined transactions showing without a flag (which is already the case for things like ‘Active Card Check’ that is flagged in the Notes field).