How I automated my budget tracking (Part 1)

Mr. & Mrs. Seesaw
4 min readOct 11, 2022

--

Hello! Since this is my first post I should probably introduce myself — I’ll be called Mr. Saw for the purpose of this blog. If I had to describe myself, after saying ‘do I really have to?’, I’d say I’m a quiet, calm introvert who loves reading, programming, investing and generally anything to do with technology. Apart from that, I follow football, cricket and Formula 1 pretty closely when it comes to sport. Given this, my posts will mostly cover these areas individually or in certain combinations since that’s where I usually spend a lot of my time (I don’t go out much).

To start off with, I’m going to be talking about something that combines 2 of the topics above: investing (well, kind of — it’s budgeting) and programming.

Ever since I started earning money (during my never-completed *sad violin* Master’s degree where I was teaching 20-year-olds statistics and 16-year-olds math — wouldn’t recommend), I’ve always been obsessive about tracking it. I wanted to make sure I knew exactly what was coming into my account and where I was spending it. Obviously back in university days money was pretty tight and I didn’t want to rely on my parents to fund my life anymore, so it became even more important to track what I was doing with my money and that’s where the first budget tracker was born.

Initially, I did this through a Google Sheet — I modelled the sheet itself after an income statement of sorts, since that was all I knew at the time (I had to do Accounting 101 as part of my General Education requirements at university).

This is what it looked like:

I had to blur this picture in PowerPoint, just so you have an idea of the range of my artistic talents.

This did the job, but as you can probably tell by looking at it, there were many issues with this arrangement:

  • It needed manual updating every single day, or I’d forget whatever I had spent money on. My memory is notoriously bad so if I missed a day, that was basically it — good luck remembering. I also spent a lot of cash at university, so there was no real record of my spending that I could go back to after a few days either (this will become relevant later).
  • Each category’s value actually had a giant formula inside it — for example, the value in front of Food would be something like =20+15+17+22+19+35, so every time I wanted to update what I had spent on food I’d have to go into the formula, go to the end and add in today’s value. Very annoying.
  • I’d enter some recurring expenses (phone bill, AC bill) without having actually paid them since I knew how much they’d be in advance, so then I had to add annoying notes on the side reminding myself if I’d actually paid these expenses or not.
  • And lastly, I wanted to have some sense of time splits so I had decided to have one of these sheets for each calendar month. The problem was, each sheet was great (okay fine, average) on its own but I had no way of looking at my performance over multiple months. Also, due to my aforementioned horrible memory, I’d just keep adding expenses to the September sheet without realizing we were actually midway through October — also not great.

So this went on in its horrible alpha-v1-basic state for a good few years until around 2019, when I decided enough was enough! I was now an employed Data Scientist who worked with databases and Python and scripts damn it, and here I was sitting down at my laptop before sleeping every night, racking my brain to try and remember what I spent on lunch a few hours earlier. This couldn’t be the best way to do this!

And thus began The Great Budget Update. My wish-list for this v2.0 was:

  • Structured like a database — each transaction should be on its own so that I could then aggregate/analyze the raw data however I liked — weekly, monthly, by category, etc.
  • Build some nice summary charts/tables off this raw data, since that’s what I really need to see.
  • Grand prize winner — somehow automate the data entry.

Since by now I was a big boy, I had my own credit card and pretty much used it for anything and everything I bought, physically or online. That meant I received an SMS with the details of each transaction, and I knew that meant this last point was possible.

One last thing about me that is relevant here — I’m also pretty lazy, in that I hate doing anything that’s repetitive or low value-add for too long. And that’s when I usually get to work using my hacky programming skills, to avoid having to do that job manually.

And that can be my segue into Part 2 of this series, where we shall discuss how I went about using these personality traits to attempt The Great Budget Update. See(saw) you there!

-Saw

--

--

Mr. & Mrs. Seesaw

Dubai-based millennial couple juggling their fulltime jobs with their hobbies and side hustles. Writing under the impression that no one is reading.