Maybe one day someone will invent a securer-than-email system for delivering financial statements directly to my computer, but we’re obviously not there yet. Not even close. So for now, I’m stuck visiting each company’s web site to download the PDFs myself. It’s not fun, but I think it’s necessary to have good personal financial records in a time when banks are made more of 1s and 0s than brick and mortar.

Downloading PDF statements yourself is one of modern life’s menial, rote activities. It’s certainly not worthy of a blog post – unless of course it’s about how to make it better and more fun.

And, actually, that’s just what I’ve done using 1Password, TextExpander, and Hazel.

First, the need

Around the 5th of each month, I download financial statements by visiting each site individually. Downloading isn’t that bad, especially if you use 1Password to unlock all those doors for you.1

But the downloading itself introduces a potentially productivity-halting friction: Each statement lands in my downloads folder with different, often meaningless name (e.g. “estatement.pdf” or “justplaingobbledygook.pdf”).

Since my ultimate goal is to file these all into a single folder, I had to manually rename each one including a date (e.g. Bank ABC Savings 201101.pdf).

Typing this out each time was a big pain – a friction that sometimes caused me to skip it altogether.

Once renamed, I had to copy each PDF to its final destination: a folder called Statements inside a secure disk image.

So long story short, 1Password was helping the workflow, but I was doing the same rote things over and over each month, and it sucked.

Automating the workflow with TextExpander and Hazel


Since I download most statements around the 5th of each month, I’m always getting last month’s statement. In other words, if it’s February 5, I’m going to be renaming Bank ABC’s statement to “Bank ABC 201101.pdf.”

Fortunately, TextExpander is smart enough to do the date math for me (see Smile’s tutorial). TextExpander can subtract one month from the current date, then format it in all kinds of ways. In my case, I wanted the date to be “yyyymm”.

If you’re looking for an excellent return on your time, just have a look at the Date / Time Math menu in TextExpander sometime.

I now have a TextExpander snippet for each statement that I download. Example:

So now, instead of typing “ABC Savings 201101,” all I have to do is type .abc, and TextExpander does the math and typing for me.


I have several Hazel rules that watch my downloads folder. One of them keeps an eye out for specific financial statements. As soon as Hazel sees one, she sweeps it into my Statements folder.


  1. Download statement
  2. Rename statement by typing snippet
  3. Go do more enjoyable things

If Hazel automation makes you happy, you should also visit David Sparks’s even more sophisticated “statement” workflow with Hazel.

  1. This part was a major nuisance before I started using 1Password. Now, it’s not that bad: I just use a keyboard shortcut to trigger 1Password’s Go & Fill search field, type the site name, and 1Password unlocks the door and lets me in.