*continues doing taxes*

Switching my bookkeeping stack at the last moment was definitely a good idea

Verdict: hledger has its quirks and issues, and I had to write my own MT940 importer, but it is orders of magnitude nicer to work with than the horror that is GnuCash

· · Web · 3 · 0 · 4

Like, I basically started over my bookkeeping for the entirety of 2022 and 2023 (so far), from scratch, with hledger, and it *still* took me less time and frustration than it likely would have taken to finish the last bits in GnuCash

@joepie91 Hm any chance you plan to make the importer available for others? :) I just checked and I can either do csv or MT940 at my banking provider :) So it might be nice to try both :D

@MTRNord There's very little to it, tbh - it's just a small JS script that uses the 'mt940messageparser' package to parse MT940 files (fixed with npmjs.com/package/abn-amro-mt9 in this case) and generates hledger entries, but almost all of it is specific to my case: gist.github.com/joepie91/9006c

@joepie91 Thanks for the pointers! I was able to use the csv by now but I am now stuck understanding accounts in hledger :D Especially with external transactions (aka I buy something at food place. How to properly mark this.) :D

@MTRNord hledger is built around unopinionated double-entry bookkeeping, much like GnuCash, so it's basically up to you to decide what accounts you want to have

Typically you'd just have an 'expenses' account and the description field is used to track *what* it is being spent on, but if you wanted an expenses account specific to "buying food" then that would be totally possible (hierarchical names would be useful there)

You should always think of it in terms of money flows; so buying something for 5 EUR at a food place means that 5 EUR flows out of your bank account, and flows into your expenses 'account' (where 'account' just means 'a destination for stuff to go in the books', it does not need to correspond to an actual bank account or such)

@joepie91 Yeah. That makes sense to me :) The thing is that for whatever reason I dont get the csv import rules to reflect how I want it. I may need to deepdive the if statements to make this work. Its very much my first time using this :D And I kinda have "This balance assertion failed" quite often. I did set the initial balance up but I think it might be something weird in the input data that makes me confused here :)

@MTRNord The CSV importer is unfortunately not very nice to work with. It can support most cases, but definitely not all.

As for balance assertions, I don't use those normally; instead, I just put everything until the current time into the books, and verify that all the account balances in my books match the current account balance in reality

@joepie91 Ah yeah it just happens to exist in my data. And since I didnt start with 0 I think it might make sense to use it :) And while writing I finally have it working :D Only missing step is now doing the expense accounts properly. But thats likely just manually going through this. I dont think I can do this easily on the import (but maybe I should.)

@MTRNord If you didn't start with 0 then you will have to set up an initial balance, regardless of whether you use balance assertions - in my case, I did that by creating a 'phantom' transfer from a "starting balances" account to all the accounts that needed a starting balance.

And yeah, assigning expenses to specific expense accounts (if you have more than one) will probably be a manual process, I only automated the process for a couple very common ones (like the monthly bank fees)

@joepie91 Yeah I found the initial balance in the docs already :) That works now.

The horrible ones to assign from the csv are stuff like paypal which happily obfuscate transaction origins sadly. I am going to probably automate all human readable ones now which have a clear keyword to search for. There are some that do. Like income :)

@MTRNord Ah yeah PayPal is the only one so far where I've entered transactions manually because of the dog's breakfast that is their CSV exports

It's supposedly possible to automate, but I did not have the spoons to figure it out :(

@joepie91 yeah and in the banking csv I got the Paypal ones are just the transaction IDs. And I didnt find any way to map them to the actual transactions on the paypal website yet.

@MTRNord Ah, in typical accounting you wouldn't necessarily link them together, because it's about tracking money *flows* rather than individual transactions; so from the perspective of the bank account, once the money has gone to PayPal it is no longer the bank account's concern what it is spent on, and the spending is instead tracked from the PayPal account

@joepie91 yeah. I am not that far yet :D I think I want that in the end too. I am just not there yet. I am about 1.5h into hledger. You spiked my interest into this since I likely need to do taxes for the first time this year :D

@joepie91 And I just realized that Paypal might be a solvable problem while the PDF only version of my credit card balance might be way harder to solve. I smell OCR. Which smells like pain.

@joepie91 Interesting. I only just now found github.com/invoice-x/invoice2d for PDF stuff. I guess I will spend some more time in this :D I am now at a place where I can say I am somewhat happy for a start.

@MTRNord Yeah I would summarize my experience with hledger as "finally, bookkeeping is now only a normal chore, not a nightmare chore" :p

@joepie91 yep. For me the "hey I might be able to automate this away if I annoy my bank enough" is what makes it interesting. I must say I am not a fan of the whole TUI stuff. But the format is simple and the TUI is really easy to use. So a vscode, csv magic, some py and the official ledger ui may work for me :D

@joepie91 Oh, nice. I'll try it. Last time I wanted to try GnuCash, I wanted to send an invoice and ended up ragequitting absolutely frustrated by bad UX after one hour of putting everything together. Then I reluctantly subscribed to an online saas accounting and had everything done in 10 minutes. Hledger looks like it might be a nice tool to do it.

Sign in to participate in the conversation
Pixietown

Small server part of the pixie.town infrastructure. Registration is closed.