moneyCalc

Retirement planning tool with individual financial calculators

TypeScriptNext.jsNestTailwindCSS
Live Site
project screenshot

Problem

FIRE (Financial Independence, Retire Early) is a personal finance movement pursued by a growing number of people worldwide. It is characterised by lifestyles which allow for the maximum amount of income to be directed towards savings, and utilisation of investments in order to build a portfolio which will allow for all lifestyle expenses to be funded by passive income and thus an early retirement.

At the present the main method of planning for FIRE is using spreadsheets, and several individuals sell pre-formatted spreadsheets for this purpose. I wanted to build a web based tool which would allow people to plan for their retirement without having to manually calculate factors like returns on investments, loan interest and tax expenditure.

Solution

moneyCalc provides users with a straight forward method of planning for their future. Setup is simple, they just need to create an account to get started. It provides a simple to use UI where their incomes, investments, loans, pensions and expenses can be added, and personal details such as target retirement age and tax options can be set.

All financial entries are run through custom built calculation functions to provide forecasts on their net worth for selectable time ranges, as well as breakdowns of the status of each entry. This allows for elements such as overpaying on loans, or salary sacrifice to be explored in order to help users judge the most valuable uses for their money and see how they might factor in to when they will be able to retire.

Multiple contributors can be added to allow for couples with shared finances to also get an accurate representation of their financial potential. Each contributors entries and long term forecasts can be viewed in individual breakdowns as well as being displayed as a whole for a complete household overview.

The applications surplus income functionality allows for unused post-tax and post-expenditure income to be directed to overpaying loans or making extra contributions to their investment portfolio. Once percentage allocations are set for each, the choice of priority of overpayments by loan and portion of contributions by investment are easily made in a simple UI.

Architecture

  • Frontend: Nextjs (state management, UI)
  • Backend: Nestjs REST API
  • Auth: JWT-based authentication using Next Auth
  • Database: PostgreSQL using Neon Serverless

Standout Features

Live rates for:

Enabled by using custom parsing functions to extract data from the Office for National Statistics website.

15+ Purpose built calculation functions spanning 4500+ lines covering aspects such as:

Security implementations:

Key Challenges

What I Learned

This project has provided opportunity to become more comfortable in the handling of large bodies of data in databases and in the client browser. I have learnt how to better build data structures and enable the passing of key information through the architecture of a complicated application.

I have gained vast experience in building mathematical calculation functions to turn variables into important data to present to the user in a format that is easily understandable.

This was my first time building a full-stack application utilising a Node.js driven backend using Nest framework. I have gained a solid insight into the development of route controllers and how powerful they can be when well configured.

Next Steps

This is a project which I am still actively maintaining and expanding upon.

Planned future features include: