I spent a weekend building a tiny script that did one thing: rename downloaded bank statements into a format I could actually search.

The useful part was not the script. The useful part was noticing how many small chores had become permanent background noise.

What made it work

The first version was deliberately boring:

That last step mattered. A tool that makes me nervous does not become part of my routine.

The interface

The whole thing eventually felt like this:

2024-01-31_statement.pdf
  -> 2024-01-31 checking.pdf

Apply rename? [y/N]

No dashboard. No database. No abstraction named DocumentLifecycleManager.

A small tool earns trust by being easy to inspect.

The script is still not general. It handles my bank, my folder structure, and my naming convention. That is why it gets used.

What I would change

I would keep a dry-run mode forever. I would also write the log before renaming anything, because future me will eventually ask, “what happened to that file?”