Converts from bank transactions exported as CSV to the format accepted by YNAB4.
Besides being much nicer to use than a simple spreadsheet, YNAB4 was great for two reasons:
- One-time cost.
- Data stored locally, with the option of uploading to Dropbox.
The new, web-based YNAB follows a monthly subscription model. Paying $7 to make my monthly budget just does not make sense for me. Also, I don't want to be forced to store all my bank data on their servers.
- Clone or download the repository
- Refer to the User guide
- Python ^3.10
Using Bank2YNAB4 is straightforward:
- Run
bank2ynab.py
to launch the application. - Select one of the available banks from the drop-down menu.
- From the dialog, find and select the CSV file from the bank (a header is assumed to exist in the CSV-file).
- If conversion succeeded, then the converted CSV file is written to
ynabImport.csv
in the same directory asbank2ynab.pyw
.
- Nordea [SE]
- ICA Banken [SE]
- Revolut ([SE] tested)
Banks are defined using TOML-configuration files found in the banks directory. These are used to tell Bank2YNAB how to interpret the columns in a CSV statement file. A template config is provided as a starting point for defining a new bank. Filling out the template should hopefully be clear from the comments. Nevertheless, a short description can be helpful:
- Create a new bank config by copying and renaming the template.
- Give the bank an appropriate
name
and specify all delimiters and the date format used. - Fill out the
ynab_mapping
table with the corresponding column names from the bank's CSV statement.
Some keys in the template's ynab_mapping
table are optional.
However:
- The
date
key must exist in theynab_mapping
table. - You must provide both the
outflow
andinflow
keys.- If your bank only provides an 'amount' column, you should use that column name for both the
outflow
andinflow
. - You can assign a list of column names to
outflow
if your bank, for example, has multiple outflows (such as an extra 'fee' column).
- If your bank only provides an 'amount' column, you should use that column name for both the
The new bank is automatically included in the drop-down menu of available banks.