Ranked by %B ascending — which names are on sale — not by momentum. Measured on the AI complex over the 2023+ wave, forward 60 days: buying dips beat simply holding by +3.47 pts, while buying strength lost 2.65 pts and top-quartile 12-month momentum lost 3.01 pts. Owning the complex at all was worth +17.95%, which is roughly five times what the timing overlay adds.
%B says where price sits inside its normal trading channel. Below 0.20 means it has pulled back to the bottom of that channel — on sale. Above 1.00 is extended: too stretched to buy, and it returned 2.65 pts below simply holding.
Two studies disagree, so this is not a filter the verdict column applies. 46 large caps, 15y, fwd 60d: dips above the 200-day hit 71% vs 68% below — better odds, but below-200d averaged slightly more (+7.16% vs +6.96%). The AI complex, 2023+: dips below the 200-day were the best bucket of all, +7.49 pts vs the null. The Meta trade in the box below was 11.8% below its 200-day. Above = steadier; below = bigger and lumpier. Pick per your tolerance.
Both halves are gates, and 2y pos is often the binding one. p10 is the 10th-percentile outcome across past 2-year holds — your unlucky-but-realistic case; a −50% p10 means one in ten 2-year holds halved. These are the exact thresholds the verdict column applies, not a rule of thumb.
| %B < 0.20 dip rule | 2026-08-21 @ 549.47 | +35.4% | 18 days before the launch, and META was 11.8% below its 200-day |
| move + volume spike | 2026-09-09 @ 653.17 | +13.9% | the day after the launch |
| follow the analyst | 2026-09-21 @ 741.25 | +0.4% | the move was over |
The 3x pair moves with SOXX, so read SOXX's %B and size with SOXL/SOXS's ATR. SOXS is inverse: its %B means the opposite.
| Ticker | Close | 1d | %B | vs 20d | vs 200d | range | ATR | $vol/d | 2y pos | 2y p10 | msgs | Verdict |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SOXX semis_etf |
565.72 | -1.23% | 1.01 | +8.4% | +27.0% | 77% | 3.2% | 4.3B | 95% 4w | +7.3% | — | extended |
| SOXL semis_etfleveraged |
146.25 | -3.75% | 0.99 | +23.3% | +28.5% | 43% | 8.8% | 8.1B | 76% 4w | -52.2% | — | leveraged · not rated |
| SOXS semis_etfleveragedinverse |
33.66 | +3.82% | -0.00 | -25.4% | -81.8% | 0% | 13.5% | 2.6B | 0% 4w | -98.7% | 30 | leveraged · not rated |
The ten holdings behind SOXX, their fund weight, and how much of the day each one contributed (fund weight × its move, so together they explain about 61% of the fund).
| Ticker | Fund wt | 1d | Contrib | Trend | vs 20d |
|---|---|---|---|---|---|
| NVDA | 9.43% | -1.47% | -0.138% | above 20d | |
| MU | 8.91% | -2.22% | -0.197% | above 20d | |
| AMD | 8.23% | -1.47% | -0.121% | above 20d | |
| AVGO | 7.48% | -2.62% | -0.196% | BELOW 20d | |
| INTC | 5.09% | -1.02% | -0.052% | above 20d | |
| MRVL | 4.66% | -0.56% | -0.026% | above 20d | |
| TSM | 4.65% | -1.20% | -0.056% | above 20d | |
| AMAT | 4.59% | +0.41% | +0.019% | above 20d | |
| LRCX | 4.27% | -1.08% | -0.046% | above 20d | |
| KLAC no 1d | 4.12% | — | — | n/a |
Breadth is context, not a trigger. Reproduce every number here with scripts/soxx_breadth_study.py (8 years of SOXX, entry at the next open). Broad strength has no edge: top-10 weight above its 20-day > 80% was +0.04 pts vs the null at 20 days (n=727; +0.00 at 5d, −0.03 at 1d). Weakness in the holdings (breadth < 20%, or their composite %B < 0.20) pointed the same way as SOXX's own dip signal but smaller (about +0.7 to +0.9 pts vs +1.3) and rests on a few hundred overlapping observations, so treat it as noise-level: it adds nothing you cannot read off SOXX's own %B. Use this table to see why SOXX moved, broad or one name, and take the direction call from SOXX's %B. SOXL and SOXS are daily-reset products and are not rated on this page.
META, GOOGL, MSFT, AAPL, AMZN, NFLX — tracked every day whether or not they signal.
| Ticker | Close | 1d | %B | vs 20d | vs 200d | range | ATR | $vol/d | 2y pos | 2y p10 | msgs | Verdict |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| META ndx100ai_platformmegacap |
744.10 | +1.02% | 0.96 | +16.0% | +19.2% | 94% | 3.5% | 10.5B | 79% 4w | -28.1% | — | neutral |
| GOOGL ndx100ai_platformmegacap |
337.83 | -3.80% | 0.34 | -1.2% | +0.1% | 61% | 2.7% | 8.8B | 90% 4w | -0.1% | — | neutral |
| MSFT ndx100ai_platformmegacap |
500.59 | +0.52% | 0.55 | +0.2% | +16.3% | 80% | 2.2% | 11.5B | 96% 4w | +10.0% | — | neutral |
| AAPL ndx100megacap |
337.02 | -0.80% | 0.79 | +3.1% | +17.5% | 97% | 2.1% | 13.6B | 99% 4w | +16.2% | — | neutral |
| AMZN ndx100megacap |
249.27 | -2.24% | 0.18 | -2.3% | +3.6% | 59% | 2.4% | 8.9B | 79% 4w | -25.5% | — | DIP · FAILS HOLD |
| NFLX ndx100megacap |
71.36 | -1.11% | 0.06 | -8.1% | -16.0% | 7% | 3.2% | 2.5B | 77% 4w | -39.2% | — | DIP · FAILS HOLD |
Any symbol, priced now. The browser cannot call Yahoo directly (no CORS), so this
goes through this site's own /api/quote and then applies the same formulas as the
nightly table, ported from the Python — so a live check and the tables cannot disagree.
Cached 10 minutes.
%B below 0.2, liquid, and passes the 1–3 year hold gate (≥80% of rolling 2-year windows positive with a 10th percentile above -10%).
| Ticker | Close | 1d | %B | vs 20d | vs 200d | range | ATR | $vol/d | 2y pos | 2y p10 | msgs | Verdict |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CTAS ndx100 |
191.97 | -2.49% | -0.17 | -4.1% | +2.8% | 55% | 2.1% | 380M | 99% 4w | +23.3% | 3 | BUY ZONE |
| PAYX ndx100 |
104.49 | -9.15% | -0.17 | -12.8% | +1.9% | 48% | 3.2% | 312M | 88% 4w | -2.1% | 1 | BUY ZONE SPIKE -9.1% · 3.1x |
| AEP ndx100 |
118.40 | -1.36% | -0.08 | -3.3% | -5.6% | 43% | 1.7% | 470M | 86% 4w | -2.5% | 1 | BUY ZONE |
| PCAR ndx100 |
112.09 | -2.30% | -0.07 | -8.2% | -6.7% | 45% | 2.6% | 341M | 98% 4w | +8.1% | 0 | BUY ZONE |
| XEL ndx100 |
70.66 | -1.66% | -0.06 | -5.2% | -8.3% | 4% | 1.9% | 393M | 82% 4w | -6.9% | 0 | BUY ZONE |
| CSCO ndx100 |
106.43 | -0.01% | 0.02 | -2.9% | +10.6% | 64% | 2.8% | 2.0B | 82% 4w | -3.2% | 30 | BUY ZONE |
| TMUS ndx100 |
165.66 | +0.24% | 0.03 | -6.9% | -13.2% | 1% | 3.3% | 797M | 95% 4w | +8.9% | — | BUY ZONE |
| BKNG ndx100 |
155.90 | -5.07% | 0.07 | -14.4% | -15.1% | 4% | 4.4% | 1.1B | 84% 4w | -5.0% | — | BUY ZONE |
| ADP ndx100 |
263.68 | -2.32% | 0.09 | -4.1% | +12.4% | 78% | 2.1% | 580M | 93% 4w | +4.2% | — | BUY ZONE |
| CCEP ndx100 |
99.69 | -0.84% | 0.10 | -5.1% | +1.9% | 57% | 2.2% | 183M | 94% 4w | +5.4% | — | BUY ZONE |
| VRSK ndx100 |
171.80 | -0.13% | 0.12 | -6.0% | -10.1% | 17% | 3.6% | 261M | 83% 4w | -9.1% | — | BUY ZONE |
| CSX ndx100 |
47.19 | +2.61% | 0.19 | -3.8% | +8.0% | 71% | 2.2% | 507M | 90% 4w | -0.2% | — | BUY ZONE |
A move of 5%+ on 2×+ the 20-day average volume. This is a reaction, not a setup — something happened, and the rule does not know what or which direction it resolves.
| Ticker | Close | 1d | %B | vs 20d | vs 200d | range | ATR | $vol/d | 2y pos | 2y p10 | msgs | Verdict |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PAYX ndx100 |
104.49 | -9.15% | -0.17 | -12.8% | +1.9% | 48% | 3.2% | 312M | 88% 4w | -2.1% | 1 | BUY ZONE SPIKE -9.1% · 3.1x |
| ABNB ndx100 |
149.58 | -10.35% | -0.12 | -14.7% | +5.2% | 48% | 3.8% | 624M | — | — | 3 | dip · unmeasured SPIKE -10.3% · 3.0x |
Dips that fail the hold gate, plus names with no measured edge either way.
| Ticker | Close | 1d | %B | vs 20d | vs 200d | range | ATR | $vol/d | 2y pos | 2y p10 | msgs | Verdict |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FANG ndx100 |
185.65 | -1.91% | -0.11 | -7.1% | +2.1% | 67% | 3.5% | 382M | 68% 4w | -49.1% | 1 | DIP · FAILS HOLD |
| KHC ndx100 |
23.79 | -2.38% | -0.04 | -3.9% | +2.3% | 49% | 2.8% | 357M | 37% 4w | -58.1% | 2 | DIP · FAILS HOLD |
| INTU ndx100 |
286.80 | -5.70% | -0.03 | -13.0% | -29.5% | 7% | 4.9% | 1.2B | 84% 4w | -10.2% | 30 | DIP · FAILS HOLD |
| TTD ndx100 |
12.68 | -3.79% | -0.02 | -9.5% | -46.1% | 0% | 5.4% | 268M | 70% 4w | -46.8% | 30 | DIP · FAILS HOLD |
| CSGP ndx100 |
28.26 | -2.69% | 0.00 | -8.2% | -32.1% | 2% | 4.4% | 184M | 62% 4w | -22.7% | 0 | DIP · FAILS HOLD |
| PEP ndx100 |
130.18 | +0.46% | 0.03 | -4.6% | -10.3% | 2% | 1.7% | 1.1B | 78% 4w | -11.1% | 24 | DIP · FAILS HOLD |
| NFLX ndx100megacap |
71.36 | -1.11% | 0.06 | -8.1% | -16.0% | 7% | 3.2% | 2.5B | 77% 4w | -39.2% | — | DIP · FAILS HOLD |
| CPRT ndx100 |
28.87 | -0.14% | 0.06 | -8.7% | -14.9% | 9% | 3.7% | 302M | 87% 4w | -15.9% | — | DIP · FAILS HOLD |
| SBUX ndx100 |
94.14 | -0.80% | 0.11 | -7.4% | -3.4% | 55% | 2.6% | 657M | 75% 4w | -8.6% | — | DIP · FAILS HOLD |
| MELI ndx100 |
1,799.24 | -1.17% | 0.11 | -5.6% | -2.7% | 26% | 3.3% | 744M | 78% 4w | -24.0% | — | DIP · FAILS HOLD |
| ROP ndx100 |
366.36 | +0.26% | 0.11 | -8.0% | -1.4% | 26% | 2.8% | 285M | 85% 4w | -15.1% | — | DIP · FAILS HOLD |
| CMCSA ndx100 |
22.55 | +0.58% | 0.12 | -10.1% | -14.6% | 6% | 3.3% | 667M | 57% 4w | -26.8% | — | DIP · FAILS HOLD |
| ADBE ndx100 |
240.69 | +1.02% | 0.16 | -8.9% | -8.7% | 28% | 4.1% | 1.2B | 64% 4w | -43.1% | — | DIP · FAILS HOLD |
| AMZN ndx100megacap |
249.27 | -2.24% | 0.18 | -2.3% | +3.6% | 59% | 2.4% | 8.9B | 79% 4w | -25.5% | — | DIP · FAILS HOLD |
| TTWO ndx100 |
206.32 | -1.71% | 0.19 | -5.2% | -8.8% | 23% | 3.7% | 505M | 76% 4w | -25.0% | — | DIP · FAILS HOLD |
| ALB humanoid_materials |
113.47 | +0.49% | 0.22 | -8.8% | -26.9% | 25% | 4.6% | 269M | 49% 4w | -62.4% | — | neutral |
| AXON ndx100 |
450.61 | -0.32% | 0.23 | -12.0% | -10.3% | 24% | 5.9% | 449M | 98% 4w | +21.9% | — | neutral |
| ORCL ai_platform |
144.56 | -3.11% | 0.28 | -3.5% | -12.2% | 15% | 4.9% | 4.3B | 98% 4w | +14.7% | — | neutral |
| RRX humanoid_disclosed |
152.42 | +1.12% | 0.28 | -3.1% | -18.9% | 22% | 4.2% | 203M | 80% 4w | -7.0% | — | neutral |
| BKR ndx100 |
58.03 | +0.35% | 0.28 | -4.3% | -1.1% | 56% | 3.1% | 446M | 65% 4w | -44.0% | — | neutral |
| ODFL ndx100 |
177.72 | +1.35% | 0.28 | -4.2% | -10.4% | 43% | 3.3% | 311M | 88% 4w | -5.7% | — | neutral |
| VRTX ndx100 |
516.34 | +1.10% | 0.29 | -2.8% | +9.7% | 77% | 2.4% | 582M | 92% 4w | +1.7% | — | neutral |
| MDLZ ndx100 |
61.44 | +2.11% | 0.30 | -0.9% | +4.5% | 75% | 2.1% | 479M | 79% 4w | -7.6% | — | neutral |
| TRI ndx100 |
98.45 | +3.16% | 0.31 | -3.5% | +0.6% | 28% | 4.4% | 152M | 90% 4w | -2.3% | — | neutral |
| ADSK ndx100 |
217.15 | -0.78% | 0.31 | -6.2% | -10.5% | 21% | 4.1% | 450M | 74% 4w | -26.7% | — | neutral |
%B above 1.00 — the stall zone, −2.65 pts vs the null at 60 days. Not a short signal; a not-today signal.
| Ticker | Close | 1d | %B | vs 20d | vs 200d | range | ATR | $vol/d | 2y pos | 2y p10 | msgs | Verdict |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ETN ai_power |
438.76 | +0.76% | 1.01 | +7.0% | +14.4% | 86% | 3.4% | 774M | 99% 4w | +14.0% | — | extended |
| SOXX semis_etf |
565.72 | -1.23% | 1.01 | +8.4% | +27.0% | 77% | 3.2% | 4.3B | 95% 4w | +7.3% | — | extended |
| TXN ndx100 |
272.62 | +0.65% | 1.03 | +4.2% | +12.1% | 68% | 3.2% | 1.8B | 88% 4w | -1.8% | — | extended |
| AME humanoid_association |
246.45 | +2.16% | 1.03 | +3.9% | +8.3% | 85% | 2.2% | 276M | 99% 4w | +15.3% | — | extended |
| ZS ndx100 |
214.45 | +3.53% | 1.04 | +17.6% | +27.7% | 44% | 4.6% | 411M | 67% 4w | -36.5% | — | extended |
| MPWR ndx100 |
1,355.47 | +6.09% | 1.04 | +10.1% | +7.2% | 60% | 4.1% | 965M | 97% 4w | +22.7% | — | extended |
| ADI ndx100 |
385.23 | +0.58% | 1.04 | +5.2% | +9.1% | 73% | 3.0% | 1.3B | 98% 4w | +15.1% | — | extended |
| ENTG ai_equipment |
150.93 | +5.44% | 1.06 | +9.8% | +16.6% | 71% | 4.7% | 323M | 73% 4w | -20.8% | — | extended |
| STX ndx100ai_memory |
923.86 | +5.30% | 1.06 | +10.3% | +47.8% | 81% | 5.6% | 3.9B | 80% 4w | -13.2% | — | extended |
| NXPI ndx100humanoid_association |
235.44 | +1.30% | 1.06 | +4.3% | -3.2% | 37% | 3.3% | 852M | 71% 4w | -11.7% | — | extended |
| BIIB ndx100 |
227.53 | +3.86% | 1.09 | +4.2% | +17.7% | 100% | 2.7% | 185M | 33% 4w | -45.3% | — | extended |
| TEL humanoid_association |
214.39 | +2.09% | 1.11 | +4.2% | +0.3% | 39% | 2.8% | 398M | 83% 4w | -7.9% | — | extended |
| WBD ndx100 |
30.76 | -0.13% | 1.19 | +7.7% | +11.6% | 100% | 1.7% | 513M | 40% 4w | -61.0% | — | extended |
| ALNT humanoid_association |
113.60 | +3.89% | 1.22 | +18.8% | +49.7% | 99% | 5.0% | 22M | 70% 4w | -31.0% | — | extended |
Buy the dip names at each quarter-end, hold to the next, versus the same number of names drawn at random from the same list (2000 draws), after 0.20% costs. Thresholds were written before each run. Neither variant cleared them, so nothing here changes the verdicts above. The universe is today's AI leaders, which flatters dip entries; the mean is carried by one quarter (2026-03-31) in v1.
| Test | signal qtrs | mean net excess | qtrs positive | ex best qtr | p vs random | result |
|---|---|---|---|---|---|---|
| v1 · dip (%B < 0.20) | 23 | +4.2 pts | 52% | +1.0 pts | 0.071 | not promoted (failed: P1, P4) |
| v2 · dip + above 200-day | 18 | +3.3 pts | 39% | -4.8 pts | 0.259 | not promoted (failed: P1, P3, P4, P5, P6) |
The 1–3 year durability gate cannot be tested point-in-time on 10 years of data (needs 2016 prior sessions); it is judged forward only. Method and thresholds: docs/experiments/2026-09-24-preregistration-qr-s1-v{1,2}.md.