Congratulations! I use Polars to process my banking csvs into a monthly report. Speed isn't a priority, but ergonomics is- I love Polars consistent and readable Python API!
If you're looking for an easy way to build an HTML report using Python, you might find Datapane (https://github.com/datapane/datapane) helpful. I'm one of the people building it! We don't support polars (yet, on the roadmap) but we do support pandas so you can convert to a pandas DataFrame and include your data and any plots, etc.
Thanks for sharing! I think everyone has their own expectations/needs from a tool like this, so just for the sake of comparison:
For classification and visualization I prefer tags (not necessarily mutually exclusive) rather than categories (too rigid and therefore arbitrary and therefore hard to keep consistent), but then the database management becomes more complicated (need a transactions-tags table or equivalent).
I want to automate the classification as much as possible, so I set up merchant-tags, which are automatically applied to all matching transactions. Again, this means managing a merchants table. It turned out that both the number of repeat merchants is high (so lots of patterns to maintain; these are stored in the DB as part of the merchant record, rather than in the code) and the number of novel merchants is high (so still spend a lot of time on the manual classification).
Part of the motivation for the above complexity was a vision of some kind of dynamic, auto-generated, multi-level breakdown of cost categories. For example, I might want to see a "date night" tag in both food>dining>date night, and entertainment>date night.
Anyway, all the above complexity was fragile, and too much work on top of the manual classification. A few years ago something in the DB broke and I just didn't get around to fixing it. I probably need to restart with something simpler.