Putting it All Together into a Workflow

This is how my workflow looks:

bean-download needs-update # optional

bean-download download # works in the background; multi-threaded

# manual: download remaining transaction files via browser # 1-2mins

./process_all_files.zsh # (includes manual inspection, and bean-check) # 2-3mins

git commit -m "Data update" # and we're done!

Learn more about needs-update here and bean-download here.

The process_all_files.zsh step above can occasionally take 10 minutes or longer (eg: lot reductions, many unseen credit card transactions after a trip, etc.), but this tends to happen infrequently, about 2-3 times a year for me.

Import Processor stage in detail:

process_all_files.zsh automates this stage. See a sample here which you can modify to your needs.

Imported transactions are now in multiple files, one per account, in a staging directory.

Manual Inspection

  • is not needed for investment accounts, given these are deterministic
  • is needed for investment accounts only when making lot reductions, since lot matching is typically not available via import files (OFX or CSV)
  • is needed for credit cards, expense categorization: smart_importer is terrific, but gets it wrong in 5-10% of the cases

Append to Ledger Source

Once inspected, I use a simple script to append the staged transactions to the main repo of beancount ledger files. Note that I use per-account beancount files.

Revision Control

I maintain my source ledger files in git for rollbacks and answering “why did I do that?” In practice, I’ve rarely had to use it for those reasons. The most helpful reason to use git is to know what your import process has appended in the current session, and to provide insurance against errors.

Alternatives

In my understanding, Fava provides essentially the same workflow as above, with the caveat that it does not support multi-account imports (a single .ofx containing multiple accounts, for example). See a user’s post here. Though I have not personally used it, Fava is thoughtfully designed and maintained, and is a great alternative to check out.

Notes mentioning this note