Personal Finance Tracker


I’m a newbie to Coda creating and am wondering how to create a doc for personal finance tracking.

I want to be able to set up:

  • Individual tables where I can paste the data from my credit cards, saving accounts, and chequing accounts all separately

  • Make a table that brings all that data together where I’m able to sort things into spending categories

  • Make a table that organizes that data into a simpler table like below

The table below is an example of what I was using before. Each box brings in data from the personal finance table and then checks if it is within the right date range, then checks that it’s within the right category and adds all that info together.

Any help is appreciated! Thank you :slight_smile:


Hi @Erin_P :slight_smile: welcome to coda! :grin:

in your case i will set up the doc with a dashboard (often the first section) and then a DB section, some best practices about doc organization including separating “for user” sections and “DB” sections can be found in a must-read post here:

Let’s start with the DB section, there you’ll need a table with all your “pasted” data from your credit card, with a column added, that column will contain a “Select list” with all the type of credit card that you need to categorize.

Then, in the dashboard section you will put one view of the db table, filtered according to an interactive selector that you can add above the view of the table, that will filter all your data based on the content of that last column you’ve added before

If you can share a sample of your doc i can create for you a live version of that :slight_smile:

Edit: with a sample of your doc i mean a table (or more) with all the type of data that you want to view separately.
the trick here is to use just one big table to store all your data, adding all the columns that are needed for your particular situation, and then filter those in another section, maybe with interactive controls, i could build a sample based on the screenshot you have attached, but i think that it is just the simpler table you mention here

so i need a complete sample :slight_smile:

Hey Mario!

Thanks for this! Looking over these best practices!

Is there a way I could have multiple database sections with each of my credit cards separated? And then have a different table that combines that data together?
I have a couple different cards with different .csv formatting and table descriptions that I’d like to keep separate

I’d like to have a table like the “2018 - Balance” table I have here so that I can make each column look at the different category, then add together my multiple data bases of credit card payments so I can figure out how much in each category I spend per month.

Hi @Erin_P :slight_smile:

Your Sheets made more clear the type of data that you have :slight_smile:
Now i’ve understood your concern about “one big database” for all the credit card, this is because your data are .csv formatted in different ways!
Ok! So, your idea of having 2 or more different tables is the easiest way to import your data, then, to see those, you need a little trick
As now on coda, if you want you can filter and “manipulate” the data in one table as you want (and this will be perfect for your case if you had one single DB)
The pathway of your data in this case will be:
2 Sections, one called DB (that contain the raw table with all your data) and a second one that is “Dashboard” (where the same table is viewed [i mean, a view of that “DB” original table]) that contain your filtered data according to a category selector.

So, this is the base, now, we have to apply the same concept to more tables, and this is tricky.

To obtain that we must create a Second (third or more, when i say two, second ecc i’m refereeing to 2 credit card, if you have 3,4 or ecc just apply the same concept) table that “Aggregate” all the different tables you have.

This table will have “TOT”/“X” (numbers of different credit cards) columns named “Name of the transaction - visa” (or whatever), this column will be filled with rows from his own table, according to your selected category, thanks to a filter.

Let’s say that we have a column, named “Name of the transaction” also in the original table (or tables)
In this row in the Raw DB you have (for every tables for every credit card) a name of the transaction (or an id or something unique), if you want to put those rows into the “Summary - Dashboard” tables made before, you can’t just use [creditcardvisa].nameoftransaction because you have to mix more than one tables in one column…

You have to aggregate all the “Name of transaction” columns for every credit card in a “name summary column” that will act as a link to the original table, summarizing the other column in just one.
Then, in another column, you can use
to recover your useful data from your Other tables.
(if different tables that are configured in the same ways, like date columns are all called “Date” between the different credit card tables, it’s not for sure that they will work, i’ll tell you more, they will 95% not work right out of the box)

I’m pretty sure that it’s easier if you are a newbie to create a single table called “Transaction DB”, using it as a single source of data, if you do not want to use this approach because it’s messy to convert your credit card data into a single universal layout, remember that before or after you have to compare those different datas, so, or when you are importing those or later when computing those, you have to do the “stupid” job of making those comparable.

It’s harder to understand written concept instead of a live doc, if you could provide me some more specified datas (because we are talking about more different table, one for every credit card, but you gave me one single table to contain all of those…) i can create a basic sample that show this concept.

Do not stop trying! Coda have to be used to be understood really! :slight_smile:

Hey Mario!

Thanks for your help on this! I’ve got things working now! :slight_smile:

1 Like

@Erin_P Nice to hear!
Keep us updated on the doc progress :slight_smile: