What gets measured gets improved.
For a long time, I had trouble finding a financial tracking tool that suited my needs.
Networth = Assets – Liabilities
Most tools out there for Indian users normally have expertise in one of the items present on the right-hand side of the above equation.
There are asset trackers like Kuvera, Groww and Zerodha which are good at visualizing Dematerialized assets like Mutual funds, Stocks, Digital Gold, and others. There are expense trackers like Walnut, UPI apps and Bank apps which can track your expenses.
But there are a few apps that can do both. So, I started building a solution to solve this tracking problem.
And I present you to
We will go over the technical details in a different post, but after many iterations. Right now it is a Go backend and SolidJS frontend.
It uses accounting practices to create accounts and transfer money from one account to another. With this simple setup, I can register all kinds of transactions which mass-market apps generally will not allow.
The whole app is divided into several sections
The most important metric to track in any finance tracker should be
What's your net worth. And that is the first thing Trackledger shows me when I log in.
The next block tells
expenses incurred this month including necessary expenses in number and percentage formats.
Many of you would have multiple bank accounts and it can be time-consuming to check
cumulative bank balance so that is what I show in the next block. You will not realize how important it is to know
your savings rate for that month?. So that is what the next tile is about in the first row.
The second row has two sections. The first block shows
average expense done per day for last 90 days (about 3 months) which is used to calculate
runway for just bank balance. And show the
runway if I liquidate all assets right away. Expenses over the last quarter really show what are my spending patterns and they normally shoot up during trips.
The second section shows a simple chart of
Cashflows over the last 6 months. It shows Income (Blue bar) vs Expenses (Green Line) vs Investments (Orange line).
This self-explanatory row shows the
net worth over time in the first graph and the
invested amount versus the current value of your portfolio over time in the second graph.
This row gives a general view of
expenses incurred in the last 30 days in bubble format. This chart shows which were the biggest expenses in one glance. The same case goes to the next chart which shows
expenses made category-wise in this month.
The fifth row is simple. The first block shows
current asset allocation in pie chart format. The second one shows
XIRR of each asset I invest in. Both charts do not change a lot on a daily basis so looking at these charts quarterly makes more sense.
Sometimes I want to see a
detailed daily transaction list of all things I did today so that is what the first table is for. The second table shows
current balance of all my assets and liabilities account.
What we just saw was the main page I see when I open the app. But you would be wondering how do I enter data?? How do I record transactions?? All of this is just stored in a plain text file which I can read. I integrated Ace editor in one tab where I can edit the main file and save changes. After which all the data for the home page is recalculated.
In the above picture, you can see that there are entities, and we are assigning an amount to each entity. I am using Ledger-cli for writing and parsing these transactions.
2021/12/01 Dio Air ; necessary Expenses:Vehicle 10 INR Assets:Bank:SBI
So, in this example, I am saying that on 1st Dec 2021, I transferred 10 Rs from my SBI bank Account to a Vehicle Expense account which I tagged as a necessary expense with the description as
The same grammar can be used to show expenses done on a Credit card.
2021/12/01 Dio Air ; necessary Expenses:Vehicle 10 INR Liabilities:CreditCard:AmazonICICI
I started writing this file in Dec 2021 and the number of insights I get looking at the dashboard right now after 2 years is just mind-blowing.
Sometimes, I want to see all transactions done in one specific account in some period, so I created a table that shows that exact thing.
So in the above case, I can see how much money I spent on petrol for March 2023 and I can also see the total amount I have spent till now in the Balance column. I can do the same thing for Asset accounts, Loan accounts, Expenses accounts or any other account present in my file.
Now there are times when I want multiple transactions in a specific period from different accounts. While travelling, I can spend money on petrol, hotel, vehicle, and food so showing a combined report for all accounts was not possible on the above register page. So, I created a
tagged transaction register which shows total transactions and amount spent in a specific tag. Tags are generally about the trips I took.
So, this table shows how much I spent on one amusement park trip I did.
Till now I just highlighted all the UI parts of the app. But there are many advantages of using the accounting format for storing transactions.
Most apps count your credit card transactions twice as expense, once while doing the actual transactions and another time while paying the bill. These two transactions are different in Trackledger. In the first one, I am moving money from a credit card to an expense account so this one is tagged as an expense. But the second transaction is just a simple money transfer from a bank account to a credit card account.
Every day around noon, my cron job fetches new values for the assets I have invested in. So
all my mutual funds, stocks current value updates on a daily basisand I can see detailed changes in asset value if I want to.
Money loaned out is not counted as an expense. Any deduction done in bank accounts or credit cards is directly tagged as an expense or at least as cash flow out in most apps. But in my case, money loaned out is sent to a different account which does not affect the expenses account.
Every week, I check if the balances shown in trackledger are equal to my real balance for that specific account is. During this small exercise, sometimes I find out that my bank balance is not matching. Then after some digging, I find out that
I got interest on my bank balancewhich I would have not cared about if I was not tracking :P
track cashback given by credit cardsjust because of how accounting transactions are written. The below transaction says that clear out all balance of my credit card and deduct 2015 Rs from my bank account and the remaining amount left would be sent to cashback account.
2022/09/14 Credit card Bill Assets:Bank:ICICI -2015 INR Equity:Cashback Liabilities:CreditCard:FlipkartAxis = 0 INR
I developed a small
iOS widget to check current net worth and today's change in net worth.
I also created an
iOS shortcut to enter data from my phonebut it is too slow compared to writing directly into the text file.
Features I would want
Even though, I am happy with my current setup. I sometimes feel like I want
Assets tagging to a specific goal. Currently, I do not have any concept of goals present in Trackledger. But sometimes, I want to know how close I am to completing my financial goals.
- Create a
future trajectory of net worthfrom the current trendline.
Compare my portfolio return vs index portfolio's return.
These are nice features to have, but they do not mean anything to me in the day-to-day timeline. Just like the XIRR graph does not mean anything to me in short timelines. So I dont know when will I implement them.
Overall, just spending 5 minutes on a daily basis and recording my transactions in a file turned out to be an awesome exercise.
You can check out the app here with credentials as
root. It is just a demo account with the home page accessible as I am too lazy to create fake data for other pages.
If you have any other questions or want a deeper dive into the app, Do contact me. I will be happy to have a chat. Ciao!!!