Humble financial management beginnings as a couple

When my partner and I took things to the next level in our relationship, we quickly realized that if we wanted to achieve our long-term goals, we needed a clearer picture of where our money was going each month.

Although we were financially stable, we both felt like we were spending too much on things we didn’t need—my growing video game library, our love of dining at great restaurants. This lifestyle wasn't sustainable if we wanted to stay on track with our bigger plans, like buying a house or investing for the future.

Tracking our spending meant embracing full transparency—something that wasn't easy for either of us, but was necessary to get a real handle on our financial behaviors. We knew we had to find an app that could cater to our needs, but there were two non-negotiables:

  1. No bank connections - we valued our privacy and didn’t trust third-party apps with direct access to our accounts.
  2. Easy to use - the app had to be simple and low-effort, something we could manage despite our natural tendency to procrastinate about money.

It quickly became clear that no existing app fit our needs. That’s when we realized we needed more control over how we tracked our finances as a couple. And so, before TackWallet, we began our joint financial journey using Google Sheets, the QUERY function, and CSVs downloaded from our banking and credit card portals.

Why we took the DIY route for financial management

We decided to build our own Google Sheets solution because we did not want to connect all of our financial accounts to a third party app. As someone familiar with data systems and architecture, the idea of "single point of failure" was something that I was wary of—linking all our financial acocunts to one app felt like exactly that. A single vulnerability or malicious actor could compromise everything we had worked hard for.

This concern was one of the biggest reasons that drove me to hack a custom Google Sheets financial budgeting worksheet into existence. In addition, my indiehacker mentality pushed me to think I knew enough of data ETL and transformation to build a low-maintenance tool that would meet our long-term needs down the road.

Key considerations for building our DIY personal finance tracker

Because we were picky and had very specific needs, and essentially did not want to use existing solutions, there were a few things that I had to consider in building this DIY couple budgeting "app".

As a developer

From a development point-of-view, the following elements were essential:

  • Simple data entry and account setup
    • Adding data had to be as easy as copy-pasting.
    • Adding new financial accounts had to be straightforward.
  • Low-maintenance categorization
    • Updating categories and expense types should, at most, be as simple as selecting values from a dropdown
  • Leverages familiar tech stack
    • Data transformation should be straightforward and clear. It should not have to rely on languages that I was not used to. This eliminated scripting through Google Sheets App Script. No macros either.

As an end user

I also consulted my partner to ensure the system was viable for both of us. Here key requirements were:

  • Quick insights that answered these questions: 
    • How much money was flowing in and out of our accounts on a monthly basis? This included everything: income, expenses, bank transfers, etc.
    • How much of the expenses were fixed expenses and how much were variable?
    • Which expense categories were eating into our income?
    • How much is our total on-hand cash in our bank accounts?
    • Do we have enough to cover the capital needed to buy a house worth $X?
  • Mobile-friendly dashboard
    • The dashboard should be easily viewable thru our mobile browsers. That meant a vertical dashboard.
  • Low-maintenance
    • Catching up on finances after a period of neglect shouldn’t take more than 30 minutes.

Scope & Requirements

Because the focus was ease of use and staying on track with the habit of budgeting as a couple, I needed to make sure the process was simple and repeatable:

  1. Data Collection - Download our respective transactions from our financial platforms
  2. Data input - Copy paste the data into their respective account sheets
  3. Categorize transaction - Afterwards, select the categories and expense types without having to change any formula and/or reference
  4. And that should essentially be it!

Tools

  • Google Sheets
  • QUERY function - This was the key to everything. I was very proficient with SQL on generally any platform, so I thought it would be equally as easy. I was able to make it work, but not without much research and reading of documentation.

Process

Going the DIY route was an eye-opener. It showed me that there were a lot of things I needed to take into account to make the effort of using this minimal and the end product to be viable.

Transactions & expenses

  • For example, we had to take an inventory of all our transactions and understand the nature of our expenses.
  • In order to properly reflect the flow of cash, all of the transactions should be included. This meant having to handle inter-bank transfers, credit card payments (which were essentially double counts), miscellaneous transactions.
  • If this solution was going to be successful and usable, full transparency of all my accounts was going to be needed. This was the only way that the numbers will balance out, enough to properly reflect the actual total joint balance, the attainment of goals, and our true savings rate.

QUERY (SQL?)

This was weird! Many of my SQL techniques did not translate properly to the QUERY function. The biggest takeaway in learning QUERY was that all the references were the column names. There were a lot of limitations, which led to the query not being as dynamic and easy to update when adding new accounts.

Combining all accounts into one "All Transactions" sheet

I still had to calculate the word version of month using a VLOOKUP

