How We Track Our Expenses

Last updated: May 10, 2024

One of the many stunning mineral displays at the Perot Museum

Alrighty, now that I have described our process for validating our expenses (to catch any fraud/mistakes), it’s high time to lay out exactly how we track our expenses.

Long time readers know that I’m always rattling on about how important it is to track your expenses to achieve FI. But I know that it can be really overwhelming to actually DO THAT when you first start.

If you’re just getting started, hopefully our process will give you a solid template to build on for tracking your expenses.

If you’ve already been tracking your expenses for a while, hopefully you’ll pick up some nifty tips below that can improve your current process.

And of course if you have any nifty tips I don’t list below, I’m all ears!

Why We Track Our Expenses

There are three main reasons we go through all the work below to track our expenses:

  1. To catch any incorrect or fraudulent charges
  2. To know our average long term annual spending, which we use for calculating our withdrawal rate (and ensure we stay Financially Independent!)
  3. To retain strong awareness of our expenses in general

#1 we already covered in a previous post.

We’ll discuss on #2 in the “Compute Long-Term Inflation-Adjusted Expense Averages” section below.

And #3 is important (in my opinion) regardless of how much money you have – even if you plan to open up the purse strings a bit after hitting FI.

If you don’t track your expenses, it’s really easy to let your spending get sloppy. And that can quickly turn an enjoyable retirement into a not-so-enjoyable retirement.

A good analogy is watching what you eat: even if you hit your fitness / weight loss goal, you don’t want to completely stop paying attention to what you eat afterwards. (Credit to Doug Cunnington over at Mile High FI for sharing this analogy during a conversation at FinCon last year.)

Create New Monthly Expenses Spreadsheet

After each month ends, I create a new spreadsheet to compute our expense totals for that month.

You can download a template spreadsheet here, which I created from the exact spreadsheet we use.

Typically I copy the previous month’s expense spreadsheet and rename it to the new month. E.g., in early January 2024 I’ll copy the “November 2023 Expenses” spreadsheet and rename it as “December 2023 Expenses”. You can do the same thing with the above template.

The first thing I do after creating and renaming the new spreadsheet is copy the “Total” column values to the “Previous Month” column (using Ctrl-Shift-V, or right-click, paste special, values only). Thus when I finish putting the new expenses in, I can see how much each category total changed from the previous month (in the “Delta” column).

Then I’ll pop over to the “Sorted” and “Raw Expenses” tabs, and use the “fill color” tool to highlight (e.g., with yellow or orange) all the expenses from the previous month that we’ll be replacing with new expenses. I do this instead of just deleting those old expenses because it’s a bit easier to see the appropriate format the new expenses should have when adding them. But you could just delete them if you prefer.

Download Transactions

Now that we have our spreadsheet in place to capture expenses, let’s get those expenses!

At this point we assume every expense is validated, so we just need to download them from all the different credit card / bank accounts that incurred expenses that month.

Log in to each of your accounts (even if you don’t think there are any expenses, it’s still good to check), and then download all transactions from that previous month as a CSV file. Unfortunately every company has a very different process for doing this, so you’ll have to explore a bit to figure it out, but it’s usually not that difficult.

Note: if you have an authorized user such as a spouse on a credit card account, you’ll need to log in to the primary card holder’s account to see ALL the expenses (vs just those of the authorized user).

You can usually specify the start and end dates for that month when downloading the file (perhaps actually specifying the day before the month started to the day after it ended, to play it safe), or you can simply select a broader time frame like “Year To Date”. 

Now it’s time to open up that CSV file, using a spreadsheet program such as Excel or LibreOffice Calc or even Google Sheets. Then do the following steps to “clean up” the CSV file:

  • Remove any expenses that are outside the month of interest. I always use the transaction date, instead of the post date (if the company provides both in the CSV file).
  • Remove any credit card payments in your bank account transactions list, since you’re already collecting those expenses from the credit card site. We do not want to “double count”.
  • Similarly delete any payments made in your credit card account transactions list.
  • Delete any income, money transfers between bank accounts, transfers to your investment funds, etc. Remember: we’re only tracking expenses here.
  • DO keep any returns / reimbursements though: those you will count as “negative expenses”. You wouldn’t have gotten that refund or reimbursement if you hadn’t had the original expense. This is important, as it lowers your expense totals, which of course impacts your current withdrawal rate.
  • Move columns as needed to have the transaction dates in the first column, the expense amount in the second column, and the expense description in the third column. 

With your modified CSV file, copy the rows (without formatting, using Ctrl-Shift-V) into the “Raw Expenses” tab of the Google Sheet, below the heading describing what card/account it is.

