Scatter Stocks was inspired by a Bloomberg article on how companies kept getting "Amazoned". To be Amazoned means to have your business crushed because the company got into your industry.
Embedded within their article was a graph called Bezos Bombshells. It was a great visualization that displayed how different shares rose and fell based on news from Amazon. For example, when Amazon accquired Whole Foods, stocks of Walmart and Kroger dipped. The graph was a great visual aid to understand why stocks may rise or fall. However, I wasn't satisfied with a graph just about Amazon. I wanted to see similar graphs for many different companies.
I was determined to see how I could recreate a so called "Bombshell" graph for any company based on a series of events. If you run the example on the homepage, you can see how stocks of Apple and it's competition changed as per news events.
I tried reaching out to the author of the Bloomberg article to understand how she got her data. I didn't get a response. However, I did manage to piece the information together myself and find alterative data sources in the open:
The stock symbols information is compiled from a static CSV that details Stock Symbol Names, Industries and Market Cap from Nasdaq. I converted this to JSON and reclassified the companies by simpler types. I'll have to manually update this once in a while for new IPOs. You can find the JSON file in the repo under the data folder.
The percent change data is obtained by calculating highest intraday differences, so it looks at the day of an event (or the closest day the market was open to that event) and compares with the day after's open price, and the day before's close price to get the maximum intraday difference. My stock data is pulled from Alphavantage.
The impact on Market Cap was an interesting calculation. It assesses how the percent change of a share impacts the company as a whole. It's found by dividing the percent change value with the company's Market Cap value (usally reported quarterly)
Here's a video of me presenting my project
I'm in the process of writing a more detailed blog post if you are interested on the technical side. I'll have it published soon
If you are having problems or running into bugs, open a issue on Github.