DEV Community

Cover image for Tracking my Expenses
Chai Jia Xun
Chai Jia Xun

Posted on • Originally published at on

Tracking my Expenses

10 years of expense tracking

I began tracking my expenses since 2009 or so. At that time, I was given pocket money monthly, but most of it disappeared pretty much instantly. I had so many wants and buying things gave me a small dopamine hit. Insert something about capitalism here I guess. I didn’t even have a credit card yet, and here I was needing to borrow money from my parents just to be able to buy food. After getting one scolding too much, I decided to start tracking my expenses.

It began as a tedious manual entry process into the budget app on my windows mobile. Then I moved to an app called moBudget on Windows Phone 7. Then I realised it was not great to keep everything on a single phone in case it’s all lost, and also Windows Phone was pretty much dying at that point. So I searched for a cross platform cloud synced alternative, and discovered Toshl (they used to support windows phone!). I’ve been using it ever since.

Tracking my Expenses
Interesting fact: Somehow moBudget still exists on the Microsoft Store.

My current tracking system

Toshl & Splitwise

Tracking my Expenses

Toshl is a free cross platform personal finance tracking app that I really like. It’s simple and does the job well, even comes with an API. Paid features exist and I think it’s well worth the money. But even without the paid features, they have the essential functionality provided for free.

Splitwise is a free cross platform debt tracking app that keeps tabs on how much you owe your friends and vice versa. Also comes with an API. I have not seen the need to pay for this yet since the free features do everything I need it to do.

This is the system I’ve been using for the past 5 years.

  1. Before the end of each pay cycle, I’ll go through my bank statements and input all the expenses into either Toshl or Splitwise. Toshl is where all my own expenses go. Splitwise is when I need to split bills with friends. If I paid in cash, I would input it immediately so I don’t forget. (In an ideal world, I would input expenses as I spent them but procrastination.)
  2. The next thing I have to do is to copy my share of each expense from Splitwise into Toshl. This part might seem tedious, but it was necessary to do since it would not be logged in one place otherwise. This allows me to use toshl for my expenses only and splitwise to track debts to friends. It also supports balances in multiple currencies.

I would typically do these things while on the train, or during commute times so I don’t really waste too much time. To further motivate me to do this, I have a rule that I can only pay off my credit cards once I have audited my expenses. So when my credit card payments are due, I'd be forced to audit and log my expenses.


This system does not calculate the actual cash I have in my bank or my net worth, in fact it's designed to be detached from that number. This only calculates how much I spent, even if the money I spent was borrowed from a friend. It doesn’t consider lending my friends money an expense either. So if I were to pay for a $100 meal for my friend, it would just go into splitwise as something they owe me. My expense tracking would not reflect it, unless I log it as a treat in Toshl (then they wouldn’t owe it to me anymore).

The idea behind this is to get a sense of exactly how much I spend, and not to worry about other things like cashflow. This is based on the assumption of eventual consistency, meaning if I were to key everything in and settle all my debts, the numbers would match up. My bank balance never reflects the actual amount of money I have left. In fact, I typically keep most of my money in investments or savings accounts which are more tedious to access. My main bank balance typically remains in the low hundreds to keep me from spending it. Which brings me to my next point.

The reason I track everything

The main reason is making sure I feel the pain of spending money. As mentioned earlier I used to have problems controlling my spending. This was made worse with credit cards, and recently the ability to simply tap my watch to make payments. When I'm auditing all my expenditures, I remind myself again about all the money I've spent and then I lose my desire to spend more. It makes me think multiple times about new purchases and provides motivation not to buy stuff.

I also really like having data, and the ability to run an analysis on it sometime in the future. This also helps me reduce my spending because when I buy stuff I know that future-me will look at all the money I spent and judge current-me. And who wants to be judged by future-me? That guy is probably being all smug and I-told-you-so about the things that I bought and will never touch again.

This also allows me to keep my bank balance artificially low so that I don't have any excuses to spend money. I used to look at my bank balance to get an idea of how much I've spent that month. But more often than not, when I see a number that's slightly higher than usual in there, I feel compelled to spend it all on the next shiny new thing I see. Using this system detaches the actual amount I have from the money I've spent.

Lastly, it gives me some time for meditation and reflection on how much money I’ve spent.

Fully Automated Expense Tracking Does not Work

Toshl and many other finance apps provide some tier that allows you to link your bank accounts and credit cards and they’ll automatically add and categorise all your expenses for you. This might sound great at first glance, but there are so many underlying issues with it.

Not everyone uses credit cards, except maybe in America. No matter how good your automation is, it obviously wouldn’t be able to track cash purchases.

When you make a purchase on someone's behalf or if you want to split a purchase, it won't be able to categorise it properly. Also there are some transactions that I would want to split into separate entry.

I tried the automated tracking for a while, but it created additional entries and it messed up the system I was already using. In the end, because there were way too many edge cases, I ended up reverting to manual entry. In any case, the time I spent doing data entry was a pretty good time for self reflection so it wasn’t that bad.

It's not all manual labour though, I recently wrote a script to transfer data from splitwise to toshl. So at least that's one part automated away.

Some automation can work

Before this script existed, I was spending about an hour a month manually copying and auditing my transactions from splitwise and toshl. It took me about 3 years of doing this before I finally got around to automating this. Writing this script was easy, it simply required hooking up both platforms' apis. The only concern I have is that this depends on the companies to survive, and I've learnt that I can't take that for granted. But if any platform were to go down I have more important things to worry about, like migrating my data out.


I think expense tracking is an extremely important thing to do to help people manage their finances. Many banks have been building expense analysis features into their apps and websites for this reason. But unless you keep all your expenditures on cards from one bank, you'll never really have a good overview of all your expenses and can't make good spending decisions. This is still a problem that won't be solved unless a single company/bank dominates all transactions and physical cash becomes a thing of the past. That's not happening anytime soon, so this is the next best thing.

In a future post I plan on running some analyses on my expenditures over the past decade.

Top comments (0)