Financial literacy is extremely important, yet many of us may not fully understand how insurance, loans, or the stock market work. This issue, as well as BlackRock's challenge, inspired us to create a website to help people better understand and plan their finances. We wanted to be able to provide clean, accurate visualizations for financial topics.
What it does
FinWhiz is a website that allows users to see graphical data of financial topics, including stocks, insurance, and loans. In the stocks section, users can see visualizations of Monte Carlo simulations on their choice of stock and time period. This tool helps users better understand stock trends and make better decisions. Additionally, users can use the interactive loan graph to visualize loan payments with different loan options. The insurance page allows users to compare different insurance plans from a large dataset and visually see how the each insurance plan differs from each other.
How we built it
For the charts and graphs, we used Wolfram Alpha's API and cloud services. For the stock price graphs, we created instant APIs as mathematical models stored in the cloud, which compute and return a graph based on API requests made by our site. We also created interactive charts in Wolfram Alpha to embed in our site, allowing users to adjust the data and make it more personalized.
Challenges we ran into
Neither of us had detailed knowledge about stocks or loans, so we needed to perform a lot of research beforehand to be able to deliver accurate calculations and visualizations. Moreover, neither of us worked had worked with datasets and creating data visualizations and predictions.
One of the main challenges we had was learning how to use Wolfram Alpha, since we had never used it before. Most of our team began programming with object-oriented programming, and Wolfram Programming is rule-based, so there were difficulties in figuring out how to solve problems in the language. This included learning how to create instant APIs as mathematical models stored in the cloud to display custom charts from data sent in API requests, as well as interactive charts to embed in the website. When trying to create an instant API for the stock price graphs, we had some difficulty figuring out how to send a variable array of data through the API request and how to get Wolfram Alpha to properly parse the data. Since we couldn't find examples of using Interpreter objects in APIFunction, it took several tries for us to finally create an instant API that would parse and graph the list of data correctly.
Another challenge we had was determining how to best make predictions about stock market trends without providing misleading information. We decided on a Monte Carlo simulation because it can generate probabilities of different outcomes. Neither of us had experience with Monte Carlo simulations, so implementing the simulation with a custom Wolfram Alpha API came with a steep learning curve that we were eventually able to overcome.
The initial dataset for the insurance filter was large and unruly to sift through, so it took time to whittle down parts of it so that Wolfram could handle it without it taking too much time. Then came figuring out how to parse a data set where each row had over 150 columns and reorganizing it in a form that could be plotted on a line plot. After lots of troubleshooting and Googling, we were able to create graphs to show different health insurance plans based on some pre-determined factors.
Accomplishments that we're proud of
We're proud of learning how to use Wolfram Alpha's functions and APIs for the first time. We're also proud of learning more about personal finance as we performed research for our project.
What we learned
We gained more experience working with APIs and parsing and manipulating data. In particular, we learned how to use Wolfram Alpha and how to generate custom Wolfram APIs to perform calculations and display graphs.
What's next for FinWhiz
- Implement finance news API to provide relevant news articles that supplement stock trends.
- Focus more on the backend and allow users to create accounts to save their data.
- Web scrape for data or obtain data from banks so that users can also choose from a selection of real loan options instead of entering data themselves.
- Make the charts even more interactive (hover to see details, etc.). -Add more customization to the insurance filter. -Expand to other aspects of personal finance such as student loans and taxes.
- Add worldwide conventions and data (e.g. insurance section currently focused on insurance plans in the U.S.).