The short answer

The Monzo file has 20 columns, dates written as DD/MM/YYYY and one signed amount column. The CSV written for Wave has the columns Date,Description,Amount. So the date is rewritten as MM/DD/YYYY, the amount is written as one signed number, and the text columns are moved as in the table below.

Free. The Monzo profile is one of the 5 free profiles of the converter. The free version writes the first 25 converted rows of a file; the 9 USD one-time licence removes that limit.

Open the converter

The converter runs in your browser. Your file is not uploaded.

What the Monzo CSV looks like

Note kept with this layout in the profile data: Twenty columns. The signed Amount column is used; Money Out and Money In repeat it as two columns. Older exports differ: the Firefly III config lists 18 columns ending in separate money-out and money-in columns, and bank2ynab lists a 12-column export with ISO timestamps. If the header does not match, fall back to manual mapping.

What Wave accepts

The file the converter writes for Wave: Date,Description,Amount
Wave columnRequired by WaveFilled from the Monzo file
Daterequiredcolumn 2 "Date"
Descriptionrequiredcolumn 5 "Name", column 15 "Description" and column 12 "Notes and #tags"
Amountrequiredcolumn 8 "Amount"

From a web search excerpt of the vendor's help page (the page itself refuses automated reading; re-check it in a browser): "To import properly, your CSV file must have three or four columns: date, amount of the transaction (all in one column, or one column each for deposits and withdrawals), and description."

Column-by-column mapping

Every column of the Monzo file, left to right, and where it ends up in the Wave file.

ColumnHeader textWhat it holdsWhere it goes in the Wave file
1Transaction IDReference or check numberNot copied
2DateTransaction dateDate, rewritten as MM/DD/YYYY
3TimeNot usedNot copied
4TypeNot usedNot copied
5NamePayee or counterpartyDescription (first part)
6EmojiNot usedNot copied
7CategoryCategoryNot copied
8AmountAmount, signed (negative is money out)Amount, sign kept (money out is negative)
9CurrencyCurrencyNot copied
10Local amountNot usedNot copied
11Local currencyNot usedNot copied
12Notes and #tagsMemo or noteDescription, after the bank's description text
13AddressNot usedNot copied
14ReceiptNot usedNot copied
15DescriptionDescriptionDescription, after the payee
16Category splitNot usedNot copied
17Money OutNot usedNot copied
18Money InNot usedNot copied
19BalanceRunning balanceNot copied
20Balance currencyNot usedNot copied

Pitfalls for Monzo to Wave

Dates

Amounts and their direction

Shape of the file

Other Wave import rules

Before and after: an invented example

Invented sample data. These four rows were made up for this page. They are not from a real Monzo export and hold no real account, name or balance.

The column headings are the header text the source prints. The 11 unused columns of the file are left out of the table.

Before: rows laid out like the Monzo file
1: Transaction ID2: Date5: Name7: Category8: Amount9: Currency12: Notes and #tags15: Description19: Balance
S000104/03/2024Coffee CornerEating out-4.50GBPCard purchaseCOFFEE CORNER MAIN ST995.50
S000205/03/2024Example CoIncome2500.00GBPSalary MarchPAYROLL EXAMPLE CO3495.50
S000307/03/2024Sample LandlordHousing-1234.56GBPStanding orderRENT MARCH2260.94
S000411/03/2024Example ShopShopping15.25GBPRefundREFUND EXAMPLE SHOP2276.19
After: the same rows as a Wave file (Date,Description,Amount)
DateDescriptionAmount
03/04/2024Coffee Corner - COFFEE CORNER MAIN ST - Card purchase-4.50
03/05/2024Example Co - PAYROLL EXAMPLE CO - Salary March2500.00
03/07/2024Sample Landlord - RENT MARCH - Standing order-1234.56
03/11/2024Example Shop - REFUND EXAMPLE SHOP - Refund15.25

Do it by hand in a spreadsheet, free

These steps need no tool from this site. The cell references follow the column positions of the profile above; if your spreadsheet uses semicolons between formula arguments, replace the commas.

  1. Open the Monzo CSV in a spreadsheet program through its import dialog. Set the date column (column 2 "Date") to Text so the program does not reinterpret it, and leave the amount columns as numbers.
  2. Row 1 is the header and the transactions start in row 2.
  3. Date: rewrite column B from DD/MM/YYYY to MM/DD/YYYY (04/03/2024 becomes 03/04/2024). In a new column, for the first transaction: =MID(B2,4,2)&"/"&MID(B2,1,2)&"/"&MID(B2,7,4) This formula reads the date by character position, so it only works while the dates are text and every date has a two-digit day and month. Fill it down.
  4. Amounts: column H is already signed the way Wave wants (money out negative). Copy it as it is.
  5. Text columns: fill Description (from column 5 "Name", column 15 "Description" and column 12 "Notes and #tags"). Where several bank columns feed one column, join them with a separator such as " - ".
  6. Apply Wave's own rules from its help page: Keep only the date, amount and description columns; delete any other columns. The description column can be empty, but if filled it must contain words, not only numbers. Remove special characters such as #, &, $ and * from the file. Files with more than 100 rows tend not to upload; split them into files of no more than 100 rows each.
  7. Keep only the new columns, put the header row Date,Description,Amount on top, save the sheet as a comma-separated CSV, and compare the dates, the direction of the amounts and the number of rows with your statement in Wave's import preview.

Or use the converter

Load the file, choose the Monzo profile in the bank list and the target Wave, read the preview, then download. The conversion runs locally in your browser: the file is not uploaded, and only the licence key is sent for unlocking.

Free. The Monzo profile is one of the 5 free profiles of the converter. The free version writes the first 25 converted rows of a file; the 9 USD one-time licence removes that limit.

Open the converter Licence terms

Where this layout comes from

No bank supplied or approved this layout. It was copied on 5 October 2026 from a public open-source importer file kept by volunteers: simonmichael/hledger, file examples/csv/banking/monzo.csv.rules

Also read: firefly-iii/import-configurations, file gb/monzo/default.json

The lines used from the source: header in a comment: Transaction ID,Date,Time,Type,Name,Emoji,Category,Amount,Currency,Local amount,Local currency,Notes and #tags,Address,Receipt,Description,Category split,Money Out,Money In,Balance,Balance currency ; sample row amount -13.75 for a card payment

The Wave rules come from the vendor's own help pages: support.waveapps.com/hc/en-us/articles/208621626-Upload-a-bank-or-credit-card-statement-in-csv-format (named as text, not linked), support.waveapps.com/hc/en-us/articles/208622596 (named as text, not linked). The official page refuses automated fetches (HTTP 403 or a script-only page), so the rules were read from web search excerpts of that same official URL on the checked date. Re-check in a browser before relying on a detail.

Bank formats change. Banks alter their CSV exports without notice and vendors change their import rules, so this mapping can be out of date. If the preview looks wrong, use the manual column mapper.

Related pages

Monzo to other apps

The Monzo guides for YNAB, QuickBooks Online and Xero, in the bank list

Other United Kingdom exports to Wave

All banks and apps