Measurement before control
Take time to understand your spending. Immediately imposing hard limits will not help.
Looking at my blog’s short description, it says:
Writing about the stuff I like to talk about. Mostly the non-technical parts of software engineering. Sometimes other things, probably.
That “probably” has been poorly evidenced, since I’ve thus far only talked the non-technical parts of software engineering. Let’s change that!
With Mint shutting down, I and thousands of other people are scrambling to find a service to replace it.1 So maybe it’s a good time to write about another topic I like to talk about: personal finance. More specifically, about a common anti-pattern I see in budgeting.2
Arbitrary limits don’t work, even when you set them
I’m going to tell you two totally unrelated stories.
You are a software engineer.
Your PM asks you to set the deadline of a complex project you’ll be implementing3. They emphasize how many customers are excited about this feature, and how visible the project will be to the org, so you set yourself an ambitious deadline. The PM announces the release calendar, and crows about you to everyone who will listen. You feel like a complete boss. You buckle down with your IDE in Focus Mode, and your Pomodoro timer at the ready.
Halfway through, you realize that you will not be done in time. Maybe you cut scope at the last minute, disappointing the PM by delivering a bare-bones outcome. Maybe you work overtime, taxing your family and your own mental health. Maybe you ask for an extension, disappointing customers. You feel like a failure, and your next performance review takes a dive.
You are an adult in a capitalist structure.
You don’t know how much money you’re spending. You don’t know what you’re spending your money on. Maybe you run out of money before your next paycheck, and you scramble to buy more time or take more debt until your account refills.
You’ve heard you’re supposed to have a budget. Maybe you try using Mint? You spend a weekend feeding a bunch of bank/card statements into it, you decide how much you’ll spend on each category, and maybe you install an app that tells you when you’re near your limit. It seems hard, but now that you’ve written down your commitments, things will finally turn around!
Things don’t turn around. Your food budget runs out partway through the month, but your family still needs to eat, so you overrule the app. You feel like a failure and you’re wracked with guilt, so you don’t bother to update the budget next month.
OK, I was lying, those stories were related. One month’s spending, and a one month software project, are both complex and unpredictable beasts. You cannot simply choose to spend less money next month, any more than you can simply choose to work faster (without sacrificing quality). And there are immediate consequences for under-promising, and delayed consequences for over-promising:
It feels like you’re damned whichever way you go! You feel like a failure, or you incur another overdraft, or the business suffers, or your career suffers.
Now even though I’ve just explained the parallel, I’m going to immediately abandon it. The problems are similar, but the typical solution for project planning (cutting scope, usually) is not the solution I recommend for budgeting: focus on tracking, and forget about setting limits for now.
Measure twice, cut later
This may seem a bit pointless, but bear with me.
Optimizing the performance of our code is generally pointless until we know how it performs in production. We learn how it performs in production by configuring metrics, and by watching those metrics over days and weeks to see what patterns emerge.
Similarly, you’re likely to spend your cost-cutting effort in the wrong places if you make cuts before setting up your metrics. You’ll miss your targets, get discouraged, and abandon the whole effort.
Then how do I setup metrics for my spending?
Software to the rescue! Instead of DataDog, SumoLogic, or CloudWatch, you’ll use YNAB, Quicken, Tiller, or Mint Monarch (these are referral links).
Add your financial accounts so the software can consume all your transactions from bank accounts and credit cards, and auto-categorize them.4
The software will pull in 1-3 months of transactions. Pore through all of those, correcting the numerous mistakes, and add an auto-categorization rule for each so that it doesn’t make the same mistake again. This is the most time-consuming part of the process (still easier than cost-cutting, though).
Ignore any budget or cash flow sections for now. Until you have a lot of well-categorized data, those dashboards will be confusing, wrong, and demoralizing.5
Watch the transactions stream in over the next three months, continuing to correct categories and create rules (weekly, or as needed).6 If you’re diligent about creating rules, the auto-categorization will become very reliable in this time.
At the end of this, you’ll have 4-6 months of clean, accurate data. Celebrate your glorious victory.
How is this a victory? I’ll still be spending too much money!
It is a victory on the way to that larger victory. You need to measure before you can cut.
I’ll start categorizing my transactions next month, because this month is a weird one.
You can’t possibly know that’s true unless you’re already categorizing your transactions. Human brains are not good at detecting patterns in big lists of numbers, unless you can sort and filter them. You need to feed them into one database, with plenty of metadata, before that’s possible. That’s exactly what the metrics are for.
The software shows my budget as red, and that demoralizes me.
I told you not to click on the budget tab!7
Wait, you folks are software engineers, right? Just change the CSS of the page so it’s something inoffensive, like cerulean. Oh, or make a new budgeting app!
No.
That’s fair, I don’t want to either. Just don’t click on the budget tab.
The most important step is the next one
Do not excoriate yourself for not having a handle on your finances. It’s an inherently complex domain, and we do a bad job of training our kids on financial literacy.
I’ll write another article next year about making cuts, so since this transaction-tracking process takes three months, start it today.
I’m also told that people sometimes buy gifts for one another during the coming holidays? That’s not a habit my family ever adapted, but I can see how it might inspire folks to look at their bank accounts a tad more anxiously.
Don’t worry, I’ll probably be unable to resist drawing a parallel to engineering.
I promise, these PMs do exist!
Make sure to include all of your family’s bank accounts, and all of those cards. To ensure that you’ve done this, keep an eye on any bank transactions named like “Credit card payment”, and make sure there’s a matching “Thanks for the payment” transaction in the credit card account. If one is missing, you’re not tracking one of your cards.
Yes, I realize that this runs contrary to YNAB’s zero-based budgeting. That’s a good long-term goal, but it’s not necessary when we’re just setting up our first metrics.
If there’s one category that ends up being a bit of a catch-all (e.g. Shopping or Miscellaneous or Personal), split it up. In our case, we split these into “Clothing” and “Simon Personal” and “Liz Personal” and “Vacation”.
Of the various vendors I suggested, YNAB is a bit less aggressive about this (telling you to budget and marking things red when you don’t).
I've had tremendous success (for probably the first time?) using Copilot for managing my money. It has all of the right visualizations and practices for separating recurring expenses from non-recurring, handling them differently from analysis to analysis.
https://copilot.money
I also have come to like Qube more and more as I use it. It's a slightly clunky UX when getting started, and my physical debit card doesn't have a tap, and I had some issues setting up Apple Pay early on, but the upsides more than outweigh all of that. Compared to other services I've used, it's easy to move an expense to a different wallet and to set a default wallet. It also works elegantly with no default wallet setup. It's expensive, but many similar companies (simple, one) have shuttered or been acquired, and the subscription makes their business model feasible.
https://qubemoney.com
Good points, and breaking it down in steps also reduces the initial time investment, which is a major reason people give up.
By the way, since Plaid shut down my home-made spending tracker after years I was using it, I found Rocket Money and it's really good. It's $50/y but IMO worth it.