Note: some banks / credit card companies list expenses in the CSV as negative values (e.g., Chase and Wells Fargo do this), but we’d like all expenses to be positive values – since we’re tracking only expenses here, and thus it’s not necessary to have a negative sign in front of nearly every value. Fortunately it’s easy to reverse the sign of these values using a quick spreadsheet trick: in column D of the template spreadsheet, I add negative signs to the column B values to reverse the sign, so you can simply copy and paste (without formatting) the column D values to column B to reverse the sign.

Sort Expenses

At this point you should have all your expenses from all your accounts in the “Raw Expenses”  tab (assuming you don’t use cash to pay for any expenses – you will need to add those manually if you do).

Next you should copy the entire sheet and paste it into the tab “Raw Expenses – For Cutting”. You can probably guess what this tab is for: this is where you’ll actually cut and paste expenses from when you’re sorting. This way you retain a record of what expenses belong to what accounts (in “Raw Expenses”), and you also can easily see what expenses you’ve already sorted (by cutting them from “Raw Expenses – For Cutting”). 

Now you’ll cut and paste each expense into the appropriate category within the “Sorted” tab. You should cut and paste the three elements for each expense: date, amount, description.

The template has the categories that we use to sort expenses, but of course you can add and delete categories as much as you want.

You can also add additional descriptions of each expense in a column to the right, especially for expenses that don’t have obvious meaning. E.g., while it’s easy to identify restaurant expenses from restaurant merchant names, an Amazon expense could be nearly anything. (More on processing Amazon expenses below.) This can help greatly in determining which category the expense belongs in.

Also remember to delete any remnant expenses not in the month you’re working on, if you copied the spreadsheet from the previous month.

Note: the expenses in the “Raw Expenses” tab of the Template file do not exactly overlap with those in the “Sorted” tab, because I wanted to show a wide variety of examples – but in your tracking, they should all be the same. All the values you see in the “Totals” tab are the totals from the “Sorted” tab.

Another note: we include the money we give to the kids for their allowance as an expense (even if we didn’t give them cash and the money is just in a spreadsheet). We consider that money “spent” since our kids have full control of that money. It’s also most definitely in the discretionary category. 

Transactions With Multiple Expense Types

For purchases/receipts that can have a variety of expense types, such as a grocery store / Target / Walmart / etc. receipt, paste those rows into the top section that has a variety of categories in the columns to the right. Then specify how much of that total purchase/receipt falls into each category using the columns.

How do you do that though? The shocking answer: look at the receipt!

I know what’s probably going through your head right now though: “You seriously expect me to look through every friggin line of every grocery store receipt I have? Are you crazy? That will be horribly painful and tedious!”

I know that’s going through your head, because it also went through my head. But I decided to see just how painful it was when I was feeling really motivated one day, and I was really surprised how easy it turned out to be.

First you’ll need to pull up the receipt for each transaction (duh). If you use Expensify (as I recommend), I recommend clicking on the expense, right-clicking the download button for the receipt image, open the link in a new tab, then in the new tab a single left click will zoom in on the image – making it far easier to easily see every line. Or, if you prefer to stay analog and don’t capture your receipts with Expensify, you can simply look at the paper receipts.

For grocery store receipts, most of the time nearly every item is just in the “Food” category, so I can just skim the receipt to look for non-food items (often indicated by a T indicating that sales tax was applied to that item). Within the template, all non-food expenses are subtracted from the total transaction amount to generate the food expense total automatically. 

For items that do have sales tax, you can see some examples in the template of how I add this tax. E.g., the first grocery store expense has a Household expense of $8.76. Here in Austin, TX we have a sales tax of 8.25%, so I apply that with this Google sheet formula: “=round((8.76)*1.0825,2)”. Note how I round to the nearest cent using the round function. 

After processing all these purchases/receipts, the totals from each category column are automatically generated and used in the “Totals” tab.

Processing Amazon Expenses

Given the almost infinite variety of items you can purchase from Amazon, and how every Amazon transaction simply lists “Amazon”, identifying what kinds of expenses you have for Amazon purchases is trickier than many other merchants.

I find it easier to identify the item(s) purchased for each transaction, add that to a column next to the expense in the “Raw Expenses” tab, and then using those labels to identify which category the expense should be in within the “Sorted” tab.

How do you easily identify these expenses though? Here are some ideas, in the order I recommend trying until you identify the expense:

  • Search your email for the expense amount – often that easily identifies the item from the Amazon email confirmation
  • Go to the Amazon Transactions page and search for the amount, then click the purchase order link to see the item you purchased (including the same page for anyone else in your household that has their own account)
  • If you use the Amazon Prime credit card, you can login to your Chase account, and they provide a link to the Amazon order associated with each expense – very handy!

