fix #3
add instructions for making release builds
fix bug with memos on split transactions
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:
OTHER | YNAB | |||||
---|---|---|---|---|---|---|
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.
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