Creating a GPT-Powered Value Investing Web App
I have been reading up on Value Investing lately and trying to become the next Warren Buffet. I quickly realized analyzing a company for investment potential is difficult. As a newbie, reading 10-K annual reports is overwhelming and takes forever, especially since I don’t know what I should be looking for. Additionally, looking at numbers don’t tell the whole story. If it was that easy, everyone would be good at investing and in turn, no one would be good. Therefore, I developed a tool to help me with my stock research and also give me an excuse to learn some new things.
Thus, www.valuepilotai.com was born.
Value Pilot AI helps users take a first pass at evaluating a stock by providing historical financial data (with basic charting), ChatGPT-generated summaries of the 10k filing, and key financial ratios along with context regarding these ratios. The app serves to provide an overview of the company and its market landscape and some context behind its numbers. All without taking a deep dive into their 10-K annual report. If a company looks promising based on my first pass using the app, I take a deeper dive into their SEC filings and other secondary sources of information.
As of this blog post, there are no valuation metrics available in the app, but this will be a future development.
How I Built the App
With the first iteration of this project, I successfully:
- Created and deployed API infrastructure using Terraform. In AWS, I used API gateway, DynamoDB, and Lambda Functions.
- Created a front-end app using Streamlit.
- Utilized Docker to simplify deployment of the Streamlit app on DigitalOcean.
- Used Github actions to deploy changes to both the frontend and backend whenever code changes are committed to the main branch.
The main programming languages used to build this app were Python and HashiCorp Configuration Language (HCL). Python was used to program the streamlit app as well as the AWS Lambda Functions that retrieved/stored data from the SEC website, ChatGPT, Dolthub, and DynamoDB. HCL was used to configure and deploy all the AWS infrastructure tied to the app. The beauty of using Terraform is that if I needed to tear down and redeploy this app into a new account, it just takes a couple button clicks!
If you’re more of a visual person, check out the architecture diagram below to see at a high level how it all works.
I’m saving on costs given this infrastructure is “serverless”. The only fixed costs are for this app are the DNS hosting ($14/year for registration plus ~$0.50/mo for the hosted zone) and the frontend app hosting (~$5/mo).
If you have any questions, comments, or feedback, please don’t hesitate to reach out to me at connect@joshuacmin.com. I’m always looking to learn and improve.
I’m also happy to discuss any needs on your projects I can help with.