We also count any use of Amazon gift card credit as an expense to track. Otherwise a lot of our spending would not be tracked. We don’t worry about it for other stores, since we don’t use gift cards for other stores much, but I would recommend you do if you use other kinds of gift cards often.

Fortunately Amazon has a Gift Card Activity page that you can pull expenses from, which very helpfully includes links to the associated orders. Remember to only capture the credits used to buy things or credit received for refunds / reimbursements. I.e., don’t include Amazon shopper panel credits, gifts from family/friends, etc.

Review Totals For Each Expense Category

Once you’re done with the “Sorted” tab, head on over to the “Totals” tab to see your results.

The totals of each expense category are shown on the corresponding row, along with the percentage of total spending that category has.

I personally like to move the rows so that they’re sorted largest to smallest expense totals, but that’s very optional.

In the “Comments” column, you can add notes about any special expenses in that category. E.g., if you just got a new roof, you can note on the “Home_Repairs&Landscaping” category row.

Finally, at the bottom of the “Totals” tab, you will find the expenses grand total for the entire month! Woohoo!

Required Versus Discretionary Expenses

There are three more rows of stuff below that grand total though:

  • “Required Monthly Expenses”
  • “Required Yearly Expenses”
  • “Discretionary Expenses”

What do these mean?


First off, every expense category is considered either “required” or “discretionary” in the template. These are set based on the categories we personally believe are required vs discretionary, but of course you should review the categories to see if those designations align with your lifestyle.

In general our philosophy for how to designate expenses as “discretionary” or “required”  is that if the shit really hits the fan (e.g, the markets tank, we both lose our part-time jobs, and we can’t find a way to make any money because it’s the next great depression), the “discretionary” expenses are those we can relatively easily cut. 

For example, we consider “Home Repairs” to be required because if we have a leaking pipe, that’s gotta be fixed no matter what. But “Travel” we can easily set as discretionary. We love to travel, but we could easily do without during tough times. Similarly we consider gas for cars to be discretionary, since we have an EV and PHEV – we only use gas for long drives / road trips,  which we could easily cut if needed. We also consider work expenses discretionary, because if we lost our part-time jobs then we wouldn’t have to incur those expenses anymore. 

Of course all of these categories could be completely different for you. If you live in a rental, your landlord should nominally cover all required repairs. And if you still drive a pollution car, gas is unavoidable. 

And obviously if things get bad enough, many “required” expenses like a mortgage could be reduced as well – you could sell your house and move somewhere cheaper. Not easy, but doable. Still, having this division of required versus discretionary expenses for your current lifestyle is very useful. 

Another nice aspect of computing required vs discretionary expenses is that you can identify when you’ve hit “lean FI”, where your assets can cover at least your required expenses. 


How do you see and change which expenses are required vs discretionary in the spreadsheet though? The “Required Monthly Expenses” and “Discretionary Expenses” rows are actually the sum of each kind of expenses, so you can select these fields and Google will automatically highlight the corresponding expense categories.

The “Required Yearly Expenses” row is for expenses you know occur just once or twice a year (e.g., property taxes, insurance, etc.). So these are NOT included in the “Required Monthly Expenses” row. Since those annual expenses may not happen for the month you’re considering, these values are manually placed in that row – see the Template for how this is done. 

Note: if you have an expense that happens more than once per year, multiply that to get the annual expected total. E.g., auto insurance premiums that are due twice a year you should multiply by 2 in this row.

I always use the latest and greatest values for these “Required Yearly Expenses”. E.g., I’ll use the latest value for annual property taxes, until I get an updated value the next year. Same for insurance.


I continue to believe everyone should build their own expense tracking system, but hopefully this post will give you a wide variety of ideas / tools you can employ in your own system. Especially since I’ve been refining our system for years now.

I know there are a lot of steps in this process, but it takes me probably just 1 to 2 hours a month to do everything. And it doesn’t take much brain power for me either, since the steps are pretty consistent, so I just put on some nice music and enjoy doing something important but relatively easy. I kind of look forward to it actually, since I’ll then have the latest and greatest expense values for tracking our withdrawal rate.

Speaking of computing that withdrawal rate, my next post will cover how to use these monthly total expense values to compute your long-term inflation-adjusted expenses average, which is what you’ll need to compute your withdrawal rate and thus your FI status. 

If you have any questions regarding any of the steps above, or you see any important steps I’ve left out, please leave a comment or shoot me a note. 

Happy expense tracking!

Leave a Comment

Your email address will not be published. Required fields are marked *