S&P 500 Sector Beeswarm

Every S&P 500 company as a bubble: positioned by sector and by return, sized by market capitalization. Daily replays the most recent sessions company by company; Annual steps back through the last 15 calendar years at sector-ETF resolution.
Loading…
…
S&P 500
…
…

Reading this chart

Each bubble is one company (Daily) or one SPDR Select Sector ETF (Annual). Horizontal position is the company’s GICS sector; vertical position is its return: measured from the prior close, tracked through the session at 15-minute marks in Daily, or cumulative calendar-year total return in Annual. Bubble area is market capitalization (Daily) or the sector’s approximate weight in the index (Annual). The dashed line marks SPY’s return over the same window.

Method & caveats

Daily sessions are captured after each close from Alpha Vantage 15-minute intraday bars (delayed data) and archived going forward. Each mark is that bar’s price versus the prior session close; bubble size is shares outstanding × the closing price (fixed for the session), with sector and share counts refreshed weekly. Index membership is the current S&P 500 constituent list applied to every archived day. A company added or removed later is not reconstructed point-in-time.

Annual uses the 11 SPDR Select Sector ETFs (total return, split & dividend adjusted) for calendar years over roughly the last 15 years. XLRE (Real Estate) begins in 2016 and XLC (Communication Services) in 2019. Earlier years omit those bubbles. Sector weights used for bubble size are approximate year-end figures.

Source: Alpha Vantage: SPDR Select Sector ETFs, SPY, and S&P 500 constituent quotes. Visualization after Jan at Chartfleau.