Manual Method for Exporting nYNAB data to YNAB4

Manual Method of exporting data from nYNAB to YNAB 4.


Note: This procedure describes the manual method I used, there is a method someone developed that uses Python scripts to automate some of the process. The link to that method is here, I actually incorporated some of those instructions in the manual method.


1.0) Prepare nYNAB for export by performing the following :


1.1) Ensure that all hidden categories are unhidden.


1.2) Review all category names and ensure that none of the names contain (: or a `,), according to the GITHUB article YNAB4 will not recognize those, I just got rid of all special characters to be on the safe side.


1.3) ReOpen all closed accounts, not sure if this is required but I did it to get a solid view of which accounts are on budget and off budget to facilitate creating identical accounts in YNAB4.


1.4) Delete all scheduled transactions: If your not committed to going back to YNAB 4 you may want to skip this step but I think if you do not delete them you will have extra transactions in your data file that you will have to manually delete in YNAB4, it may also hamper you in the cleanup of YNAB4 as well since you will have more trouble comparing the YNAB4 account balances with nYNAB.


2.0) Export the nYNAB data as follows:


2.1) Select the budget name at the top of the screen and scroll down to Export Budget and select that. Note: You could export each account separately by selecting all transactions in that account but I would not recommend that because we will parse the all up file later to remove duplicate transfer transactions, not sure how you would do that if you exported each account individually.


2.2) Unzip the downloaded file by double clicking on it, this will extract a separate budget file and register file, you will only care about the register file, the budget file will not be used.  We will copy the register file to another directory later.


3.0) Setup accounts and categories in YNAB4 to exactly match nYNAB:


3.1) Open YNAB4 and nYNAB side by side and create the same account structure and category structure in YNAB4 as nYNAB. What I did was cut and paste the account names and category names from nYNAB so I would not make a mistake in spelling. NOTE: The GITHUB method actually uses a Python script to create the category structure but I just did it manually.


3.2) I would recommend saving a copy of the newly created YNAB4 file now so you will not have to do this step again if you mess something up later.


4.0) Prepare the previously exported nYNAB register file for import to YNAB4. This process is important as it will prepare the column structure, header names, eliminate duplicate transfers, and create individual files for each account. I would recommend creating a new working directory to hold all of the files. Copy your downloaded nYNAB register fileto this directory and rename to something meaningful and simple like nYNAB register. Do not just move the file, copy so you will still have the original file if you mess something up during the parsing process.


4.1) Open the nYNAB file with a spreadsheet app, I used Libre Spreadsheet so these instructions will center around that (Excel would be very similar). When opening the file select comma separated as the delimiter.


4.2) The nYNAB file will have the following columns:

Account, Flag, Date, Payee, Category Group/Category, Category Group, Category, Memo, Outflow, Inflow, Cleared. 


4.3) YNAB4 uses the following columns so see step 4.4 on how to prepare the column headers of nYNAB to match the required format.

Date, Payee, Category, Memo, Outflow, Inflow


4.4) Delete columns Flag, Category Group, Category, (these will be the second and third category columns, do not delete the first category column Category Group/Category), and Cleared.  CAUTION: Do not delete the Account column yet as it will be needed for further parsing.


4.5) Rename the column Category Group/Category to Category to match YNAB4’s naming convention.


4.6) Use the spreadsheet find and replace function to rename all Categories named “Inflow: Ready to Assign” to “Income: Available this month”. This will save you a lot of time trying to recategorize them in YNAB 4.


4.7.0) Delete all duplicate Transfer transactions as follows: Note: Transfer transactions show up in two accounts, you only want them in one account.


4.7.1) Use the filter function for the Payee column and only show rows that have payees that begin with Transfer.


4.7.2) Next filter the Output column to only show transactions that has 0 as the value, these will be the transactions to delete as follows:


4.7.3) Select all rows below the header row, you do not want to delete the header. CAUTION: If you notice the row numbers are not sequential so do not just delete these as I think you will also delete the hidden rows in between the selected rows, another selection step is required. Once the rows are selected, use the “Edit/Select/Select Visible Rows Only” function to eliminate the selection of the hidden rows. You can now delete the selected rows to remove the duplicate transfer transactions.


4.8) Now, remove the filter placed on the Payee and Output rows so all transactions are showing in the file. This would be a good time to save the file as a “.csv” file but leave it open for further parsing.


4.9) Sort the file by the Account column.


4.10.0) These next steps will build individual files for each account, I will go through the first account , just repeat for each account.  I think this is where the Python script at GITHUB would help but I am describing the manual process.


4.10.1) Filter the Account column to just show the first account (I’ll call it Account One).


4.10.2) Create a new spreadsheet file for Account One using the File/New/Spreadsheet function.


4.10.3) Select all rows including the header row in the nYNAB file and then use the copy function to place this data in the clipboard.


4.10.4) Go to the Account One spreadsheet and place your cursor in the first cell and use the paste function to paste theAccount One data. Go ahead and save that file as “Account One.csv” now. The reason I recommend saving now is because the next step removes the Account column and I used that as a reminder to help me with the save as naming. In my case the first account was AMEX so I saved it as AMEX.csv.


4.10.5) Now in the Account One spreadsheet delete the account column and then resave the file, this file is now ready to import but I would create all files first.


4.10.6) Repeat 4.10.1 through 4.10.5 for each account in the nYNAB spreadsheet. You will end up with a file for each account that is named Account.csv for each account you have. Now we can import each file in YNAB4.


5.0) Import the account.csv files into YNAB4 as follows


5.1) Open the YNAB4 file you created with the matching account and category structure. This is where it is a good idea to have an empty backup of this file in the event you mess up the import process (import to wrong account, import an account twice…).


5.2) Select the first account register in YNAB4 and then use the Import button at the top of the register and point to the import file corresponding to that account. In the import window ensure that the correct account to import the data to is selected in the pull down menu, if not you will import to the wrong account and will have to start over. Ensure that the check box ”Include transactions dated before account start date” is selected if it is visible, some accounts in my case did not have that box.  Ensure sure that the date format pull down menu is selected to Month/Day/Year. Ensure the Memos box is checked at the bottom to import the memo field, do not check the swap with payees box.


5.3 Now select the blue Import button at the bottom right of the import window to import all transactions to the selected account.


5.4 In the selected account window approve all imported transactions. You should not have any caution messages but if you do the culprit may be a mis-spelled account or category name, or a missed category. I had some the first attempt because I did not rename the “Inflow: Ready to Assign” to “Income: Available this month” category to match YNAB4.


5.) Repeat steps 5.2 – 5.4 for each account. Do not worry about each account balance until you have all accounts imported.


6.0) Compare each account in YNAB 4 with each account in nYNAB to ensure the balances match, more than likely they will not. If they do not match sort the account in YNAB4 and nYNAB with the same order to facilitate troubleshooting. The most likely culprit will be the starting balance transactions, I had trouble with those transactions not matching. Manually adjust those in YNAB 4 to match nYNAB. Others have also experienced this same issue. This did not happen on all of my accounts but YNAB4 seemed to just make up numbers for starting balance in some accounts.


7.0) You can now go to your budget screen and allocate the budget as desired.  Feel free to optimize this manual procedure and repost.

5replies Oldest first
  • Oldest first
  • Newest first
  • Active threads
  • Popular
  • Very interesting procedure...will have to look at this more closely this evening....Thanks ynaber2613

    • DosBoss57 It is a labor intensive process.  If you have a lot of accounts you may want to try the semi automated process in the link at the top of the procedure.  I could not get the Python script to run due to syntax errors.  I have another nYNAB file that I want to export back to YNAB4, I think I will try the Python process again to see if I can get it to work.

      • SgtBatten
      • "YNAB broke" since 2013
      • SgtBatten
      • 1 mth ago
      • Reported - view

      ynaber2613 Seems to be incompatible with windows (at least some builds) currently

    • SgtBatten I am actually using a Mac, I probably typed the script wrong or was using the incorrect version of Python.  I noticed later that Mac recommends Python version 3.x and will not recognize version 2.x in the next OS release.  Also, Superbone posted his exact script, I have not tried that yet.  I will try Python version 3.x later and see if it works with the correct script syntax.

    • SgtBatten  I actually used the manual method for my last file to export to YNAB4.  I only had 13 accounts in that file so the manual method worked fine, I did not feel like trying the Python script.  I have also gotten used to the manual method and it was rote by the time I exported that file.

Like2 Follow
  • 1 mth agoLast active
  • 5Replies
  • 122Views
  • 2 Following