Skip to content
Rocco Caputo edited this page Jun 5, 2018 · 5 revisions

I use emacs to edit and reconcile my corporate ledger.

First, I download my bank transactions (from Bank of America) and
use a trivial python script
to convert them to ledger format.

I open two emacs windows (M-x new-frame/C-x52) so I can edit the
bank statement and my ledger side by side.

This is a great setup even if you just want to use ledger-reconcile. However,
I’m particularly picky about keeping the effective dates filled in, so as I work
through the bank statement, I just update my ledger by hand, and mark each
entry as cleared (with a * ) as I go.

To check my work, I keep a terminal window open that constantly monitors the
cleared balance:

 watch ledger --cleared bal asset:checking

This constant feedback seems to prevent data entry errors on my part, and
the two-window mode lets me move fairly quickly.

Converting the bank data to ledger format turns out to be MUCH nicer than
using a paper statement or even working directly from online banking, because
if you’re missing a transaction, you can just cut and paste.


I’ve got a similar (Haskell) script for CSV-data, along with some tips on fetching the data via HBCI (online API provided by most German banks):


Andrew Cantino has a csv import script that learns what your accounts are:

  • is an interactive posting reconciler for Vim.

  • Potential offsets are highlighted.
  • Unbalanced reconciliations are prohibited.
  • Offsetting postings are tagged so they can be found, reported on, or undone together later.