Rejected thesis
Earnings-reaction reversal (anti-PEAD)
Thesis (rejected): When a name misses consensus by ≥ 10 % AND drops ≥ 7 % on the print, the market overreacts and the stock bounces over the next 5-10 trading days. Mirror image of the PEAD signal that works on beats.
Code: research/earnings_reversal_validate.py
Report: research/earnings_reversal_report.json (n=489 events)
Why it failed: The bounce doesn't materialize. Edge is essentially zero at every horizon we measure:
| Horizon | Event mean | Ctrl mean | Edge | Hit |
|---|---|---|---|---|
| 5 d | +0.3 % | +0.4 % | -0.1 % | 52 % |
| 10 d | +0.3 % | +0.3 % | +0.0 % | 52 % |
| 20 d | +1.4 % | +0.6 % | +0.8 % | 52 % |
| 40 d | +0.7 % | +1.7 % | -1.0 % | 49 % |
| 60 d | +3.9 % | +3.5 % | +0.4 % | 54 % |
Asymmetry finding: positive surprises underreact (PEAD: +2.8 to +5 %
edge at 20 d) but negative surprises are priced more efficiently.
Bad-earnings drops are typically structural (the company actually got
worse) rather than panic overshoots, so the bounce-on-mean-reversion
mechanism that works for generic crashes (our bounce cohort) doesn't
extend to earnings-catalysed crashes.
Verdict: Cohort skipped. Useful confirmation that our generic
bounce cohort works because it isn't earnings-catalysed -
oversold + volume on technical / sentiment grounds is a different
beast from oversold-on-bad-news.
| Sample | 489 |
|---|---|
| Validator | research/earnings_reversal_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)
- Beat-persistence pre-earnings drift
- Sector ETF mean-reversion
- 52-week-high breakout
- Volume accumulation (above-200DMA +...
- Cross-sector momentum
- Analyst-upgrade cluster
- PEAD × sector tailwind (combination)