5 ms·
I tried this out and switched to ledger-cli instead. All of the features listed above are possible and the the flexibility is incredible. The hardest part is da
by rlh2 3y ago
I tried this out and switched to ledger-cli instead. All of the features listed above are possible and the the flexibility is incredible. The hardest part is data entry. For accounts that provide API access I wrote curl/jq/awk parsers and for accounts that you can only get via download, I wrote short csv parsers in awk. I have ~ 15 accounts to keep track of and various loans/securities and I use ledger-cli to keep track of cost basis, interest vs principal on loans and my mortgage, all expenses, etc.
Took some time to write the transaction parsers, but updating everything takes about 5 min/month now and I have a complete financial picture without sending any data to something like mint.
- darau1 3y agoAny change you open sourced those parsers? I also switched from GnuCash to ledger-cli a long time ago, so I'm interested to see your solution.
- rlh2 3y agoI did not, mostly because the parsers are custom to how I want things displayed. Here is a simplified example for Chase, though: BEGIN{ FS = ","; } { if(FNR > 1){ date = gensub(/([0-9]{2})\/([0-9]{2})\/([0-9]{4})/, "\\3-\\1-\\2", 1, $1); print date, $3 print " liabilities:chase" if($5 != "Payment"){ print " expenses:" $4, " $", $6 \* -1.0 }else{ ## This exists because I have an offset in the account ## I use to pay the card with. If the amount in my residual ## account != 0, I know there is something wrong print " liabilities:chase:residual $", -$6 } } } Suppose this script is called 'parse.awk', you would then run: awk -f parse.awk myfile.csv I've been doing this for a couple years now and so far I haven't had file formats change on me. Most of the complexity I have experienced so far is when the regex to parse line-items into the appropriate ledger account is non-trivial. It started off as a way for me to learn awk and double entry bookkeeping and somehow turned into something useful.
- darau1 3y ago> It started off as a way for me to learn ... and somehow turned into something useful This is the way.
- cmarschner 3y agoI envy you, this has been my dream for years. But obscure payment gateways make this a task for the chosen few in this country. If somebody could point me to a workable solution (on Linux / cross platform) for Germany it would be highly appreciated. “Every financial system is broken in its own way” (ex-coworker who had worked in financial services)
- mqus 3y ago~Look for aqbanking and hbci/fints. Most of the major banks hace an endpoint, though you might have to google for the exact data~ Edit: Missed that his is about ledger-cli, not gnucash. Sorry.
- mqus 3y agoActually https://github.com/dpaetzel/buchhaltung https://github.com/dpaetzel/buchhaltung could fit your needs. Just found it because I thought that someone must have built this already.
- cmarschner 3y agoOk. But written in Haskell? Why would you write this kind of stuff in anything but python - it’s trivial after all, and it should stay trivial through all layers…
- farhaven 3y agoI use `aqbanking-cli` for grabbing transactions from my banks' FinTS/HBCI API and generate a CSV out of that. That CSV then goes through a bit of Python that splits up the entries into transactions. Those get rendered out as `beancount` transactions (but `ledger` works as well, I used that before I switched to beancount) and appended to my actual ledger. I then use `fava` (a beancount web UI) to fix mistakes, and have another piece of code (this time written in Go, but could be Python/whatever as well) that takes transactions that are generated from my brokerage account and enriches them with data parsed from my brokers' PDF reports (since the FinTS/HBCI info doesn't contain stuff like ISINs or taxes/fees separately). This is for my personal finances, but I used the same system (minus the brokerage stuff) when I managed the finances of a hackerspace in the middle of Germany for a few years.
- dmoy 3y agoI use ledger, but only for accounts where I'm a trustee on a trust For my own accounts, I don't have time to deal with reconciliation, so I just do csv -> paste into spreadsheet -> have sql queries that sum things up
- talent_deprived 3y agoMy wife has used GnuCash for years. Then she's the average person, not a programmer or techie. She loves GnuCash.
- mqus 3y agoNeat thing about gnucash in germany at least is that most traditional banks(but not the fintechs) support hbci/fints and there is a plugin(?) for this. Paired with the auto-assign its very easy to import transactions