Since budgeting is very important in our capitalistic society, and since I didn't want to pay for an app that did my budgeting, I decided to make my own finance tracker! Making my own has the benefit that it is free, and the downside that I have to input all of my expenses and earnings manually. To alleviate this downside, I implemented a few scripts that would help automate inputting those details. After making a simpler version that worked but had limited features, I decided to go all the way and make the one presented here. Some future features I would like to add include:
- Being able to "spend" savings. For example, once I go to graduate school I will need to spend money that I've put in the "Graduate School" savings fund.
If you would like to use this tracker, please do the following:
- Create a copy of the Finance Tracker Template found here.
- In the sheet, go to Extensions -> Apps Script.
- Go to the GitHub page.
- Copy the contents of financeScript.js into the .gs file in Apps Script.
- Read the rest of this page to figure out how it works.
How it Works
In the Finance Tracker workbook, there are several different sheets. The general purpose of each are as follows,
- Home: contains frequently needed information and a way to add new information.
- Parameters: a sort-of "variable" list. It contains important information that is relatively static but can be changed due to individual circumstances.
- Expenses: contains a list of expenses.
- Income: contains a list of income sources and their "destination" (my word for what kind of use they will have).
- Analysis: contains information that is less frequently needed, but good to know.
- Historic - Summary: contains a summary of old data.
- Historic - Expenses: archived data for previous years' expenses.
- Historic - Income: archived data for previous years' income.
Home
The home sheet consists of four different sections.
- Quick Info: the quick info section contains some information that I like to have quick access to. For me, that is how much spendable money I have and how much I've spent in the last month. If you would like to add more information here by adding columns, make sure you change "expenseRow" and "incomeRow" in globalConstants() in financeScripts.gs accordingly.
- Add Expense: the add expense section is how you add new expenses. Just fill in each column and click the add expense button. This row is the "expenseRow" in globalConstants().
- Add Income: the add income section is how you add new expenses. Just fill in each column and click the add income button. This row is the "incomeRow" in globalConstants().
- If you choose profile "Custom", you need to fill in column "Destination", which needs to be a comma-separated list of the form "Destination1,Percentage1,Destination2,Percentage2", etc., where the percentages add up to 100%.
- If you choose a pre-built profile, leave "Destination" blank.
- Parameters: the parameters section is a reminder of what categories, subcategories, and saving profiles you have (something I frequently forgot in the last iteration). There is no functional purpose of this section, it is purely for reminding me of the options.
If you want to change the columns of the "Add X" sections, please read the code or email me :)
Parameters
The parameters sheet consists of three different sections.
- Update Category: the update category section lets you change an expense categories name. For example, if I had the category "Hobby" and I wanted to change it to "Hobbies", I can just input it here instead of manually going through the data sheet.
- Update Subcategory: same as update category, but for subcategories. Here, you can both change the name of the subcategory and change what category it is categorized under.
- Parameters: this is where all of the variables for this tracker are stored. Note that the Savings Profile location is used by the scripts, so if you want to change its location you have to make the corresponding change in the script getDestinationList(profile) in financeScripts.gs.
Expenses
The expenses sheet is a simple list of expenses. The ordering of the columns is important, you may have to make a large amount of changes if you want to re-order them.
Income
The income sheet is a simple list of income sources. The ordering of the columns is important, you may have to make a large amount of changes if you want to re-order them.
Analysis
The analysis sheet contains a more detailed breakdown of the data. Almost everything here can be changed easily, but here is what I chose.
- Savings section: gives a quick breakdown of how much money I have saved for each purpose.
- MMT spending breakdown: lists out the moving-month-total of each subcategory.
- Food pie chart: a breakdown of how much money I've spent on food in different subcategories in the last month, which is used to ensure I don't spend too much money on restaurants.
- Hobby bar chart: a breakdown of how much money I've spent on my hobbies in the last month, which is used to ensure I don't spend too much on them :)
Historic - Summary
Contains a simple summary of historic data. Essentially, it summarizes each previous year's expenses and savings so that they can be used in the analysis sheet.
Historic - Expenses
Like the expenses sheet, but for all previous years' data.
Historic - Income
LIke the income sheet, but for all previous years' data.