In terms of time commitment, about 20 mins every two weeks seems to be enough for logging all my transactions into Gnucash - I have 3 bank accounts, 1 investment account and 1 retirement account.
In terms of time commitment, about 20 mins every two weeks seems to be enough for logging all my transactions into Gnucash - I have 3 bank accounts, 1 investment account and 1 retirement account.
Another pet peeve is the time order. A lot of times I'll have have a credit and debit on the same day, but the order I enter these depends on the order I'm going through my accounts. Since GnuCash only lets you put a date, it'll look like the account was overdrawn when it's simply mis-ordering the transactions. The only way I know to fix is to re-enter both transactions.
Yes the same-day ordering is visually quite annoying, although the final end-of-day/end-of-statement balance is really the only value that matters.
!
This was partially because the UI has a lot of issues (especially the bank statement importing - if you don't do everything just right, you have to redo it from scratch, and it is very easy to make it fail), and partially because the ability to automatically assign transactions to categories was too limited (it expects the reference to match exactly, but in many cases it doesn't, so I would have to spend a lot of time manually assigning things to categories, again from a really bad UI).
I have to add, this was 5-6 years ago, so it's possible that the UI has improved since then.
This method relies on balancing to the cent each time, since I use my actual bank balance as the target.
It is indeed tedious at first, however I find that 1) manually entering transactions helps me spot problem payments quickly (comprimised credit card, overcharges on direct debits etc.) and 2) the predictive auto-complete feature speeds entries up over time, as most entries are assigned to either a a)groceries, b)eating-out or c)bills expense account. You just press 'Tab' when the correct suggestion pops-up after entring the first few letter, and the line entry gets auto-filled. I still usually need to change the numerical value, but the correct expense account and transaction detail are prepopulated correctly most of the time.
Overall I would recommend giving it another chance.
It's not the transactions themselves that I find tedious, it's all the ways I split them. My partner and I split many transactions together and we often travel with friends so I charge friends over Zelle/Venmo for transactions we had while out. Importing transactions from my banks makes it significantly easier to reconcile all of these, especially when I'm on a vacation. Ease of writing importers was a huge driving factor when I switched to hledger from GNUCash.
It's amazing discipline that you enter these manually. I remember that GNUCash has decent autocomplete which certainly helps. I don't think I'd be able to keep up with my finances myself if I had to input it all myself. I personally have anywhere from 50-100 transactions a month.
The only quirk is that one of my accounts uses a non-standard ordering for its csv file which needs fixing before HomeBank will accept it since the import UI is limited.
I also find that it is useful to track the database file under git.
I'm using CC for almost everything but there is still a lot that I miss because of random cash spendings.
However if it is a large cash amount (e.g. rent payment) then I will transfer from Asset:Bank to Asset:Cash before entering into Expenses:Rent.
I'm really interested in lived experience of using Gnucash vs, say Beancount or HLedger.
One of the main reasons I stick with Gnucash is the monolithic file format. If one day I need an accountant to review my finances, or if I suffer an audit by the tax man, I can send on the single .gnucash file with all my data. While Gnucash's UI is not the greatest, an accountant/auditor can easily install Gnucash and generate reports with only basic knowledge.
Another nice feature is the file linkage features, where I can directly link my payslip pdf files to the gnucash entries. I have folder structure on my GDrive with all of my stored bills, payslips etc. If required, I can zip up my Gnucash file and corresponding documents folder and the reviewer can instantly access important financial documentation from within the Gnucash application. Gnucash uses relative file paths for sourcing linked documents - all a reviewer has to do is specify the head directory and all the linked documents will open as usual. Correct me if I'm wrong, but I dont think this is a feature in the text-only approaches.
I unless I'm missing something, all those features are available to me now.
> If one day I need an accountant to review my finances, or if I suffer an audit by the tax man, I can send on the single .gnucash file with all my data.
I can do the same with a git repo, or a zipfile.
> an accountant/auditor can easily install Gnucash and generate reports with only basic knowledge.
I'm not sure I understand the advantage here. A professional could install beancount too, and run the same scripts I do. My real life experience is they don't actually want this level of depth.
> Another nice feature is the file linkage features, where I can directly link my payslip pdf files to the gnucash entries. I have folder structure on my GDrive with all of my stored bills, payslips etc.
You can link to external documents in Beancount and possibly the others and it's kept in the same archival system:
https://beancount.github.io/docs/beancount_language_syntax.h...
It looks like I'm not missing out?
1. I personally prefer graphical tools, especially when looking at a sea of numbers. I gravitated to GNUCash because, even if the tool felt crufty, it was still a lot easier to read/get started with than hledger.
2. I used GNUCash for a long time. GNUCash has a very cool autocomplete feature that actually makes it quite easy to enter in recurring transactions. Things like regular bills, income debits, etc are all trivially autocompletable.
3. GNUCash makes it really easy to generate reports. While hledger certainly is infinitely scriptable/manipulable, GNUCash has a much easier out-of-the-box experience to use.
The main thing that made me switch to hledger was the ease of autogenerating transactions into a plain-text format. My partner and I split many expenses and we often travel with friends so I split many things many ways. I also fund my parents to some extent and so I buy gifts/split transactions with my parents. GNUCash made recurring transactions easy but made it a lot harder to generate split transactions according to fixed splits that I regularly engage with my friends/family in.
With hledger I have a system of taking CSVs, classifying transactions using a stack of Python scripts and using them to generate hledger importable files. I go by hand and annotate transactions that my scripts couldn't classify/split, and then I import it into my main hledger file. I store all my inputs and intermediate imports in a git repository along with my main ledger file for auditability and to look at annotations. The ease of automation just can't be beat with PTA but it's definitely harder to use if you don't have a preference for TUI work.
Gnucash has a lot of cruft and definitely feels like it was written in 2003, but it does address this issue and provides the basic input validation you need to minimize errors.
The other issue with plain text accounting software is most of it only flags errors after you 'compile' your books (or, more properly, run them through some sort of command-line tool), which is far too late to make data entry convenient. (Some of them have web-based tools, like beancounts "fava" package, that act more like Gnucash...but at that point the term "plain text accounting" loses all meaning IMO, you're just using another client, so why not use a better one?
Which input validation do you get in gnucash that you don't get in e.g. hledger? Asking as a hledger user. So far I mostly have assertions every month about account balances, and of course hledger checks itself that transactions are balanced. I avoid duplicating accounts (say expenses:something:stuff and expenses:other_thing:stuff) using autocompletion.
Edit: phrasing