Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I've been playing around with ledger[1] recently. On one level, it is the simplest of tools requiring only a command line and a text editor. But once you wade into the documentation[2] you will begin to see it quite differently. Its capabilities are staggering...

[1] https://www.ledger-cli.org/index.html

[2] https://www.ledger-cli.org/3.0/doc/ledger3.html



I looked in to switching from GnuCash to Ledger about 5 years ago, and found that it would have been too painful to use for manually inputting the thousands of transactions I had because it just didn't have the nice auto-complete and GUI nicities that GnuCash had.

I'm a hardcore command-line and keyboard-only power user, so I would have absolutely loved to have made Ledger work for me rather than use the mouse-heavy GnuCash interface, but couldn't, and went back to GnuCash with my tail between my legs.

I'd still rather use it, so maybe I'll give it another try some day.


I've been using ledger for a year next month.

As you imagine, the fact that it's text-only has been both a burden and a blessing.

Burdens:

- inserting transactions takes a long time, when you're starting out. will always take a long time if you never "automate"

- it's easy to make little mistakes and not catch it until the next time you compile or make a report.

blessings:

- git, sed, grep, awk all "work as advertised"

- you can automate the boring things, as they get more boring, and you can learn a lot along the way

at this stage, I have a combination of awk and python scripts (maybe 500 lines total, but a lot of it is regex) that convert my financial institutions' transaction export csvs into ledger transactions. I pretty much copy paste that into specific ledger files. The next step that I'm currently automating takes a concatenated `git diff` and interactively categorizes expenses/splits/assigns to the correct ledger file.

I also blew a ton of time (maybe 40 hours) on scraping those csvs from bank websites, workday, and fidelity (basically, a puppeteer script for logging in, downloading all the files available). Getting past google auth for workday was hard. But learning these things has been fun.

With all this automation, I spend maybe 20 minutes every weekend importing things over from the banks. I'd do it every month, but I'm still a control freak with it.

Doing this has been super fun! And it also has yielded a lot of insight into my finances. Above all, it gives me a feeling of "control" over my finances like no other. Itemizing deductions takes an hour, just as a throwaway example.


+1 for ledger.

I switched from GnuCash to ledger about 8 years ago and never looked back.

I have a script that pulls my bank account using aqbanking [1] and icsv2ledger.py [2]. The latter can match transactions to templates and set transaction accounts and payees automatically. It also supports autocompletion of account names when a transaction is not matched by a template.

For cash entries, I use ledger-mode in Emacs. (I also use Org mode, so I spent a lot of time in Emacs anyway.) ledger-mode also supports autocompletion.

I only use the command line for reporting and have aliases for the most common reports. These mostly revolve about showing my current budget.

[1] https://wiki.gnucash.org/wiki/AqBanking [2] https://github.com/quentinsf/icsv2ledger

Fun fact: The second program I wrote was a database in Turbo Pascal to keep track of my loose change.

Not so fun fact: I lost my GnuCash files after I made the switch. Ten years of accounting gone. :(


> I looked in to switching from GnuCash to Ledger about 5 years ago, and found that it would have been too painful to use for manually inputting the thousands of transactions I had because it just didn't have the nice auto-complete and GUI nicities that GnuCash had.

Similar problem, except I use KMyMoney. I wrote a program to convert my KMY file to Ledger format. So I still enter transactions in KMyMoney but have the power of Ledger as well.


This is exactly what made me switch away from ledger. I thought that a command-line/plaintext only workflow would be great, because that's what I usually prefer. However, a GUI + autocomplete just ended up being way more useable for me in this case.


Assuming GnuCash can do some sort of plain text record dump, I would probably try to cobble something together to convert that to an acceptable ledger format. Maybe with AWK or something similar...


I strongly recommend people give ledger a try, especially if you're a UNIX-nerd who gets a lot of use out of sed/grep/awk.

It's totally changed the way I think about finance, for my person and for businesses. It also means I can have very informed conversations with accountants! :)

Double-entry accounting as a domain is super interesting, and Ledger's intersection of that domain with UNIX hackery is a joy to experience.


Beancount as well, very similar in philosophy and staggering in capability, slightly different flavor and rendition compared to ledger.

http://furius.ca/beancount/


The plaintext accounting ecosystem as a whole is pretty great. Only thing however is that literally none of them comply with the XDG Base Directory Spec. So to have hledger with a web-ui and auto-importing for example means like 3-4 dotfiles littering the home directory.


hledger author here, I can't think what all those would be - would appreciate your help at https://github.com/simonmichael/hledger/issues/1081 if you have the time.


Is this a critical issue for you? How often do you `ls -a` in your homedir?


It's an annoyance. For example, I like to put everything in .config under version control. It's a much bigger pain to do it in the home directory.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: