Stock_Rotation_Themes

Theme & Sub-Theme Ticker Universe

Input_Ticker_List_by_Theme.csv — Every ticker is assigned to one or more of a structured set of themes and sub-themes, which the rotation model then weights by sub-theme market capitalization.

At a glance -

Metric Count
Unique tickers 1,394
Themes 34
Sub-themes 175
Total assignments (rows) 1,935
— Primary assignments 1,397 (one per ticker)
— Secondary assignments 538

Each company has exactly one Primary sub-theme (its core business) and may carry one or more Secondary sub-themes where it has meaningful second-order exposure. Because a ticker can appear in several sub-themes, per-sub-theme ticker counts sum to more than the 1,397 unique names; a theme-level total counts each company once even when it holds multiple sub-themes within that theme.

Index coverage

The universe now spans the full large- and mid-cap core of the U.S. market:

Membership reflects the S&P 500 and S&P MidCap 400 rosters as constituted through the 2026 index rebalances.

Structure

The CSV has five columns:

Column Description
Ticker Exchange symbol
Company Name Issuer name
Theme One of 34 top-level themes
Sub Theme One of 175 sub-themes nested under a theme
Assignment Primary or Secondary

Companion files

Notes

I started with an AI scan of the FinViz Theme heatmap, but a lot of companies (e.g. Amazon) participate in a lot of different markets. So then I had AI narrow it to the two largest. I actually went back and forth between Claude and Grok on this to triangulate the results. Then went back and added in the S&P Large Caps and Small Caps that were missing. Decided to use a 60/40 split for market cap when there was both a primary and secondary sub theme. Then manually combined and sub-themes with less than 5 tickers. All in all a pretty arbitrary process. May not be perfect, but it is directional.