It's a nice system in PHP. There are quite a few of them. Like ledger-cli [1] in C++ and emacs lisp, hledger [2] in Haskell and beancount [3] with fava [4] in python.
We used ledger-cli and beancount with fava and built automatic creation of accounting entries using machine learning and Bayesian alogrithms by analyzing bank and credit card statements. You can use powerful icsv2ledger [5], smart importer [6] and the awesome list [7] to get importers for various banks and other utilities.
I use and love ledger-cli but importing/downloading bank data is the biggest pain point.
I'm currently using ledger-autosync (https://github.com/egh/ledger-autosync) to import OFX/QFX files. For some banks it can automatically pull the data using ofxclient (https://github.com/captin411/ofxclient) but for most of my bank accounts this is broken and I need to manually download the OFX file before importing with ledger-autosync. It works OK, I wish I didn't have to do the manual download, but the simplicity of the setup is nice.
I've read of other setups using Plaid or Puppeteer to download their data. Would be interested to hear about what other people are currently using in mid-late 2019 to pull their financial data.
I was using Tiller (https://www.tillerhq.com), pulling from US and European banks to a Google sheet, then a command line tool to pull CSV from there. This worked well except for not handling foreign currency (it calls everything $), adding a bit of extra latency/uncertainty on top of the back end (Yodlee), and eventually forgetting to update your sheet unless you manually visit it every so often.
Currently I’m using plaid2qif (https://github.com/ebridges/plaid2qif) to pull CSV from US banks via Plaid’s (https://plaid.com) API. This is more developer friendly and gets the latest data to me faster, but the data is not quite as good as Tiller/Yodlee’s, at least for Wells Fargo bank; Plaid gives more truncated transaction descriptions.
Both of these have the big downside of sharing your bank credentials with others. With Plaid I guess there’s one less party involved. My current alternative is manually visit each bank’s site and download CSV. Ideally I want to get timely data every day (the easiest way to stay on top of the books), so the manual downloading (click, wait, click, relogin after timeout..., wait, wait for paypal’s download, retry when it gets stuck..) gets really tiresome.
Glad you like ledger-autosync! I agree, its very annoying to have to download OFX files. I wish more banks supported the OFX protocol, or really any sort of automated download. I should probably look into plaid and see if it might work.
Yes, but likely only when I'm very reliant on it. As it is, it's very ad hoc and buggy.
To be frank, I spend 90+% of my time in KMyMoney. I need Ledger only for its virtual transaction features (for budgeting). The other use case I have for ledger is to perform some analyses/reports in it that KMyMoney doesn't provide.
There's nothing "smart" about it. It's simply a script that takes in a kmy file and creates a valid Ledger file. It's been a while since I looked at it, but at the moment I doubt it handles things like stocks and commodities, etc.
Still, I'd rather use KMyMoney to enter transactions than using the Emacs mode for Ledger.
I have been looking for something like this for sometime. Right now I'm using YNAB with manual imports from bunq csv exports but I will give it a try and try out the bunq integration with firefly.
Does Firefly also support the features of YNAB, if you know by any chance?
They claim they have budgets, 'categories', and something I wish YNAB had, 'tags'. Tags would be nice so that I could categorize expenses normally, e.g. 'restaurants', but also group them, e.g. 'trip to X'.
Do you know of a way to do cross-account budgeting in ledger CLI (or any of the similar tools)?
This was discussed for beancount a few years ago[1] and basically means that I want to distribute the money for a budget across multiple accounts but last I looked (over a year ago) there was no tool that provides this feature.
ledger-cli is my current tool and all-time favourite. The only thing I'm missing (and thinking of spending a weekend to write) is a self-hosted web UI for data entry. Not that I needed - Emacs is a more productive data entry UI than anything that was ever done in a web browser. But my wife wants to help me retype receipts, and I need something ergonomic that's focused on just that: adding trivial transactions.
hledger has a web interface, and it mostly speaks ledger. Looks like most of the stuff it doesn't understand it'll still cleanly parse and then ignore.
We used ledger-cli and beancount with fava and built automatic creation of accounting entries using machine learning and Bayesian alogrithms by analyzing bank and credit card statements. You can use powerful icsv2ledger [5], smart importer [6] and the awesome list [7] to get importers for various banks and other utilities.
[1] https://www.ledger-cli.org/
[2] https://hledger.org/
[3] http://furius.ca/beancount/
[4] https://beancount.github.io/fava/
[5] https://github.com/quentinsf/icsv2ledger
[6] https://github.com/beancount/smart_importer/blob/master/READ...
[7] https://github.com/siddhantgoel/awesome-beancount/blob/maste...
Note: corrected the entry for ledger-cli, its primarily written in C++ with some emacs lisp scripts.