Hacker News new | past | comments | ask | show | jobs | submit login
Command Line Accounting With Ledger and Reckon (andrewcantino.com)
122 points by tectonic on Feb 16, 2013 | hide | past | web | favorite | 27 comments

Looks like a nice set of programs, especially since being able to run your accounting software over SSH has certain advantages. Does anyone here have experience with using Ledger with multiple currencies? My current FOSS accounting tool of choice, GnuCash [1], I chose in large part because of for how well it works with multiple currencies.

[1] http://www.gnucash.org/

I used ledger for a few months last year, tracking transactions in five or six currencies. I haven't used another system so I can't compare, but ledger seemed to handle things very well. For foreign credit card transactions, you can do things like:

    2012-05-22=2012-05-18 * B&H Photo Video
        Expenses:Electronics:Camera:Charger   USD 37.02 @@ CAD 38.76
to specify the purchase amount and the amount that appeared on the card. It keeps track of the exchange rate at each such transaction, and can generate a price history from them. I was even able to enter an ATM withdrawal with fees at both ends fairly easily:

    2012-03-12 * Withdrawal
        Assets:Cash                           USD 500.00
        Expenses:Banking:Fees                   USD 2.50
        Assets:Bank:Chequing                 CAD -511.19
        Expenses:Banking:Fees                   CAD 2.00
        Assets:Bank:Chequing                   CAD -2.00
The concept of "currency" is pretty open in ledger. I even started using it to track tickets on my transit card for a while, with things like

    2012-04-18=2012-04-17 * STM 10 tickets
        Assets:Opus Card                      10 STM @@ CAD 24.00
followed by withdrawals from the card when I took trips. (This turned out not to be a very good use of time.) You could track stocks in a similar way.

Hope that helps. You might also want to look up ledger and gnucash, as I think ledger can read gnucash files. You'd be able to test ledger out with "production" data.

Another happy gnucash user!

I have a few reports that I keep open (last month's expenses, this month's expenses, etc), so my usage is generally 1) download transaction history in OFX from Natwest, 2) import into gnucash, 3) put the unrecognized transactions in the correct accounts (rarely if ever have to do that these days - the bayesian matching works rather well) 4) inspect the reports.

I couldn't be happier!

Gnucash can download the transaction history from my bank directly, so I guess steps 1 and 2 could be folded together into one.

Ledger is beautiful. I actually wrote a web frontend (Django) for our company. It downloads the transaction history using aqbanking which implements the HBCI protocol (a german standard for accessing banks). My colleague then assigns accounts to each transaction.

It's given us a much better and more current view of where we are financially. We can actually display our runway on our Geckoboard dashboard in the office!

Next step: use D3.js to create monthly reports you can really drill down through.

Would you consider open sourcing the frontend?

Hadn't thought about it yet, since it's pretty tied to our workflow. The web interface itself is pretty basic CRUD.

Thinking about it now, it does tie together some interesting parts. I'll clean it up a little and put it out there as soon as I have some time. If anyone's interested in it at the state it's in now, just give me a shout.

I use hledger for the nice web ui: http://demo.hledger.org/register

I use ledger for all of my personal finances and it works great. However, maintaing the config files for csv2ledger is a pain so I will check this out.

I can second that hledger i great. As a bonus, hledger-web makes it possible to also modify data, making it usable alternative to command line tools.

About 2 years ago I spent quite a bit of time wrestling with Ledger. I really wanted to work out a command line based system for financial tracking. The one part that totally tripped me up was trying to split up my accounts into individual files. I could never get Ledger to properly handle transfers between accounts, even after some lengthy discussions on the mailing list.

But this post has piqued my interest... Maybe worth another look.

I had the same problem. My solution:


Basically, make a 3rd account, name it transfer, and have it be the "staging area" that should always cancel out to zero. Works great for ledger files generated from an outside source.

That seems to be the only way to handle it. I did try something like that, but I think my approach was a little clunkier. I like the idea of a "Transfers" top level category that can go to zero...

Reckon is pretty nice, if you want your hand held in the interactive way it works. Unfortunately, it (and nearly all other CSV to ledger converters) can't generate multiple entries per transaction, which is the only way to break out tax, fees, etc.

To this end, I wrote and use a generic ruby CSV -> .erb template program that is quite short and simple, keyed off of the header row:


Examples are given of bank/paypal/square/etc.

Ledger is awesome stuff - it's basically a multi-variable tree structured calculator. I'm (ab)using it right now to calculate specs for a network rack.

The network rack stuff sounds interesting. Have an example? I am sure the ledger google groups would be interested.

For my home accounts I wrote some python SQLite mash up that tracks different bank accounts (no Bayesian analysis that is nice). Produces reports, google pie charts etc.

For my business I use an online tool freeagnet. It is awkward to use and I have not successfully downloaded my own data, but it took no training g to use, takes a few minutes a week to keep up and it auto calcs taxes and so on

If you are running a business and have time to learn text file based double entry program's that have limited tech support, you should be in the accountancy industry.

I've been using ledger for quite a long time too and have written quite a bit, both prose and code, around it.


Let me know if you have any questions about using reckon.

I use a simple well-known SaaS accounting tool, but this is neat. I am particularly impressed that ledger makes sure to follow double-entry principles.

(Accountants of my acquaintance would quibble that this is book-keeping, not accounting, but let's just leave them outside with this year's tax handbooks).

Does ledger allow you to annotate things such as stock accounting method?

> Does ledger allow you to annotate things such as stock accounting method?

You can make annotations on transactions in various ways, but handling LIFO or FIFO or whatever is kind of out of scope. It's been discussed at length on the mailing list and the conclusion was that it would best be handled by an external system that loads your ledger data.


This is interesting, are there command lie tools for tracking your investments and savings? I'm being a bit lazy here as I haven't looked for them myself, but I've never been happy with the GUI applications for such tasks.

Ledger can do investment tracking too.

Pretty cool. I use ledger for doing the accounting for a youth organization. I've used awk to create ledger entries from csv downloads, but will take a look at reckon.

OMG Just have seen Ledger comes also with an emacs mode! Sold.

The emacs mode is under pretty active development right now. I would suggest joining the mailing list if you're interested in following along.


+1 for "Small" plan on github :)

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