Why
A life strategy growing in popularity is to retire early and spend time doing what you love, while you still physically can. In order to do this, you need to have invested your money wisely enough to support you throughout life. There are many different options for funds to invest in, and as someone with little financial background, it can be overwhelming and hard to know what choices to make. As a group of students, we wanted a way to see the consequences our decisions have on our future.
What it does
Fintrent is a website that allows users to see how different investment choices early on in life can affect them decades into the future. It allows a user to model different investment strategies, such as investing larger proportions of their salary or choosing between different funds to put their money in. From here, they can start seeing how investing wisely can help them reach their financial goals later on. Additionally, expenses such as children or buying a house can be modelled, and the user can see how different strategies may allow them to afford these things, as well as being aware of the risk associated with that strategy.
How we built it
The financial model is written in python and uses iterative methods to update a user's financial position in a given fund over time. Analysing previous data of real funds, we were able to model the growth of the fund over time, as well as incorporating historical risk. This gives the user an upper and lower bound to their investment value over time, allowing different funds to be compared. User investment changed based off real salary progression data and we also modelled tax payments on profit. Overall, the model predicted multiple funds' growth in a portfolio simultaneously and any changes due to lifestyles and expenses.
Django was used as a framework to run the webapp. Models were defined for each user and each fund we analysed. The pages for the website are loaded and then the data can be updated asynchronously by accessing the API we created along with the standard webpage responses.
Challenges we ran into
Being able to scrape reliable fund and salary data proved challenging. Additionally, using this data to extrapolate a model and account for volatility in a fund was difficult. It required simulation and advanced statistical analysis to show the user how their investment's variance may increase over time.
Ensuring the data could be updated dynamically was a difficulty we hadn't anticipated. Integrating the financial models with the backend and database required rewriting significant portions of the code.
Accomplishments that we're proud of
We were able to use iterative simulation to model how variance of the a fund's growth rate would change over time. Additionally, we could give an understandable metric to the user of risk by using simulations to say how likely a fund was to lose them money in the next 10 years. We are particularly proud of the visualisations we produced of our data, which are intuitive and informative.
What we learned
Our results shocked us. We realised the impact that investing consistently throughout your life could have on allowing you to become independent and do the things you love earlier on. From a project perspective, we realised the difficulty in integrating front and back-end development, but we are incredibly proud of the way we were able to deliver our website in the end. Furthermore, with the restrictions of COVID-19, we realised how important close communication between team members was in maintaining morale as well as keeping the project on track.
What's next for FinTrent
Overall, we want to not only allow a user to plan their future, but also suggest to them the optimal funds and investment strategies to allow them to reach their goals in the safest way possible. This would likely implement machine learning to make the right decisions. If we had more time, we would love to make the website more dynamic to the user, where they could interactively compare funds. Additionally, we want to improve the way expenses are selected, making the process more bespoke to the user. Finally, we would want to improve the fund modelling process to allow us to model many more funds as well as individual stocks as well.
Log in or sign up for Devpost to join the conversation.