FYI, I have importers for banks and credit cards that support ofx, based on my beancount_reds_importers library. I'm happy to add that to my python package that you're using if there's interest. I wrap it with smart importer, which is very well designed and written, and gets it right well over 90% of the time.
You're right: I've found that building dependable automation around my import/ingest made took that part from a 3 hour task to a 3min task, and was a key piece in making my beancount/fava experience fruitful. This is why I get my imports to extract balances and prices and convert them to balance check and price entries. Taking automation a step further, I also have some scripts to auto-download my statements for a few banks/cards/brokerages that support quicken direct connect. This automates the downloading step as well, and stores your passwords securely (encrypted with a master password). On Thursday, June 25, 2020 at 10:21:58 PM UTC-7, Jonathan Goldman wrote: > > Thanks this is very helpful. I was not aware of the smart importer and > will try it out. And I’ll check out beancounttools. Thanks! > > On Thu, 25 Jun 2020 at 5:41 PM, 'Patrick Ruckstuhl' via Beancount < > bean...@googlegroups.com <javascript:>> wrote: > >> Hi Jonathan, >> >> Q1 >> >> I would say whenever you have both (or more) sides of a transactions then >> it's the best to import all legs. The thing is that in most cases you don't >> have them. On thing that I also do quite often is, that if I can import >> both sides of a transaction form two different sources (e.g. two different >> banks), then I use the transaction ids of each bank to add them to the same >> transaction, so I know that I have it imported from both sides. >> >> >> Q2 >> >> Not sure if you've come across smart importer >> https://github.com/beancount/smart_importer, this is a wrapper around >> your importer that uses existing transactions to guess what the missing >> other leg could be. For me this works extremely well. >> >> I use it together with the web ui fava https://github.com/beancount/fava >> >> when you then run an importer you get basically the list of all your >> transactions and you can still modify if the smart importer guess wrong. >> >> What I also started doing more and more (and also works quite nicely), is >> to actually not even have a file to import but instead directly use an >> available api (e.g. truelayer, revolut, transferwise, interactive brokers, >> ...), you can see some examples in my beancounttools >> https://github.com/tarioch/beancounttools >> >> >> Q3 >> >> There were some enhancements done for hooks: >> https://github.com/beancount/beancount/issues/458 >> >> >> Regards, >> >> Patrick >> >> >> >> On 25.06.2020 07:15, Jonathan Goldman wrote: >> >> Hi, >> >> I have done a bunch of exploration of beancount over the last few months >> and really like its capabilities and now ready to get serious about getting >> it working for me. So far this is what I have done: >> >> >> - Used the sample files to familiarize myself with the commands and >> beancount's capabilities. >> - Created accounts and manually entered some real data for my >> personal finances. >> - Tried this <https://github.com/jbms/beancount-import> >> sem-auto-categorization web-based import tool. It's good but I think I'll >> mostly go the manual route. >> - Tried various import methods >> - Tried importing a quicken file...have had some trouble with this. >> - Tried a csv2ofx <https://github.com/reubano/csv2ofx> tool >> - Used reds_importers >> >> <https://github.com/redstreet/beancount_reds_importers/blob/master/README.md> >> >> for Vanguard. This has worked successfully. This generates output that >> has >> two-sided. >> - Wrote my own csv importer for my bank that is based on this csv >> >> <https://gist.github.com/mterwill/7fdcc573dc1aa158648aacd4e33786e8#file-importers-chase-py> >> >> importer.. (I'm not a software engineer by training so this took me >> some >> time but I'm very happy with this now and understand the code much >> more). >> This generates output that is only one-sided. >> >> My own conclusion is that I want go the route suggested by Martin and >> effectively have my own importers for each source and with text-based >> editor with auto-completion do the categorization. For the brokerages there >> are a limited number of accounts/categories you can have so doing the >> two-sided entry can be done here so it is auto-categorization if you will. >> (e.g. dividends from account xyz always go to this income account, etc). >> For credit cards and banks it rarely helps as there are so many expense >> categories. Perhaps a subset (e.g. interest income from the bank can be >> autocategorized or mortgage payment of specific amount) can be automated. >> >> *Q1. Is doing two-side entry for brokerages and single-side for >> banks/credit cards a good approach the general practice that most here >> use? * >> *Q2. Is there other import approaches to consider? I think I'm finding >> this the hardest part to get going on and that is why other tools like >> Quicken/Mint/GnuCash are easier to get going. So not sure how, but perhaps >> data collection and import is something already solved that is not >> beancount specific?* >> >> I also noticed that Martin mentioned this in the import documentation >> <https://docs.google.com/document/d/11EwQdujzEo2cxqaF5PgxCEZXWfKKQCYSMfdJowp_1S8/edit#> >> : >> >>> A list of things I’d really want to add, beyond fortifying what’s >>> already there: >>> >>> - >>> >>> A generic, configurable CSV importer which you can instantiate. I >>> plan to play with this a bit and build a sniffer that could >>> automatically >>> figure out the role of each column. >>> - >>> >>> A hook to allow you to register a callback for post-processing >>> transactions that works across all importers. >>> >>> >> *Q3. Is there any update/development on these two items?* >> >> thanks, >> Jonathan >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Beancount" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to bean...@googlegroups.com <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/beancount/b2b52ac6-b019-4375-adcb-e3f7e6ab0c3bo%40googlegroups.com >> >> <https://groups.google.com/d/msgid/beancount/b2b52ac6-b019-4375-adcb-e3f7e6ab0c3bo%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Beancount" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to bean...@googlegroups.com <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/beancount/10207a15-f6f1-d6d6-994c-33e9520e2c83%40ch.tario.org >> >> <https://groups.google.com/d/msgid/beancount/10207a15-f6f1-d6d6-994c-33e9520e2c83%40ch.tario.org?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "Beancount" group. To unsubscribe from this group and stop receiving emails from it, send an email to beancount+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/12d98f89-eb7d-49d9-98f1-a0ec65a794dco%40googlegroups.com.