Inspiration

More and more Singaporeans are using digital financial tools to monitor and track their savings, investments and budgets to plan their financial goals. However, most are still unable to project their longer-term needs for retirement, resulting in 80% of Singaporeans underestimating the amount needed for retirement and regretting not planning for it sooner.

Goals

It aims to avoid the pitfall of being unable to comfortably retire, by ensuring that users do not save too little too late. With the help of machine learning, it saves our users the trouble to guess at their future expenses, which are impossible to guesstimate accurately and often end up wildly inaccurate, resulting in a flawed retirement plan.

What it does

This project uses machine learning and pattern recognition to predict the future spendings of users based on their spending habits. It will notify users when their projected savings is insufficient for their target retirement age, and suggest a plan for them to help them achieve their goal. On the dashboard they will also be able to see a graph of their projected savings until retirement.

Challenges faced

  • A large portion of the effectiveness of our app was dependent on the front end design and data visualization to better allow our users to be able to visualize their financial situation, so we prioritized our website development over our API development. Unfortunately, while developing our angular site, we were not able to get the tfjs library to work, so our original javascript site was scrapped. Then heroku was not able to host the whole model on their server as part of our website, which we didn't realise the model was actually huge and not supposed to be deployed together with the site. We also tried hosting the flask app on AWS through EC2 and S3 but was met with many errors. After scrapping both a flask app and an angular app, we did not have enough time left to code an API.

  • On top of all that, it was challenging to learn tensorflow from scratch, figure out how to get tensorflow to achieve a desired input and output of the dimensions that we want for our app, and last but not least how to reduce the loss function and tune hyperparameters to be able to get our model to predict a more accurate value instead of garbage.

  • We also had difficulty finding a suitable dataset, since the data we require are rather sensitive. Hence we had to create a mock dataset to simulate real life bank transactions and savings.

  • There was also a challenge in deciding the best machine learning algorithm for our model. We tried clustering algorithms like K-Means and DBSCAN, and linear methods like single and multi variate linear regression for time series, before trying Tensorflow's Sequential model and settling for that.

What's next

  • We will need actual real world data from banks and the government for the model to predict values relevant to the real world
  • A marketplace tab for sponsors and partnering companies to be able to offer financial plans to our users
  • A rewards tab where users can receive discounts or other benefits when they hit milestones, increasing their motivation to save
  • Improved cybersecurity measures to make sure our very sensitive database will not be breached

Built With

Share this project:

Updates