Command Line Accounting With Ledger and Reckon(blog.andrewcantino.com)
blog.andrewcantino.com
Command Line Accounting With Ledger and Reckon
http://blog.andrewcantino.com/blog/2013/02/16/command-line-accounting-with-ledger-and-reckon/
27 comments
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:
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.
2012-05-22=2012-05-18 * B&H Photo Video
Expenses:Electronics:Camera:Charger USD 37.02 @@ CAD 38.76
Liabilities:Visa
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
Liabilities:Visa
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!
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.
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.
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 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.
But this post has piqued my interest... Maybe worth another look.
I had the same problem. My solution:
https://groups.google.com/forum/#!msg/ledger-cli/K7EgJQuEQ_M...
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.
https://groups.google.com/forum/#!msg/ledger-cli/K7EgJQuEQ_M...
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:
https://github.com/zdw/rubycsv
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.
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:
https://github.com/zdw/rubycsv
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.
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.
http://bugsplat.info/ledger.html
http://bugsplat.info/ledger.html
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?
(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.
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.
Thanks.
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.
Also see https://launchpad.net/fin
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.
https://groups.google.com/forum/?fromgroups#!forum/ledger-cl...
https://groups.google.com/forum/?fromgroups#!forum/ledger-cl...
+1 for "Small" plan on github :)
[1] http://www.gnucash.org/