=unique({QUERY(checking1!A:K, 
"SELECT 'checking1', B, YEAR(D), MONTH(D)+1, D, E, G, I, J, K 
WHERE B <> '' label 'checking1' 'user', B 'source', YEAR(D) 'year', MONTH(D)+1 'month_num'"
,1);
QUERY(savings1!A:K,
"SELECT 'savings1', B, YEAR(D), MONTH(D)+1, D, E, G, I, J, K 
WHERE B <> '' label 'savings1' 'user', B 'source', YEAR(D) 'year', MONTH(D)+1 'month_num'"
,1);
QUERY(creditcard1!A:H,
"SELECT 'creditcard1', 'Credit Card', YEAR(A), MONTH(A)+1, A, C, (D * -1), F, G, H 
WHERE C <> '' and C <> 'INTERNET PAYMENT - THANK YOU' label 'creditcard1' 'user', 'Credit Card' 'source', (D * -1) 'amount', YEAR(A) 'year', MONTH(A)+1 'month_num'"
,1);
QUERY(checking2!A:H,
"SELECT 'checking2', 'Checking', YEAR(B), MONTH(B)+1, B, C, E, F, G, H  
WHERE C <> '' and E > 0 label 'checking2' 'user', 'Checking' 'source', E 'amount', YEAR(B) 'year', MONTH(B)+1 'month_num'"
,1);
...
QUERY(savingsX!A:H,
"SELECT 'savingsX', 'Savings', YEAR(A), MONTH(A)+1, A, C, D, F, G, H  
WHERE C <> '' and D > 0 label 'savingsX' 'user', 'Savings' 'source', D 'amount', YEAR(A) 'year', MONTH(A)+1 'month_num'"
,1)
})

Querying "All Transactions to get insights tables

  • Income vs Expenses Flow Table
={QUERY(all_transactions!A:K, 
"SELECT C, D, K, SUM(G) 
WHERE J = 'income' or J = 'expenses' AND C is not null 
GROUP BY C,D,K PIVOT J"), 
QUERY(all_transactions!A:K, "
SELECT SUM(G) 
WHERE J = 'income' or J = 'expenses' AND C is not null 
GROUP BY C,D,K LABEL SUM(G) 'net_flow'")}

# final columns: YEAR, MONTH_NUM, MONTH, EXPENSES, INCOME, NET_FLOW
  • Expenses broken down into Fixed and Variable
    • I still had to calculate % Fixed and % Variable using excel functions
=QUERY(all_transactions!A:K, 
"SELECT C,D,K, SUM(G) 
WHERE I <> 'not_expense' AND C is not null 
GROUP BY C,D,K PIVOT I")

# final columns: YEAR, MONTH_NUM, MONTH, FIXED, VARIABLE
  • Expenses broken down into Sub Categories
=QUERY(all_transactions!A:K, 
"SELECT C,D,K, SUM(G) 
WHERE I <> 'not_expense' AND C is not null 
GROUP BY C,D,K PIVOT H")


# final columns: YEAR, MONTH_NUM, MONTH, BUSINESS, COMMUTE,..., TRAVEL, UTILITIES

Due to said limitations, I still had to create some of the columns using excel functions. This meant having to drag down the formula to the most updated row.

Three month post-mortem of our DIY financial tracker

Our DIY couples financial tracker using Google sheets worked surprisingly well for a while.

  • It allowed us to have full control over our data and privacy. Being able to decrease the friction of sticking to a routine without relying on third-party apps or bank connections was more than enough to convince us that this was the route to take.
  • It was simple, but was tailored to our specific needs and actual spending behavior.
  • Actually seeing every cent flowing in and out of our bank and credit card accounts and into our savins/current balance helped us understand our spending habits without the need for a big paradigm shift.

However, as time went on, the limitations of using Google Sheets became increasingly glaring.

  • Although copying and pasting transactions was initially straightforward, we found ourselves procrastinating more frequently because of the repetitive nature of the task. In our minds, it had to be just one step: uploading the data.
  • As someone who designs data pipelines, the scalability issues of the current solution was something that was stressing me out. Adding new accounts required editing the QUERY function that combined the individual financial account sheets.

These limitations made it clear that we needed a more robust, scalable solution, without increasing the complexity of using the system.

Evolution from DIY to TackWallet

That’s when the idea of TackWallet was born. It maintained the core values of security, simplicity, and control, but addressed the shortcomings of our Google Sheets approach by offering a more streamlined experience with built-in automation, easier data handling, and more powerful insights.

With TackWallet, the idea of "one-and-done" is a key principle. Upload your CSV and TackWallet does the rest.

TackWallet has transformed the way we approach joint personal finance. It bridges the gap between full control and ease of use, which allowed us to stay on top of our finances without much of the hassle. We did not have to worry about the overhead of creating and maintaining a solution anymore. No breaking formulas, manual data entry, or feeling overwhelmed by the sheer volume of transactions.

Ultimately, TackWallet was the solution we needed to not only meet our immediate financial goals but also give us peace of mind as we plan for our future. What started as a DIY project to meet our needs evolved into a tool that helps us—and hopefully, many others—simplify financial planning for couples while staying in control of our data.

Ditch the spreadsheets and join us on TackWallet!

Managing finances as a couple doesn’t have to be complicated. Say goodbye to manual tracking and let TackWallet handle the heavy lifting. With TackWallet, you can easily track your joint expenses, stay on top of your financial goals, and keep things simple—all while maintaining control and transparency. Join the beta today and start your journey to stress-free couple budgeting today!

Start your free TackWallet trial today!

Start gaining a clear understanding of your finances—together with your partner.

Start our trial