I always felt that if I was able to see how much money I would have in the future I could more accurately save, spend, and make bill payments instead of just worrying all the time. Such a tool exists as a part of Quicken but Quicken is a slow, confusing piece of software that I bought and ended up returning because it was that bad(!). I looked but Mint.com doesn't have it, GnuCash doesn't have it, and doing it in Excel would require I learn VB, which, let's be honest, would probably result in me developing some serious medical condition.
I coded up the class model while I was at the barber shop in a Google Note and finished it in 3-ish hours at home. It honestly took more time to find the exact days that all my different services charge me on and put that in the program. It's pretty small and it needs a few more useful features before I can really use it but even in its current state I already feel comfortable where I am financially. Code can be found on GitHub.
Graph of projected balance over 90 days from today using a mixture of bogus and real data.
The nicest part about this was I found libraries for both the plotting (Plotly) and for the reoccuring date problem (python-dateutil). My resultant program, including tests, was only about 100 lines long.
Anyway, it's been a pretty tough week and I don't think this will be my last endeavor with Python in the coming months. I want to revisit my music library and update that program so I guess we'll see how that goes.