Probably also worth mentioning hledger[0], the Haskell version of ledger which has a limited but growing number of features. They also provide a text-based (hledger-ui) and a web-based (hledger-web) interface.
I have tried a couple of times to get into ledger-cli, and what generally happens is that get really frustrated with "post-date ambiguity". In other words: do I enter a credit card transaction or check as the day I wrote it or the day it cleared? If I do it the day I wrote it, my balances are impossible to reconcile. If I do it for the day it clears, my balance view is ignoring things I know are about to happen. It is even worse when for self transfers, where there is an origination date, a "change visible in originating account" date, and a "change visible in the target account" date.
I guess I could get around it by having "in flight" accounts that deduct the money from the originating account, but at that point it is basically quadruple entry accounting, which seems like an excellent way to make a complete mess of it.
This isn't as big a problem as you think. There are several ways you can handle it, including:
- use your dates. Most people don't need to reconcile every day, and you can pick a day where there are no pending transactions, or few enough to be easily understood.
- use the bank dates. This happens automatically if you import converted bank data.
- use both dates. Eg, your date as the main transaction date, and (when helpful), the bank's date on the bank posting(s) only.
- there's also a primary/auxiliary date feature, but I think it's unnecessary
This is where marking a transaction as cleared or not comes into play. Your balances can be shown with both cleared and uncleared transactions accounted for.
I think something like this will be useful to me - if I can make the time. I have a online accounting package and have to manually upload stmts from my bank (which I have to manually download ) - and sometime back they broke their own matching algorithm such that the same amount on same day with same ref will be counted twice and. Have no means to delete one of the transactions. This causes no end of pain.
A simpler way might be to write to ledger and then from there upload to whatever "analysis" package I want
But ... The investment in time is huge and I don't want to find myself trapped. Any feedback on this or others ?
Having a plaintext ledger of yourself is always worth the time invested. The author of Beancount (another plaintext accounting tool) wrote a doc comparing Beancount and ledger http://furius.ca/beancount/doc/comparison
I use Beancount. Great community and an awesome web UI beancount-fava.