Genesis of a Budgeting and Portfolio Application
After tracking goals and activities, I hit a wall with financial management. Here is why I decided to build a custom budgeting application — and how I defined its requirements.
21 June 2026
If you have read my previous articles, you know I have spoken extensively about my activities tracker application. I use this application both at work and in my personal life. See the image below.
Press enter or click to view image in full size

I had a financial goal that I broke down quarterly, but entering this every time into the activity tracker application can be too much. The problem was tracking which card I used to purchase a particular item, as I have many cards.
The other problems I faced were generating a monthly budget, being clear on my spending, and answering questions such as how much I pay in parking fees or, based on my spending, what I deduce about my spending habits.
I set a financial goal of increasing my savings by 4500 GBP in 3 months. I am highly motivated by passages such as "Wealth gained hastily will dwindle, but whoever gathers little by little will increase it" (Proverbs 13:11, Bible). If I cannot reach my financial goals, I should at least explain or find the reasons why I can’t achieve them.
Actions or habits that affect my financial goal should be isolated, evaluated, and judged on whether to be kept or discarded.
This underlying problem is also seen in my investments. I have several investments in stocks. I often buy blindly, and I don’t track what strategy lies behind a specific stock purchase. The activity tracker application helps me keep a record but does not go in-depth to see what strategy lies behind a particular investment or analysis.
The other problem is that I have several investments across my bank accounts, and tracking which strategy led me to a result becomes difficult. Generally, I want to capture how my money goes to various projects I keep track of. Some projects are wasteful, and I don’t need to spend money on them.
You may wonder why I don’t just use online applications to help me solve the problems I have listed above. First, I want to understand my issues in depth by fleshing out requirements that I see fit using the application. Secondly, I use these to improve my writing and coding skills.
Just as the activity tracker application has helped me better understand my goals and how to realize most of them, the budget and portfolio application will help me understand my spending habits, grasp my investment strategy, and hopefully help me achieve my financial goals by improving my financial activities.
Before diving deeper into coding, I want to list some requirements the application must achieve. The application will be completed in two phases:
Budget application
Portfolio application
This article only focuses on the budget application.
The Budget application
A budget is a financial plan that outlines expected income and expenditures over a specified time. It is used to track how you allocate your earned funds to spending and savings.
An example of a budget is shown below:
Press enter or click to view image in full size

I often borrow jargon from Computer Science (CS), and for this particular case, a budget is a tree whose root is the budget itself, broken down into two branches: expenses and incomes. Each of these branches is further broken down into multiple branches, which are categories such as Food for spending and investment in incomes. And the resolution is up to you. Hence, you end up having something like the image below:
Press enter or click to view image in full size

Everything on the income branch increases your cash (positive), and everything on the expenses branch decreases your cash (negative). The balance is how much you save, given the budget period. Specifically:
balance = income — expenses
With this description in mind, you can see how he, who saves little by little, makes it grow (as the proverbs stated). If the balance is negative month to month, the savings rate is negative, and we will not be able to achieve our financial goals. The goal of a budget is then to create a positive balance given a particular period.
There are many aspects of a budget, but one that I would like to focus on the most is performance evaluation. I want to compare different budgeting systems to my actual expenses and answer questions such as:
Which budgeting system suits my current financial goal?
Given my current spending, what will be a suitable financial goal?
A budgeting system is a way to structure expenses and savings based on some principles. These principles can be as simple as not eating out but eating at home. So this will imply some pruning on the food branch, whether you categorize dining out/restaurant as a subcategory in the food category.
For example, take the zero-based budgeting system, which emphasizes justifying each expense. It simply relies on one principle: all spending must be justified, and the balance has to equal zero. So, if you make 4000 USD a month, all dollars are accounted for, as the table below shows. The balance has to be equal to zero, and the application must be able to track all of that.
Press enter or click to view image in full size

The application needs to track expenses and incomes to allow evaluation according to zero-based budgeting or another budgeting system.
Most banks, if not all, have a way to download statements, with each statement stating whether it was an expense or an income. The budget application should be able to save these for future reference or parse the CSV files from bank accounts to structure them based on the budgeting system.
A budgeting system is just one for structuring expenses and income according to an abstract category guided by principles; for example, if a principle states that you should not eat out but rather eat at home, then the budget will reflect that in your planning.
I want the application to apply these principles to my spending to show how much money I could have saved.
This is an example of how the budgeting application should work:
Given a list of expenses and incomes.
Categorize them.
Apply the zero-based budgeting system.
Apply some money-saving tips (budget principles) or a budgeting system.
Generate a new budget according to some budgeting principles or a system based on your previous budget.
My next article will detail how to create the budget application using test-driven development.
Thank you for reading.