dumb csv merger for dealing with YNAB/amex shenanigans
add instructions for making release builds
fix bug with memos on split transactions


browse  log 



You can also use your local clone with git send-email.


I wrote this to help me when I reconcile my accounts in YNAB.

It takes as input two CSV files containing transaction records. One of the CSVs should be exported from YNAB, and the other should be exported from the account that's being reconciled against. The YNAB csv must have columns for payee, memo, date, outflow, and inflow. The other csv must have columns for date, description, and amount.

After joining any split transactions in the YNAB csv and summing inflow and outflow, this program does its main work. For every transaction from one of the CSVs, it gets all transactions from both CSVs that match the price of the selected transaction and merges them into a main CSV. When discrepancies are found, empty records are added on the side that's missing a transaction. The intention is to take the resulting CSV from this program, open it up in Excel or LibreOffice, and be able to easily visually inspect the discrepancies.

Result tables look like this:

date payee cost date payee cost
4/4/22 parking 0
4/2/22 THING 1
4/1/22 WEB HOST 5 4/1/22 WEB HOST 5
3/30/22 COFFEE 6 4/3/22 COFFEE 6
4/3/22 COFFEE 6
3/27/22 COFFEE 7

You can see that YNAB knows about THING, but that transaction isn't in my creedit card statement. That can happen when the transaction is still pending on my credit card account (some credit card servicers don't include pending transactions in CSV exports) or when the transaction is incorrect, and should be removed from YNAB entirely.

You can also see that I'm missing some transactions from my credit card statement in YNAB. This can happen when I haven't added transactions recently or when the range of transactions I grab from YNAB when building the CSV doesn't exactly match the range I exported from my credit card.

This is a dumb tool that automates a process I do frequently; please only input transactions into your budget that you've verified yourself.

#Build instructions

git clone https://git.sr.ht/~luciano/reconciler
cd reconciler
yarn install
yarn shadow-cljs watch reconciler

This will run and build the application and serve it up on http://localhost:3000. Building takes some time, but no more than a minute.

To build for release:

yarn shadow-cljs release reconciler