Rejected thesis
Analyst-upgrade cluster
Thesis (rejected): When 3+ distinct analyst firms upgrade the same name within a 30-day window, the consensus has materially shifted and other institutional positioning follows for 1-3 months. Stickel 1995, Womack 1996 on analyst recommendation revisions predicting returns; clustering filters out single-analyst noise.
Code: research/analyst_upgrade_cluster_validate.py
Report: research/analyst_upgrade_cluster_report.json (n=681)
Why it failed: Edge is negative in the short term and ~zero longer term. The signal is lagging - by the time 3 firms have upgraded, the move is already in.
| Horizon | Event mean | Ctrl mean | Edge | Hit |
|---|---|---|---|---|
| 5 d | +0.53 % | +0.81 % | -0.28 pp | 54 % |
| 10 d | +0.95 % | +1.37 % | -0.42 pp | 55 % |
| 20 d | +1.95 % | +2.28 % | -0.33 pp | 58 % |
| 40 d | +3.69 % | +2.91 % | +0.78 pp | 60 % |
| 60 d | +4.87 % | +4.52 % | +0.35 pp | 60 % |
Hit rates 54-60 % look reasonable but the edge vs random non-event days on the same names is basically zero. Analyst clustering is mostly driven by quarterly review cycles around earnings, which we already capture in PEAD; the residual signal after that overlap is too small.
Verdict: Not added. Suggests an even more leading signal might work (e.g. single analyst upgrade with the biggest price-target change from the highest-conviction firm), but that's a different shape of signal.
| Sample | 681 |
|---|---|
| Validator | research/analyst_upgrade_cluster_validate.py |
| Verdict | Rejected |
Every result here is reproducible from the script named above. Reports are in the repository.
- Volatility squeeze
- Pre-FOMC drift
- Uptrend pullback
- Momentum continuation
- Industry-relative momentum (at 4-week lookback)
- Earnings-reaction reversal (anti-PEAD)
- Beat-persistence pre-earnings drift
- Sector ETF mean-reversion
- 52-week-high breakout
- Volume accumulation (above-200DMA +...
- Cross-sector momentum
- PEAD × sector tailwind (combination)