APEX factor · PEAD
PEAD — Post-Earnings Announcement Drift — bets that stocks which beat earnings keep drifting upward for 30 to 90 days after the print, and stocks that miss keep drifting down. The market under-reacts to the surprise; the drift fills in the gap.
When a company reports earnings, three things happen on day zero: a price gap, a flood of analyst notes, and an institutional rebalance. But the rebalance does not finish on day zero — index funds wait for the next rebalance window, mutual funds wait for the next manager meeting, retail investors wait for next month's brokerage email. Each wave of buying (or selling) stretches over weeks. PEAD measures how many waves are likely still ahead, given how big the surprise was, how confident analysts seem about the new trajectory, and how much trading has already happened.
SUE = (actual_eps - consensus_eps) / σ_consensus // standardised surprise days_since = today - announcement_date // 0..90 window decay = exp(-λ · days_since / 90) // how much drift left revision = Σ analyst_revisions_post_print // continued analyst lift pead = z_score( w₁·SUE·decay + w₂·revision + w₃·gap_persistence )
Two mechanisms compete: SUE captures the original surprise (large surprises drift longer), revisions capture whether analysts are still updating upward weeks after the print. The decay constant λ is calibrated against historical drift profiles and is not disclosed. Gap-persistence measures whether the post-print price level has held — failed gaps reverse, durable gaps drift further.
Earnings calendar comes from Finnhub plus SEC EDGAR 8-K filings. SUE is computed nightly when an announcement enters the database; analyst revisions arrive on a 4-hour cadence. The factor lives in apex_factor_scores keyed by ticker and date, with values restricted to the 90-day post-announcement window — outside that window the factor returns a neutral 50 so it does not muddy the composite. Fresh prints (days 1-15) carry the highest weight; the signal anneals away as drift completes.
PEAD interacts strongly with Momentum (a beat is the kind of news that creates the under-reaction Jegadeesh-Titman exploit) and with NLP MD&A tone — when management's narrative in the same 10-Q is upbeat, the drift extends further (Tetlock 2007's mechanism). When PEAD fires bullish AND momentum is rising AND NLP tone is positive, the EARNINGS MOMENTUM CASCADE confluence pattern triggers. Conversely, a SUE beat with bearish NLP tone fires the EARNINGS DISSONANCE pattern — the print was good but management is hedging.
PEAD's drift profile breaks during macro-driven sell-offs (March 2020, October 2022) — a beat in a falling market doesn't drift, it gets dragged down with the index. We mitigate via the regime amplifier: in risk-off regimes PEAD's weight halves automatically. Second failure: the 'whisper' problem. When unofficial analyst targets diverge sharply from the published consensus, the published SUE understates the actual surprise, and the drift starts before our signal recognises it. We do not currently incorporate whisper data — that's a known gap.
Every ticker page shows the per-factor decomposition. The PEAD score is one of twelve composing the 0–100 APEX composite.