12 ms·
Ledger, a command-line accounting system
- t0mk 11y agothe tool looks great, thanks for the tip. To whomever is using it, do you also capture VAT in ledger? VAT reporting is something I would also need.
- cpayne 11y ago(Coming from a Windows background) I often wonder what the appeal is to something like this. (Seriously!) Why would you use something like this over say a spreadsheet? Is it really much easier than opening a browser and running Google Docs???
- peteretep 11y agoOver a spreadsheet is an easy sell - dual-entry accounting is an absolute revelation. Over the many good GUI dual-entry accounting programs, I'm not so sure.
- jegutman 11y agoWell, you might want a computer to do all of the work and that's easier via a command line app (for most programmers) than doing it all in VBA including parsing a bunch of files and generating the entries. As for the GUI, still needs to be built on top of something, why not this. This actually looks really cool and I'm interested in checking it out. I've often thought about how cool it would be to have double entry accounting for every day life.
- peteretep 11y ago> you might want a computer to do all of the work What is "all the work" here? MoneyDance (which I've used for a few years now) imports directly from Amex, my checking account, and three different credit card accounts... It generally classifies correctly, but then I want to manually review each transaction classification manually as some snacks or electronics are business expenditures, some are not... My accounts are generally pretty complicated, but I'm yet to find a use-case that MoneyDance (or GnuCash, back in the day) can't support... I'm a programmer, and I love programming, but not everything needs my time and attention to program. I also (no longer) run my own mail server, just because I can.
- sophacles 11y agoMoneyDance doesn't appear to be a double entry system. The nice thing about double entry bookkeeping, is it allows some pretty complicated cash-flow tracking - so setting up your accounts for a small business or consultancy is a bit easier.
- peteretep 11y ago> MoneyDance doesn't appear to be a double entry system You didn't look very carefully then
- sophacles 11y agoAll I found was an FAQ entry from MoneyDance talking about how underneath it's double entry, but they try their hardest to hide that fact from the users. So, yeah, I guess technically it's double entry, but not in a way that is immediately obvious for a lot of use cases.
- peteretep 11y agoIf you can explain to me which use cases it doesn't support, I'd be interested...?
- e12e 11y agoI'm curious about this. I thought double entry book-keeping was mostly an artefact of manual/analog book-keeping. Humans are notoriously error-prone, and it's easier to avoid errors when two sets of numbers are supposed to balance out (ideally, exactly). How is double entry beneficial once all transactions are documented digitally? Could you give a somewhat concrete example? (Contrived or otherwise)?
- peteretep 11y agoDouble-entry refers to the number of accounts related to a transaction, rather than the process of entering it twice. When you think about it, all transactions have naturally (at least) a from and a to account. In the simplest example, I move $100 from one checking account to another. This is a pain to model in a spreadsheet, where I literally create two entries, but very easy to model in an electronic dual-entry system where I create a single transaction with a from and a to end point, and an amount. Consider if I decide to buy a stock from my checking account. The from is my checking account, and then there are two "to" accounts - an account which models the value of the stock, and an account for the vendor's charges for the purchase. I might decide to aggregate all such bank charges to a single virtual account for this purpose. In this case, that virtual account would be the same as a "category" in a spreadsheet based model. It can also make budgeting and cash-flow visualization easier. I have a virtual account called "Holiday Budget", which makes a transaction to another virtual account called "Spent on Holidays" of $x every month. Whenever I spend money on a holiday item from my checking account, the "from" is my checking account, and the "to" is my "Holiday Budget". This keeps my net-worth and budgeting reports very simple - they say I spend the same $x on holidays every month - while accounting for some very lumpy spending. I can easily see if I'm over or under budget by looking at the value of the virtual account "Holiday Budget" at any point. It makes recording the value of unconventional assets easier. When I buy a laptop, I create a new account for the laptop, and transfer the money from my checking account to the virtual account that represents the value of the laptop. Every month, I draw down money from the laptop account in to an account called "depreciation". This helps me keep my budget reports insulated from lumpy spending too. A big use-case as well for me is the purchase of expensive refundable plane tickets - essentially, I buy personal futures in plane tickets when I see a good price. The virtual accounts that dual-entry allows means that when I buy a refundable ticket, I treat it as an asset in a virtual account until it's used. Again, this helps me track my spending and budgetting more effectively.
- leni536 11y ago> I've often thought about how cool it would be to have double entry accounting for every day life. I have a hard time imagining something that is less cool than accounting. It's certainly a good idea though.
- ChuckMcM 11y agoWell something like quickbooks its much more transparent and Ledger isn't constantly trying to upsell you some service :-) Agreed on the spreadsheet, its balance checking is really the key feature here that spreadsheets don't do. The simplicity of simple text files means you don't have to worry about your files not being readable by a future you. Which is not the case of every 'gui' dual-entry accounting system to date. Seriously, pick any system you could have used in 2000 and figure out if you can read its files now.
- peteretep 11y ago> Seriously, pick any system you could have used in > 2000 and figure out if you can read its files now Back then I used Gnucash. It's simple XML, and I wrote some Perl to pull a report on it recently. MoneyDance, which I use now, seems to have some kind of binary format, but will export XML, CSV, etc etc...
- a3n 11y agoLedger also isn't bribing Congress to keep the tax system complex enough that you need Quicken or HR Block. I won't touch anything from Intuit.
- jdreaver 11y ago* ledger is for double-entry accounting. Doing that in a spreadsheet can be a huge pain. When you then want to query the data in different ways, that will add a ton of complexity to your spreadsheet. * It is plain text, so you can keep your data in version control. * It has awesome reporting capabilities. These are builtin, so you don't have to create them from scratch. Spreadsheets are nice and simple, but once you do anything moderately complex you are asking for bugs under all of your hidden formulas.
- erronjason 11y agoGranted, this is the extreme, but in my mind this is simply the manifestation of the "do one thing well" mantra of *nix. The basic chains of tools allowing extensibility and chaining from one to another because they're so well-rounded in their own right. This has always been a thing (reduction to absurdity); these days you just see it more often as javascript libraries for anything you could possibly want.
- dragonwriter 11y ago> Why would you use something like this over say a spreadsheet? Because doing double entry accounting with the kind of reporting, balance checking, automatic addition of balancing entries, etc., that ledger-cli provides is difficult. And because its plain text, it works quite well with the same kind of version control, diffing, etc., tools used for code. > Is it really much easier than opening a browser and running Google Docs??? Yes.
- hughw 11y agoYou ask "why" on a site named "Hacker News"?
- cpayne 11y agoMost people are helpful (so long as you don't sound snarky) and don't mind answering...
- hughw 11y agoYes. At the risk of over-explaining: I meant my comment as a sideways remark that Hacker News is full of hackers, many of whom believe a cool program is its own reward, whether it's needed commercially or not. I did not mean to disparage the question or the questioner.
- izolate 11y agoI often see this sort of comment come from Windows folk. It's very hard to justify a reason. You're either bit by the CLI bug, or you aren't. To those who don't "get" the CLI madness, I can see why you're drawn to the Windows ecosystem.
- TeMPOraL 11y agoYou need to be shown it. It's the same as with people doing only Java hearing about REPL. It's weird at first, but once you get it, you don't want to go back.
- a3n 11y agoOne of the best things I ever did for humanity was infect my cube-mate with the cli bug. Bash, to Vim, to Python. It was glorious.
- maaku 11y agoTry doing something the program doesn't support. Experts prefer plain-text formats and command-line tools because with a little bit of elbow grease you can always do things the program creator never thought of or chose not to support.
- peteretep 11y ago> Experts prefer plain-text formats and command-line tools Sure. Expert computer users prefer Lynx for web-browsing, expert Windows and Apple developers prefer vim and gcc, expert fiction writers prefer using emacs, and professional accountants use command-line accountancy tools...
- TeMPOraL 11y agoI think I got Poe'd here - I'm not sure if you're serious or not, because the only thing that sounds stretched to me is the Lynx one. Of adoption of CLI among professional accountants I know nothing about, but the rest pretty much checks out.
- mercurial 11y agoIn my experience, Windows developers (if they don't come from the *nix world) after often very uncomfortable with the command line (or anything non-Windows), and I doubt many authors know anything about emacs...
- TeMPOraL 11y ago> and I doubt many authors know anything about emacs... You'd be surprised. There's a list of writers who use Emacs floating somewhere around the interwebz, Vernor Vinge being a notable example. I can't find it right now, but few of those authors are mentioned here: http://irreal.org/blog/?p=4651 http://irreal.org/blog/?p=4651.
- mercurial 11y ago
- tomcam 11y agoA spreadsheet used like this is almost always a database in disguise, but it's way too easy to delete a row or cell by mistake. Also double-entry bookkeeping does not lend itself well to a spreadsheet model. And as others said: open source, version control, and extreme ease. For someone like me who types a lot and lives on the command line, it's infinitely quicker than firing up a spreadsheet program.
- a3n 11y agoI tried to do this with a spreadsheet years ago, for single entry check balancing. Formulas, if this, if that, it got out of control. It made me a believer of using something already existing if that suffices. I do like creating things, but not that, and not in a spreadsheet. That said, if that works for you, then that's exactly what you should do.
- mikekchar 11y agoKeep in mind that this is a ledger, not a spreadsheet. You record transactions in a text editor. The ledger-cli program is simply a report generator. From the perspective of an "accounting application", what you might think of as the meat of the program is actually the text editor. There are plugins for emacs and vim to do text highlighting and insert dates, etc, but it's basically free form editing. In a way, it's exactly what you are thinking would be superior: why not use some general purpose tool for data entry and then write some macros for generating reports? It's just using a text editor rather than a spreadsheet. The text editor is actually quite a bit better suited to this kind of entry than a spreadsheet. Have a look at the examples at the website. Since the journal is also just a text file, you can easily use a version control systems on the data -- this has saved me more times than I care to mention. So, yes, it really is easier than just about everything else you could imagine. If you are interested in double entry accounting, I highly recommend it.
- grhmc 11y agoPrevious discussion: https://news.ycombinator.com/item?id=7707262 https://news.ycombinator.com/item?id=7707262 Unaffiliated with, but an extremely pleased user of http://www.youneedabudget.com http://www.youneedabudget.com.
- merb 11y agoaccounting != budget management accounting is more a business thing. all accounts needs to be balanced ie you always needs to have zero.
- maaku 11y agoYNAB is both. It's a double-entry budget management system.
- zrail 11y agoYNAB is not double-entry. In fact I interviewed with them one time and they asked me how I would design it, and I started outlining how I run my ledger-based YNAB-like system with double-entry accounting. Their response was something along the lines of "wish we had thought of that, it would have been easier."
- hobs 11y agoI have seen that more than once, and considering double entry accounting is 500+ years old, it amazes me people still do it that way.
- Karunamon 11y agoWait, it isn't? My understanding of double entry is that asset moves across accounts are recorded in both accounts, so if I were to, say, pay a credit card bill, I show a debit from my checking account and a credit to my card account. Is this incorrect?
- kspaans 11y ago
- nodesocket 11y agoI like the idea of using ledger-cli for automation, but honestly, this needs a web-ui.
- maxerickson 11y agoThere are various projects that use a similar file format and approach, this one has a web ui: http://hledger.org/ http://hledger.org/
- blakecaldwell 11y agoUnlike all GUI apps out there, this one gives you the ability to write one, using the interface as an API. Go for it!
- dragonwriter 11y agoI'd like to be able to access a ledger over the web, but really maintaining the ledger in a text editor, putting it in version control, etc., are, I find, a pretty efficient workflow, better than a more typical web UI for this particular use. A "web UI" that consisted largely of a browser-hosted text editor with, perhaps, some ledger-specific affordances, some facilities for pre-defined reports plus a way to create new reports with customer ledger commands, and a decent history interface (possibly backed by a traditional VCS) would be nice, though.
- Havoc 11y agoWHY? There are a bunch of legit accounting packages out there. No need to re-invent the wheel or (in this case) clean the parade ground with a toothbrush. Off the shelf SME accounting package or if you really need it a proper ERP. Anything else is likely to end in tears. Unless its for your one man show...in which case go wild with the CLI / Excel custom rolled solutions & sundry DIYs. Source: Accountant
- fleitz 11y agoBecause if you just spent $50 instead of inventing your own accounting software you might have more than one person working at your business.
- bobbyi_settv 11y ago> Off the shelf SME accounting package Isn't that what this is? For those of us who haven't used this, what makes it less "legit" than competing options?
- Havoc 11y agoCopy and paste answer (got the same question 4x): Is it widely used? Can you get staff with a couple years experience using ledger? Will accounting staff be productive using the interface? Does it cope well with multiple simultaneous users? Is it compatible with other software? Can you get local support? Can you export/import to other packages? Are the fringe case glitches known? All these things matter with finance software, even for fairly small operations.
- tectonic 11y agoI use and love ledger, and wrote a Ruby wrapper a few years ago called reckon that applies Naive Bayes to your bank CSV (kind of link Mint.com) and outputs a ledger input file. http://blog.andrewcantino.com/blog/2013/02/16/command-line-accounting-with-ledger-and-reckon/ http://blog.andrewcantino.com/blog/2013/02/16/command-line-a...
- TeMPOraL 11y agoThank you thank you thank you!
- tectonic 11y agoYou're welcome :)
- sjackso 11y agoI use reckon regularly and find it very helpful -- thank you!
- deleted 11y ago[deleted]
- jareds 11y agoI just want to thank you for writing reckon. I'm a totally blind software developer and find ledger much easier to use then any program with a GUI for keeping track of my mony and budgeting. A large part of what I do is use reckon to enter my creditcard transactions from a CSV export.
- sasvari 11y agoas a side note: both ledger [0] and hledger [1] support time tracking/keeping. of all the various tools I tried to use for personal stuff it has been the most convenient one for me (it helps that I also use it for accounting) and I'm using it consequently from day 1 on! you can apply the same reporting/balancing to your time keeping as you do to your accounting. [0] http://www.ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping http://www.ledger-cli.org/3.0/doc/ledger3.html#Time-Keeping [1] http://hledger.org/manual.html#timelog http://hledger.org/manual.html#timelog
- cel 11y agoSee also t [0], a script for working with ledger timelog files. Now for a script to generate invoices from the timelog... [0] https://github.com/nuex/t https://github.com/nuex/t
- mikekchar 11y agoHas anyone tried to marry the time tracking in ledger with org-mode in emacs? I haven't looked at the emacs mode for ledger yet, so forgive me if it is in there. I would really like to work in org-mode and somehow end up with ledger output without having to manually move all the data.
- zrail 11y agoI've been using Ledger for almost nine years, both for my personal accounts and now my business accounts. I wrote some introductory articles about it, and further articles about how I use it day-to-day: https://www.petekeen.net/finance https://www.petekeen.net/finance
- marcrosoft 11y agoI have been using ledger ever since reading your articles. Thank you very much! Ledger, for a developer, makes accounting bearable.
- parm289 11y agoHave you ever thought about using a natural language interface with ledger? For example, the Mac/iOS calendar app Fantastical lets you create an event by typing or dictating a sentence like "lunch with mike at 2 on Tuesday at Wendy's", and the app will parse the input to create an event with the right parameters. I ask after reading your vacation write-up. Seems like the input side could have been a lot easier if you had a speech or text NLP interface to ledger. "$10 entertainment expense paid from MasterCard today," for example. That could be the holy grail for people who are not inclined to keep a detailed ledger, or for situations where input is difficult. (Theoretically you could email/iMessage/SMS/slack that string and have it picked up by your ledger file.)
- zrail 11y agoLedger sort of has that built in, actually, but it only works if you have a similar transaction in the past. For example, I can say this on the command line: $ ledger xact 11/5 mcd dinner 10.55 and ledger spits out 2015/11/05 McDonald's Expenses:Food:Dinner $10.55 Liabilities:Credit Card This falls down when you're traveling to new places, because in the command `mcd` is just a regex that matches on the payee.
- parm289 11y agoInteresting, thanks. I had in mind a system that would basically regex match a string and add an entry to the ledger (similar, but it would probably be a bit more flexible than the built in system). Separately, I saw you have also worked on a similar system for food logging. That got me thinking...what else could you track with a plain text file in this format? Fitness/workout info came to mind, as well as rewards points, sleep tracking, any others? Would be cool to have a single system to track all these things, which could be linked up to APIs like Fitbit, myfitnesspal, etc.
- lancewiggs 11y agoIt's got a high hack and giggle factor, but obviously horrible usability for anyone off the command line - which includes your accountant/tax advisor. Here in New Zealand essentially every start-up uses Xero - a SaaS accounting system that works extremely well and now has over 600k paying customers. It means one set of data, permanently in the cloud, and a host of integrations to other players. Founders open up access at different levels - we can give read-only to directors and some investors, advisor-level access to accountants and bookkeepers and so forth. Frankly it's part of the NZ advantage right now (120000 or so of those customers are here) - we seem to be spawning a large series of smart, low cost B2SMB SaaS businesses, who are not just following Xero's own path, but also using the tool to improve the way they do business.
- TeMPOraL 11y ago> Here in New Zealand essentially every start-up uses Xero - a SaaS accounting system that works extremely well and now has over 600k paying customers. It means one set of data, permanently in my butt, and a host of integrations to other players. Not everyone thinks it's a good thing. For instance, with Ledger, you don't have to be a customer. It's available for free. Anything that works good without SaaS is better done without SaaS.
- clord 11y agoBeen using ledger for 9 years as well (hledger lately.) Never have a hitch. The only complaint I have is that I can't (easily) keep AR in sync with online invoicing software. minor though. Would love to have some git-style integration with my bank and other accounts. `ledger pull savings` or `ledger pull invoices`
- cel 11y agoI like that interface idea. There is ledger-autosync (in Debian and on GitHub[0]), which should pull transactions from with accounts with OFX. I haven't tried it as none of my accounts are reachable through OFX. [0] https://github.com/egh/ledger-autosync https://github.com/egh/ledger-autosync
- egh 11y agoIf your bank supports OFX/QFX download, you can still use ledger-autosync. You can manually download as many transactions as you like, and it will only import the new ones.
- Fiahil 11y agoI have been very interested by ledger lately, is there a wrapper, somewhere, that would ease interactions with my bank account and/or allow me to plot reports graphically across time?
- dflock 11y agoYes, see this comment: https://news.ycombinator.com/item?id=10510608 https://news.ycombinator.com/item?id=10510608
- greenburger 11y agoThe TextMate bundle has several reports built in that use R and ggplot to plot reports across time. Perhaps other editor support packages have similar features. https://github.com/lifepillar/Ledger.tmbundle https://github.com/lifepillar/Ledger.tmbundle
- robotmachine 11y agoI have been using Ledger for a long time and it has really been a wonderful tool. The reports are great. I even made a little Python script so I can easily make entries from terminal on my phone!
- themiurgo 11y agoWould you elaborate how that works? I'd love to make entries from my phone.
- robotmachine 11y agoSorry, I am not used to commenting here and didn't realise it wouldn't notify me. I use Prompt by Panic http://www.panic.com/prompt/ http://www.panic.com/prompt/ on my iPhone to do SSH sessions. Since it was hard for me to type in entries to my Ledger data file I put together a script with Python that could have stored merchants and just sort of make the process easier. I can type in `ql -m sd -t 50` and it will add a full entry for the grocery store that I frequent. The project on Github is here: https://github.com/robotmachine/QuickLedger https://github.com/robotmachine/QuickLedger To clarify, it is just a command line tool that I made with mobile SSH in mind-- not a mobile app. Hope that helps.
- themiurgo 11y agoThanks a lot, looks cool! At the moment I'm using Nebulous Notes to write to a "mobile" ledger, then I merge that to the main ledger. This has the advantage I can add entries also offline. I'd love to move something more automated though and your project might definitely help. :)
- robotmachine 11y agoTo my knowledge I am the sole user of my QuickLedger project -- so I'd be very interested to hear how it works for another's use case. Any feedback would be great! If you fork I'd like to know so I can see what someone does with it.
- flatM 11y agoIs it possible to attach a receipt (say scanned PDFs) to a Ledger entry? I am interested in ledger, would like it to be the accounting system for my side business, a bit more bookkeeping feature such as the receipt attachment would be great for tax filing purpose. Edit: I know that Ledger uses plain text for each entry. Though I kind of wonder how do you guys keep those receipts.
- zrail 11y agoI do this by putting the PDFs in the same git repo as my ledger file, and then adding a filename to the entry as metadata: 2015/11/04 * (12345) Walgreens ; receipt: /receipts/12345.pdf Expenses:Medical:RX $10.00 Liabilities:Credit Card It isn't an attachment, strictly speaking, but you can get at it with scripts and such.
- flatM 11y agoThat sounds simple and effective. Thanks.
- andrewchambers 11y agoJust a comment with a link to a Dropbox file would work.
- zachlatta 11y agoWe use Ledger for all of our accounting (it's not too much... yet) and we've been using comments in Ledger to keep track of our receipts. Example: 2015/02/05 Clipper Card Expenses:Transport:Public Transportation $20 Liabilities:Reimbursement:Zach Latta ; Receipt: 52fae6a40afaf2a79bfdef92f5e1b6d3.pdf Each receipt filename is <md5 hash>.<extension> and they're all tracked in a private GitHub repository. Here's a link to our repo with more examples: https://github.com/hackedu/finances/blob/master/main.ledger https://github.com/hackedu/finances/blob/master/main.ledger
- cgb_ 11y agoI do something similar, although I name my receipts/documents with yyyymmdd-friendlyname.pdf for ease of lookup. For my IT consulting business, I also wrote a wrapper that rejects entries that don't have a receipt tag which allows me to catch any entries that I haven't complied 100% with my practices (and tax office won't get upset in an audit). I also autogenerate the ledger entries from the receipt name (and prompt for description/expense account/$$ with logic for handling common items like fuel etc). I've played with PDF metadata so my entire receipt scanning => ledger is automated from just the PDF document but haven't reached a satisfactory setup there.
- colindean 11y agoI've used Ledger extensively for a side business as well as for timekeeping for work. It's incredibly powerful and incredibly unforgiving. If you want to keep PDF, JPG, etc. receipts with it, just put them in the same directory and note them in a comment. Additionally, use a VCS that does binaries well. Git does not.
- TeMPOraL 11y ago> as well as for timekeeping for work Any tips on that?
- cgb_ 11y agoI use https://github.com/nuex/t https://github.com/nuex/t, which generates ledger timelog entries as documented here http://www.ledger-cli.org/2.6/ledger.html#Using-timeclock-to-record-billable-time http://www.ledger-cli.org/2.6/ledger.html#Using-timeclock-to.... I've tracked approx 2000 billable hours using this method over the last couple of years. When I invoice, timelog entries are archived into a separate file, so my active timelog ledger file records unbilled time.
- hsitz 11y ago"It's incredibly powerful and incredibly unforgiving." Did you really mean to say "unforgiving"? I.e., "unforgiving" is generally a bad thing. Or did you actually mean that it's quite forgiving?
- TeMPOraL 11y agoUnforgiving is often a good thing. You don't want your finance package to be 'forgiving' any more than you want your compiler to be. If you use Ledger the right way, it'll tend to catch stupid typos because the accounts won't balance.
- shortstuffsushi 11y agoYour "unforgiving" comment is actually exactly what makes me nervous about using this (a command line util) vs a GUI application. I feel like (and this may be a total misconception) my poor typing abilities are better caught in a GUI than cmd line, unless the application itself has something built in (like git's fuzzy commands), where most UI applications, at least on Mac, are sort of validated by the OS level field validation.
- a3n 11y agoA number of people here say use a VCS with ledger. When do you commit? After every entry? And do you have branches?
- zrail 11y agoI have this particular repo set to push when I commit, so I commit when I'm done doing data entry for the session. When I push my reporting web app automatically updates it's postgresql database so I can go run reports and look at the data.
- cel 11y agoFor me, just a master branch. Commit before/after destructive or cross-cutting changes, and "once in a while" in the course of adding regular activity. Also I use a script to mount a remote on an encrypted file system and push to it, for backup.
- cgb_ 11y agoAll the time (many times per hour when doing bookkeeping). But I use git & remote bare repos as a backup & multi-device sync method for nearly everything I do on my systems, so I'm pushing very frequently.
- ausjke 11y agoHeard about it and never really used it, should I start with ledger or hledger these days? any suggestions?
- zeckalpha 11y ago90% of the features overlap. Depending on your particular needs, one or the other may be preferred, e.g. multiple currencies. I use hledger for the Haskell street cred. ;) edit: http://hledger.org/faq.html http://hledger.org/faq.html
- toomim 11y agoAnd the author/maintainer of Ledger just became the maintainer of Emacs, just today!!
- psibi 11y agoAny announcement/mailing list link regarding that ? Edit: Found that: https://lists.gnu.org/archive/html/emacs-devel/2015-11/msg00118.html https://lists.gnu.org/archive/html/emacs-devel/2015-11/msg00...
- draven 11y agoCongratulations to John! I found his first answer in the thread interesting (he talks about his interaction with RMS.)
- danpat 11y agoI wrote a small, single-script clone in Python: https://github.com/danpat/uledger https://github.com/danpat/uledger I wanted to be able to group all my assertions together. This means the assertion needs to be able to retroactively calculate the balance on a given date. ledger-cli's assert doesn't support this. hledger does, but, well, I'm not a Haskell guy and the whole Haskell ecosystem seemed...cumbersome...to install. uledger supports a useful-to-me subset of ledger-cli, primarily nested accounts, multiple currencies and out-of-order assertions and transaction entry. It has a bunch of tests and a very simple web balance interface. My favourite feature is the accounting-equation balance feature: 2015-01-01 Opening Balance Equity:Owners Contributions $-100 Assets:Bank $100 2015-01-01 Buying widgets Liabilities:Credit Card $-50 Expenses:Parts 2015-01-03 Some Income Income:Consulting $-200 Assets:Bank $200 assert balance 2015-01-02 Expenses $50 assert equation 2015-01-04 Assets - Liabilities = Equity + Income - Expenses Feedback/patches welcome.
- avodonosov 11y agoI used ledger-cli, but as I constantly deal with several currencies, I can't rely on it. Unfortunately, none of the open source accounting system I know support multi-currency accounting well.
- oskarth 11y agoLedger deals with multiple currencies quite well in my experience, especially using a custom prices.db file. What is the problem you are having?
- avodonosov 11y agoAfter currency exchange transactions it doesn't balance.
- kspaans 11y agoI deal with multiple currencies in Ledger as well. Feel free to email me or join their IRC channel for some help! :)
- avodonosov 11y agoYou profile doesn't specify your email :) I'd be glad to get help here, but I think this is just an unsolved problem. Discussed it on google group. I think I understand it relatively well, and even wanted to fix it, therefore I doubt multiple currencies can be handled with the current version of ledger; but would be glad to find a workaround.
- avodonosov 11y agoI don't have it installed now, so an example just out of my head: suppose I have 100 USD; I exchange 50 USD to EUR at 1.2 rate. Then I spend 20 EUR on food. Then I exchange remaining EUR to USD at 1.1 rate. Now, if we generate a balance report, do you say it will be balanced?
- roel_v 11y agoI've used ledger for years, but it's not a 'real' double entry system, despite what the manual says. It's more halfway between cash and double entry. The 'auto balancing' for example, which is sold as its big feature, doesn't make sense from a double accounting perspective - the whole point is to not have it be 'auto'. Other basic things are missing - the difference balance and profit/loss accounts, for example. It's fine for personal and small business accounting, but if you've had training in real accounting some things will be confusing (because of terms meaning something else) and don't expect your accountant to be able to work with your reports if you haven't set up your system in cooperation with him/her.
- merb 11y agoyou don't need the auto balancing. You could definitly write: 2015/10/12 Exxon Expenses:Auto:Gas $10.00 Liabilities:MasterCard $-5.00 Liabilities:Visa $-5.00 It's still valid. However it would fail if you put a 5 and 4 here if your expense is 10. I'm still not sure how it decides between active and passive (since Expenses and Liabilities could also be other words like the german ones: "Ausgaben", "Verpflichtungen" and the program works with them, too but It can't know if its active or passive. so I don't know what would happen if I make a transaction on two aktivas, like Bank to Cash or Bank to Fund)
- kspaans 11y agoLedger doesn't differentiate between active and passive, it just makes sure the transaction balances.
- avodonosov 11y agoDo you know any better tools?
- roel_v 11y agoNo, which is why I still use it for small subbudgets that only I neex to work on :) And look, it's a fine tool for that, but you still need real accounting experience to use it according to gaap. The way the manual describes, and how many convenience functions are structured, isn't.
- Dowwie 11y agoThere's another open source project worth checking out called BeanCount. The author, Martin Blais, originally wrote it in Python to serve similar double entry bookkeeping needs as those from the ledger-cli community. He seems to be continuing development of it, or at least porting portions of it (plugins?) to a variety of languages. homepage: http://furius.ca/beancount/ http://furius.ca/beancount/ source: https://bitbucket.org/blais/beancount/overview https://bitbucket.org/blais/beancount/overview
- rushabh 11y agoThere is also a nice php based simple accounting app for those looking for a slightly modern user interface. http://webzash.org/ http://webzash.org/ https://github.com/prashants/webzash https://github.com/prashants/webzash
- javiercr 11y agoThis is very interesting. I'm involved in an open source project to create a Ruby gem to extract bank data from multiple banks and offer it via a CLI and a Ruby API. We fetch the data either from bank APIs (which often we discover through reverse engineering of mobile apps) or simple web scrapping. https://github.com/bankscrap/bankscrap https://github.com/bankscrap/bankscrap The project is still under heavy development but we already have support for 3 main banks in Spain. We also have managed to integrate it with Slack and other apps. I am sure we can learn a lot from the Ledger CLI.