Financial education is severely lacking among youths. According to a study by FINRA Investor Education Foundation, there is a clear trend of declining financial literacy with four in five youths failing a financial literacy quiz. This lack of financial knowledge further extends into adulthood, with 53% of adults being financially anxious.

At the same time, women possess significantly lower rates of financial literacy than men. Women are three times as likely as men to say they can’t afford to save for retirement and are three times more likely than men to quit their jobs to care for a family member. Despite this, women are still responsible for the same living expenses men pay. And since they live longer, they face additional costs, including more long-term and overall health care expenses.

All these numbers point towards a need to increase financial literacy. In order to empower users to make their own informed investment decisions, we developed FinWhiz, a data-first fintech tool that helps to cut through the noise and hype (the GameStop saga as a quintessential example) and educate users about finance.

By providing fundamental data about the company as well as real-time news sentiment information and technical analysis, explaining financial jargon and collating together vast amounts of vital information into a clear and intuitive dashboard, we hope to increase the financial literacy of every member in the community.

Our registered name embodies the spirit of FinWhiz: using technology and data to enable smarter decision making.

What it does

FinWhiz consists of five major components:

  1. An individual stock tracker that supplies real-time stock price data and fundamental analysis of the company (including metrics like the P/E ratio, market capitalization, etc with clear explanations of what the terms mean). To enable users to keep up to date with the latest information, users can also plot interactive charts to visualize candlestick charts, calculate moving averages and retrieve real-time news articles coupled with sentiment analysis to track market sentiment of the company over time.
  2. A company fundamentals comparison that compares the S&P500 companies across various metrics (such as beta, stock price, etc.) and enables users to sort these companies based on these metrics and plot them on interactive charts to decide which companies they are interested to invest in.
  3. A personalized portfolio optimizer that suggests stocks to invest in based on the user's individual risk tolerance and target returns. This is calculated by analyzing the stocks' historical data to calculate the average volatility and expected returns.
  4. A candlestick pattern detector for individual stocks that analyses a company's real-time stock data to detect candlestick patterns that may suggest either a reversal or continuation of a bullish or bearish price trend.
  5. A candlestick pattern screener that scans real-time stock data of the S&P500 companies and filters them according to the patterns exhibited.

How we built it

We used CockroachCloud, hosted with Google Cloud, to store each company's real-time stock prices, fundamental financial data (including the market capitalization, dividend yield, shares outstanding and more), news articles regarding the company and the associated sentiment (whether it is negative or positive) calculated using the Natural Language Processing library nltk. When a user queries the database, we retrieve the information from CockroachCloud using psycopg2 and SQLAlchemy and display it on the front-end in a visually-appealing and easy-to-understand manner with Streamlit. We use Plotly to plot interactive charts and effectively summarize the data and provide immediate actionable insights to users.

Challenges we ran into

Being a two member team lacking knowledge in databases, we spent a lot of time trying to wrap our heads around primary key - foreign key relationships and JOIN statements.

What we are proud of

We are extremely proud to have created a fully functional full-stack web application in 24 hours that is able to retrieve data from the backend and display it on a nice UI!

What we learned

This was our first time using CockroachDB (or even writing so much SQL!) We learned:

  • the CRUD operations for working with CockroachCloud
  • how to interact with CockroachCloud using ORMs and python
  • how to scrape websites using beautifulsoup and pandas to obtain the stock ticker symbols, stock prices, stock news articles
  • perform sentiment analysis on news articles
  • capture the scraped information and store it in the database, and display the information when a user searches for the stock
  • plot interactive financial charts using Plotly
  • build websites with a nice UI using Streamlit

Apart from technical knowledge, we also learned a lot about finance. From reading articles on Investopedia on Fundamental Analysis and Technical Analysis to understanding what Candlestick Patterns mean and eventually distilling this information into easy-to-understand paragraphs on our website, we walked away much more knowledgeable in finance. Our website contains many explanations on financial terms like "Forward P/E", "Bullish Candlestick Patterns" to simplify the jargon, helping to educate young females about Finance with Data Analytics & Science.

With our data-first approach leveraging real-time data scraped from Yahoo Finance (stock prices, news articles) and analyzing historical prices to suggest stocks to purchase to optimize one's portfolio, we hope this hack will help enable users in leveraging this real-time data effectively to enable efficient and informed decision-making on investments amid the noise and hype constantly surrounding us (the GameStop saga as a quintessential example.)

What's next for FinWhiz

The database is already hosted on the cloud thanks to the awesome CockroachCloud! We plan to deploy and host the front-end so everyone can access the web app.

Share this project: