
Earnings Revision
Earnings estimate revisions, guidance analysis, and post-earnings drift (PEAD), track...
Install
npx skills add HKUDS/Vibe-Trading --skill earnings-revision -g -a claude-code -y- Repository
- HKUDS/Vibe-Trading37.4k
- Category
- Engineering
- Updated
- 3d ago
- License
- MIT
- Context cost
- Mediumabout 2,438 tokens
- Runs scripts
- No, instructions only
What it does
Earnings estimate revisions, guidance analysis, and post-earnings drift (PEAD), track analyst consensus changes, earnings surprise patterns, and management guidance shifts for US/HK equities.
Earnings Revision & Guidance Analysis
Overview
Track sell-side analyst estimate revisions, management guidance changes, and post-earnings price drift to generate investment signals. Earnings revisions are among the most persistent and well-documented alpha factors in equity markets, stocks with upward revisions tend to continue outperforming, and vice versa.
Core Concepts
1. Earnings Revision Momentum
The revision signal hierarchy (strongest to weakest):
| Signal Type | Description | Typical Alpha (annualized) | Persistence |
|---|---|---|---|
| Earnings surprise (beat/miss) | Actual EPS vs consensus | 3-8% post-event drift | 60-90 days (PEAD) |
| Consensus revision breadth | % of analysts revising up vs down | 4-6% long-short spread | 3-6 months |
| Estimate magnitude change | Size of revision relative to prior estimate | 3-5% | 1-3 months |
| Guidance revision | Management guidance change vs prior | 5-10% on event | Immediate + 30-60 day drift |
| Whisper number miss/beat | Actual vs buy-side whisper (not official consensus) | 2-4% | 1-2 weeks |
2. Key Metrics
Earnings Surprise:
# Standardized Unexpected Earnings (SUE)
sue = (actual_eps - consensus_eps) / std_of_forecast_errors
# Interpretation
# SUE > +2: large positive surprise → strong PEAD signal
# SUE < -2: large negative surprise → strong negative PEAD
# |SUE| < 0.5: in-line with expectations → weak signal
Revision Breadth:
# Revision breadth ratio
breadth = (num_upgrades - num_downgrades) / total_analysts
# Interpretation
# breadth > +0.5: strong consensus upgrade momentum
# breadth < -0.5: strong consensus downgrade momentum
# |breadth| < 0.2: mixed / no clear direction
Estimate Dispersion:
# Analyst disagreement
dispersion = std_of_estimates / abs(mean_estimate)
