← Sector Rotation Screen home
Mid-cycle
INDPRO YoY +1.7% between 0.0% and 4.0% with curve +0.38: steady expansion.
Sector Scores & Signals
| ETF |
Name |
Last |
% From 52W High |
Seasonality |
n yrs |
Cycle Fit |
Rel Strength |
RS 3m |
Composite |
Signal |
| XLK |
Technology |
$185.78 |
-6.16% |
85.7 |
20 |
100.0 |
61.2 |
19.60% |
82.8 |
Buy |
| XLC |
Communications |
$111.64 |
-6.49% |
82.0 ⚠ |
9 |
100.0 |
37.1 |
-13.37% |
73.5 |
Watch |
| XLI |
Industrials |
$181.92 |
-1.96% |
85.1 |
20 |
50.0 |
48.6 |
-5.41% |
58.3 |
Hold |
| XLF |
Financials |
$55.71 |
-0.77% |
81.8 |
20 |
50.0 |
47.9 |
-2.41% |
57.2 |
Hold |
| XLY |
Consumer Discretionary |
$117.24 |
-5.47% |
83.2 |
20 |
50.0 |
41.0 |
-7.12% |
55.2 |
Hold |
| XLRE |
Real Estate |
$44.45 |
-1.75% |
89.6 |
11 |
50.0 |
29.6 |
-6.39% |
52.7 |
Hold |
| XLB |
Materials |
$50.89 |
-4.31% |
73.3 |
20 |
50.0 |
35.9 |
-12.46% |
50.9 |
Hold |
| XLU |
Utilities |
$45.41 |
-3.58% |
75.9 |
20 |
35.0 |
50.2 |
-14.40% |
50.5 |
Hold |
| XLP |
Consumer Staples |
$84.12 |
-5.37% |
78.1 |
20 |
35.0 |
33.2 |
-9.82% |
45.2 |
Hold |
| XLE |
Energy |
$55.08 |
-11.32% |
62.3 |
20 |
50.0 |
25.4 |
-14.55% |
44.5 |
Hold |
| XLV |
Healthcare |
$160.84 |
-2.19% |
79.6 |
20 |
35.0 |
23.8 |
-3.14% |
42.2 |
Hold |
Click any column header to sort. ⚠ flags sectors with under 10 years of history. Composite weights and signal thresholds tunable in config.py.
Backtest since May 2011
Strategy cum return
+636.33%
SPY: +626.21%
Strategy CAGR
+14.15%
SPY: +14.05%
Strategy Sharpe
0.89
SPY: 0.98
Max drawdown
-18.78%
SPY: -22.93%
Equity curves start at 1.00. Trading cost 1 bps applied to turnover at each rebalance. Cash held when no sectors clear MIN_SCORE_TO_HOLD=50.
Seasonality Heatmap (avg monthly return by sector)
| Sector |
Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec |
| XLK |
+0.1% |
+0.7% |
+1.5% |
+2.8% |
+3.3% |
+0.9% |
+3.2% |
+1.0% |
-0.2% |
+1.8% |
+2.0% |
+0.8% |
| XLF |
-0.2% |
-0.5% |
+0.2% |
+2.6% |
+0.1% |
-1.0% |
+2.8% |
+0.3% |
-0.6% |
+1.1% |
+2.3% |
+1.0% |
| XLE |
+1.3% |
+1.6% |
+1.3% |
+3.4% |
-0.2% |
-0.1% |
+0.6% |
-1.5% |
-0.8% |
+1.6% |
+2.3% |
-0.1% |
| XLV |
+0.9% |
-0.2% |
+0.8% |
+1.0% |
+0.7% |
+1.2% |
+2.0% |
+0.6% |
-0.3% |
+0.6% |
+2.7% |
+0.9% |
| XLI |
+0.5% |
+1.0% |
+0.8% |
+2.2% |
+0.5% |
-0.1% |
+2.6% |
-0.0% |
-0.0% |
+0.9% |
+3.5% |
+0.6% |
| XLY |
+0.8% |
-0.0% |
+0.8% |
+3.1% |
+0.3% |
+0.1% |
+3.1% |
+0.7% |
+0.4% |
+0.5% |
+2.7% |
+0.5% |
| XLP |
-0.2% |
+0.6% |
+1.6% |
+1.5% |
+0.0% |
+0.0% |
+2.1% |
+0.5% |
-0.3% |
+0.8% |
+2.2% |
+0.7% |
| XLU |
+0.2% |
-0.7% |
+2.6% |
+2.0% |
+0.3% |
+0.0% |
+2.1% |
+0.2% |
-0.5% |
+1.7% |
+0.9% |
+0.7% |
| XLB |
-0.0% |
+1.5% |
+1.3% |
+2.6% |
+0.4% |
-0.7% |
+2.3% |
-0.1% |
-1.4% |
+0.8% |
+2.9% |
+0.6% |
| XLRE |
+0.5% |
-0.3% |
+0.9% |
+1.0% |
+0.4% |
+1.8% |
+3.1% |
+0.7% |
-2.9% |
-0.9% |
+3.1% |
+0.5% |
| XLC |
+4.2% |
-0.9% |
-0.8% |
+2.0% |
+2.6% |
+0.8% |
+2.6% |
+1.5% |
-2.0% |
-0.7% |
+3.5% |
-0.0% |
Green > 0%, red < 0%. Cells require ≥5 years of history for that month.
3-Month Relative Strength vs SPY
Drill-Down: XLK (Technology)
BUY
Sub-Sector ETFs (ranked by composite)
| ETF | Theme | Composite | Signal |
RSI | vs 20d | vs 50d |
Vol | Entry Timing |
| SMH |
Semiconductors |
68.3 |
Buy |
51 |
-1.7% |
+3.5% |
0.8x |
Reasonable |
| CIBR |
Cybersecurity |
57.8 |
Hold |
62 |
+4.8% |
+10.5% |
1.2x |
Reasonable |
| FDN |
Internet |
55.9 |
Hold |
61 |
+3.8% |
+2.7% |
0.7x |
Reasonable |
| BOTZ |
AI & Robotics |
52.6 |
Hold |
46 |
-0.9% |
-4.5% |
1.0x |
Good entry |
| SKYY |
Cloud Computing |
49.2 |
Hold |
59 |
+4.2% |
+4.7% |
0.8x |
Reasonable |
| IGV |
Software |
41.1 |
Hold |
51 |
+2.0% |
+0.4% |
0.7x |
Reasonable |
RSI(14): <30 oversold, >70 overbought. vs 20d/50d: distance from moving average. Vol: 5-day avg volume ÷ 20-day avg (>1 = rising interest).
Top Holdings in SMH
(Semiconductors)
| Ticker | Name | Weight |
Composite | Signal |
RSI | vs 20d | vs 50d |
Vol | Entry Timing |
| AMD |
AMD |
5.5% |
98.8 |
Buy |
57 |
+5.1% |
+15.8% |
0.9x |
Extended |
| INTC |
Intel |
3.5% |
91.4 |
Buy |
43 |
-11.8% |
-6.1% |
0.8x |
Oversold |
| TXN |
Texas Instruments |
4.5% |
87.1 |
Buy |
55 |
+2.6% |
+4.0% |
0.6x |
Reasonable |
| AVGO |
Broadcom |
8.0% |
58.3 |
Hold |
54 |
+4.5% |
-1.5% |
0.8x |
Reasonable |
| MU |
Micron Technology |
4.0% |
53.7 |
Hold |
49 |
-7.0% |
+8.9% |
0.8x |
Oversold |
| NVDA |
NVIDIA |
20.0% |
49.7 |
Hold |
57 |
+4.5% |
+0.9% |
0.9x |
Reasonable |
| LRCX |
Lam Research |
3.5% |
49.5 |
Hold |
49 |
-6.4% |
+6.4% |
0.8x |
Oversold |
| QCOM |
Qualcomm |
5.0% |
36.5 |
Avoid |
45 |
-4.8% |
-8.4% |
0.6x |
Good entry |
| TSM |
Taiwan Semi |
12.0% |
33.8 |
Avoid |
50 |
-1.6% |
+2.5% |
0.8x |
Good entry |
| ASML |
ASML Holdings |
5.0% |
25.4 |
Avoid |
51 |
-2.3% |
+6.8% |
0.7x |
Reasonable |
RSI(14): <30 oversold, >70 overbought. vs 20d/50d: distance from moving average. Vol: 5-day avg volume ÷ 20-day avg (>1 = rising interest).
Drill-Down: XLC (Communications)
WATCH
Sub-Sector ETFs (ranked by composite)
| ETF | Theme | Composite | Signal |
RSI | vs 20d | vs 50d |
Vol | Entry Timing |
| NERD |
Gaming & Esports |
64.0 |
Hold |
59 |
+3.2% |
+1.9% |
0.5x |
Reasonable |
| SOCL |
Social Media |
50.1 |
Hold |
57 |
+3.4% |
+1.5% |
0.6x |
Reasonable |
RSI(14): <30 oversold, >70 overbought. vs 20d/50d: distance from moving average. Vol: 5-day avg volume ÷ 20-day avg (>1 = rising interest).
Top Holdings in NERD
(Gaming & Esports)
| Ticker | Name | Weight |
Composite | Signal |
RSI | vs 20d | vs 50d |
Vol | Entry Timing |
| TTWO |
Take-Two Interactive |
7.4% |
86.9 |
Buy |
55 |
+1.5% |
+5.7% |
0.7x |
Reasonable |
| CCOEY |
Capcom |
3.4% |
67.1 |
Buy |
63 |
+8.9% |
+4.8% |
0.8x |
Extended |
| RBLX |
Roblox |
8.3% |
63.6 |
Hold |
59 |
+8.5% |
+16.5% |
0.6x |
Extended |
| NCBDY |
Bandai Namco |
4.0% |
59.5 |
Hold |
66 |
+6.4% |
+6.8% |
0.6x |
Extended |
| U |
Unity Software |
4.3% |
58.0 |
Hold |
63 |
+8.8% |
+10.3% |
1.0x |
Extended |
| NEXOY |
Nexon |
4.5% |
48.2 |
Hold |
52 |
+3.2% |
-2.6% |
0.7x |
Reasonable |
| NTES |
NetEase |
10.8% |
45.0 |
Hold |
55 |
+2.0% |
+5.7% |
1.0x |
Reasonable |
| EA |
Electronic Arts |
7.7% |
34.9 |
Avoid |
70 |
+1.0% |
+1.9% |
0.8x |
Reasonable |
| KONMY |
Konami |
4.4% |
16.2 |
Avoid |
44 |
-1.4% |
-5.0% |
1.1x |
Good entry |
| NTDOY |
Nintendo |
10.8% |
4.7 |
Avoid |
49 |
+1.1% |
-2.3% |
1.0x |
Good entry |
RSI(14): <30 oversold, >70 overbought. vs 20d/50d: distance from moving average. Vol: 5-day avg volume ÷ 20-day avg (>1 = rising interest).
Drill-Down: XLI (Industrials)
WATCH
Sub-Sector ETFs (ranked by composite)
| ETF | Theme | Composite | Signal |
RSI | vs 20d | vs 50d |
Vol | Entry Timing |
| JETS |
Airlines |
72.4 |
Buy |
58 |
+0.8% |
+10.8% |
1.1x |
Reasonable |
| PAVE |
Infrastructure |
50.0 |
Hold |
47 |
-2.0% |
-0.3% |
0.9x |
Good entry |
| ITA |
Aerospace & Defense |
48.2 |
Hold |
52 |
-0.3% |
+3.7% |
0.9x |
Reasonable |
| XAR |
Aerospace & Def (EW) |
36.8 |
Avoid |
44 |
-2.9% |
-0.6% |
1.0x |
Good entry |
RSI(14): <30 oversold, >70 overbought. vs 20d/50d: distance from moving average. Vol: 5-day avg volume ÷ 20-day avg (>1 = rising interest).
Drill-Down: XLF (Financials)
WATCH
Sub-Sector ETFs (ranked by composite)
| ETF | Theme | Composite | Signal |
RSI | vs 20d | vs 50d |
Vol | Entry Timing |
| KIE |
Insurance |
79.2 |
Buy |
70 |
+4.5% |
+9.3% |
1.0x |
Reasonable |
| KBE |
Banks |
71.0 |
Buy |
61 |
+2.0% |
+6.0% |
1.0x |
Reasonable |
| KRE |
Regional Banks |
69.5 |
Buy |
60 |
+1.8% |
+6.0% |
0.8x |
Reasonable |
| IYG |
Financial Services |
60.4 |
Hold |
64 |
+2.2% |
+5.4% |
2.3x |
Reasonable |
RSI(14): <30 oversold, >70 overbought. vs 20d/50d: distance from moving average. Vol: 5-day avg volume ÷ 20-day avg (>1 = rising interest).
Top Holdings in KIE
(Insurance)
| Ticker | Name | Weight |
Composite | Signal |
RSI | vs 20d | vs 50d |
Vol | Entry Timing |
| LMND |
Lemonade |
2.9% |
78.0 |
Buy |
61 |
+10.5% |
+20.2% |
1.1x |
Extended |
| RNR |
RenaissanceRe |
2.0% |
67.3 |
Buy |
55 |
+1.2% |
+5.0% |
1.1x |
Reasonable |
| RYAN |
Ryan Specialty |
2.1% |
65.9 |
Buy |
63 |
+7.3% |
+17.7% |
0.7x |
Extended |
| MCY |
Mercury General |
2.2% |
62.4 |
Hold |
63 |
+3.1% |
+7.5% |
0.9x |
Reasonable |
| CINF |
Cincinnati Financial |
2.0% |
53.3 |
Hold |
54 |
+0.5% |
+6.3% |
1.1x |
Reasonable |
| WTM |
White Mountains Ins |
2.1% |
52.0 |
Hold |
66 |
+5.0% |
+4.1% |
1.0x |
Extended |
| ORI |
Old Republic Intl |
2.1% |
43.6 |
Hold |
62 |
+2.9% |
+5.8% |
0.7x |
Reasonable |
| L |
Loews Corp |
2.1% |
36.0 |
Avoid |
63 |
+2.7% |
+5.8% |
0.9x |
Reasonable |
| AGO |
Assured Guaranty |
2.0% |
30.6 |
Avoid |
62 |
+3.3% |
+5.3% |
0.8x |
Reasonable |
| BHF |
Brighthouse Finl |
2.5% |
27.5 |
Avoid |
77 |
+3.4% |
+4.9% |
1.0x |
Extended |
RSI(14): <30 oversold, >70 overbought. vs 20d/50d: distance from moving average. Vol: 5-day avg volume ÷ 20-day avg (>1 = rising interest).
Drill-Down: XLY (Consumer Discretionary)
WATCH
Sub-Sector ETFs (ranked by composite)
| ETF | Theme | Composite | Signal |
RSI | vs 20d | vs 50d |
Vol | Entry Timing |
| IBUY |
Online Retail |
68.3 |
Buy |
61 |
+2.5% |
+5.3% |
0.3x |
Reasonable |
| XRT |
Retail |
63.4 |
Hold |
58 |
+1.1% |
+4.2% |
0.7x |
Reasonable |
| PEJ |
Leisure & Entertain |
55.7 |
Hold |
57 |
+0.4% |
+5.0% |
1.1x |
Reasonable |
| XHB |
Homebuilders |
51.2 |
Hold |
49 |
-1.9% |
+3.0% |
0.8x |
Good entry |
RSI(14): <30 oversold, >70 overbought. vs 20d/50d: distance from moving average. Vol: 5-day avg volume ÷ 20-day avg (>1 = rising interest).