How to Create a Simple Personal Finance Dashboard in Obsidian

Geet Duggal
5 min readFeb 27, 2024
Photo by Carlos Muza on Unsplash

At the beginning of the year I wrote an article on how to use Obsidian in a simple but powerful way for personal finance management. All you really need is something called a ‘plain text ledger’ of transactions and Obsidian. With this, you have a powerful, private, and even mobile-friendly way to manage your personal finances.

The point is that I feel like with Obsidian I’ve been empowered in a special way to solve the problems that matter to me related to personal finance management. And I get to have fun in the process. ^

I’m happy to say that I’m finding ever more utility in adopting this approach. The article linked to above describes some of the basic principles of accounting for personal finance management and how Obsidian and a plaint text approach can be powerful for this purpose. In many ways, I think it was a very important foundation for me to lay before developing anything personally useful day-to-day.

In this article, I aim to briefly describe the pros and cons of using this method. Unlike the article above, I provide more than a screenshot of the current version of a code I use. (Note: Code is in ‘Github Gist’ format so I can update and share it easily.)

If your’e comfortable with programming, you can use the code shown below as a starting point and modify it for your needs. All you have to do is make sure you have the ‘Dataview’ plugin installed in Obsidian. After you adjust a setting to allow it to ‘Enable Inline JavaScript Queries’, simply paste this code in a ‘dataviewjs’ code block:

As I mentioned in the initial article, the code above is certainly not pretty or perfect, but it gets the job done for me. To get started, simply replace the path on the line with ‘ledgerFile’ with the path to your ledger journal file. An example ledger journal file can look something like:

The image below shows the dashboard as viewed from my phone in Obsidian. It uses the example ledger file above. I implemented the dashboard above with a few, simple features:

  • Table of balances for banks, credit cards, and expense accounts
  • Transaction histories for each account beginning at a particular ISO 8601 date (eg. name your file ‘2024–02–01 Dashboard’)
  • Projections of future balances based on expected transactions across account
  • Filters of transactions based on text matches

In the example above, you can see that the future balance in the checking account is negative. In this case, the projected negative balance is obviously due to a very large transaction associated with a remodel. The negative number in red under the ‘Future Balance’ column indicates exactly how far the account would go under (incorporating other potential transactions) without any transfers.

While this example is fairly straightforward, the dashboard really shines with more complicated projects and more transactions. For example, a real home renovation likely involves a variety of transactions across many accounts. This ‘future balance’ feature allows you to see the impact of a this variety of transactions on the future balance of potentially many accounts.

Personally, I have never had such simple and useful ‘at-a-glance’ view of money across my accounts. The fact that Obsidian has so many plugins for charts and calendars further excites me about the possibilities of other features if and when I would like to add them.

In the last few months, I have gained a lot of value from being able to monitor all my transactions across accounts. I have been able to identify spending patterns and predict how money may need to be transferred in a simple and precise way. I can even simply export reports eg. every month by using file names like that described above.

This approach isn’t perfect, though. For example, I still find manually updating transactions a bit of a chore. Adopting this approach also requires that you have some more technical knowledge of how to code. However, you can still use the code as written ‘out of the box’ even if you don’t know how to code.

To further illustrate some pros and cons, I’ll answer a few thoughtful questions by a commenter on the original article:

1. You should do a ‘how to build a personal finance system ( step-by-step) using Obsidian’ for novice like me. I suppose the ledger journal is a separate note.

Yes (hopefully this a start). And Yes.

Do you maintain the running entries in a single note throughout the year or is it for a particular period?

I use one single ledger file for all transactions (at least for the moment).

Currently I use tags to maintain expenses and incomes and have a dataview query, but the way your summarise the totals is interesting. For the level of code in your screenshot, I suppose one needs to be an expert in javascript.

Basic JavScript knowledge should suffice and I’m toying with how the ledger format could be used more seamlessly with Dataview in a way that doesn’t require JavaScript knowledge.

2. I see some icons in your phone screenshot. Do you intend to use these icons to visualise the expense and incomes too?

I use Emojis in front of file and folder names to help keep me organized but no icons for the finance dashboard itself. I actually really like the idea of using icons in a creative and useful way in the case of the finance dashboard. The system I use for personal organization and how the icons play into it is described here:

3. How do you make these many entries in the ledger in the phone. Have you created some shortcuts , it seems a lot of text needs to be typed along with numbers.

This is a very smart point and certainly one of the less glamorous aspects of using this system. I use iOS shortcuts and use the beautifully designed iA Writer app to enter transactions. It’s usually simplest and quickest if I update my transactions daily, though I can get by with weekly. A ‘philosophy’ of how I design shortcuts on my phone for this is described in this post:

Finally, though I’m fully on the ‘plain text accounting’ train for the moment, if you’re interested in more of a nicely packaged cloud-based solution, a colleague of mine recently recommended ‘Monarch’, and I find it to be quite good (though you will have to pay for it):

https://www.monarchmoney.com/

--

--

Geet Duggal

Providing simple tips on how to use tech and productivity tools to streamline your setup and workflow for maximal enjoyment and creativity.