Ledger & co.

TL;DR

I discovered Ledger and its siblings.

I’m thinking about releasing a new module Accounting::Kitty for managing a split account (e.g. when going in vacation, or for more long term agreements) and I think just by chance I stumbled upon Ledger:

Ledger is a powerful, double-entry accounting system that is accessed from the UNIX command-line.

Well, my module is exactly aimed at managing double-entry accounting, so it’s definitely in the same sport. I don’t think they’re in the same ballpark though, because Ledger seems both much more refined and ample in scope, while at the same time being quite more general.

One difference that struck me (although I was already doubtful about it) is the difference in the recording format. While I’m requiring an underlying SQL server that can be managed through DBIx::Class, Ledger’s basic storage format is plain text files. This is surely easier for managing stuff by hand, but I think it leaves a problem on the table when there is some need to provide multiple accesses, e.g. by putting a web service in front of it. Anyway, I’m envious of the data format because plain text is fantastic.

Another aspect that makes me envious is how transactions are modeled, which is somehow a consequence of the simpler data storage approach. While every transaction in Accounting::Kitty is always from a single account to another single account, transactions in Ledger can include multiple participants at once. I had to explicitly account (pun intended) for this by allowing transactions to be put in a hierarchy, which e.g. is what happens when an expense is split across multiple participants.

One last but surely not least aspect is the support for multiple commodities at the same time. In other terms, Ledger is capable of seamlessly handle multiple currencies independently and at the same time, without even being limited to them (it’s possible to track apples and bananas just as well). My module is limited to one single “currency”, in the assumption that handling a small shared fund during a vacation should not require more than this. But you never know.

All in all, I find Ledger an interesting software, so if you’re looking for something to harness your finances and you like the command line… definitely take a look at it!


Comments? Octodon, , GitHub, Reddit, or drop me a line!