What Should You Tackle First

It is easy to get overwhelmed by the breadth and depth of things to do with respect to data ingest. So where do you begin? Following the order of articles in The Five-Minute Ledger Update should generally give you the most bang for your buck. Here are some other related tips:

  1. Pick the simplest of your accounts that is also reasonably important to work with. For me, this is my savings bank account. It:
    • contains only a few transactions per month
    • each transaction contains only a single other posting
    • the posting on each transaction is perfectly predictable
  2. Write an importer for this account. Your goal here is to be able to type a single command that searches your Downloads directory for the bank’s OFX (or CSV or other) file that you maually downloaded (for now), parses it, builds transactions, and appends them to your beancount source
    • at first, ignore the tricky transactions that are exceptions. Focus on getting the core transactions right, and the workflow right
    • several issues such as picking the right importer framework (I recommend beancount-reds-importers, of course, but there are several good options), deduping, the right account hierarchy for your needs, source file/tree layout (single file vs. multi-file schemes), source/revision control of your beancount files, editor setup, error checking (integrating bean-check with your editor), and so on, will come up. Solve these, with an eye towards writing tools that will let you experiment to find the ideal setup for your needs. As an example, I have a simple, robust script to rename accounts so changing and experimenting with account hierarchies is a snap
    • The goal of beancount-reds-importers is to allow you to write most importers with just a few lines of code to handle institution-specific formats and quirks, as opposed to reinventing importers from scratch
  3. Write an importer for the next easiest account class. For me, this was credit cards. I had to add in smart_importer to my import scripts so expense classification (finding the right posting to book an expense to) was automated

  4. Write importers for your remaining account classes. For me, they were investment accounts, and parsing paychecks

  5. Tired of downloading files by hand? Automate this part now

  6. Tie up the loose ends to make your import process as fast as possible. My benchmark was of course, five minutes or less

Notes mentioning this note