Post-Earnings Announcement Drift as a Quant Signal

Post-earnings announcement drift (PEAD) is the tendency for stocks to continue moving in the direction of an earnings surprise for days to months after the print. It is one of the most studied event-driven anomalies in equities: not a millisecond edge, but a slow underreaction pattern. This article defines SUE, shows a research pipeline, and explains why modern PEAD is thinner after costs and crowding.

The phenomenon

  1. Company reports EPS above/below consensus
  2. Price jumps on the announcement
  3. Residual drift continues in the same direction over subsequent weeks

Classic explanation: investors underreact to the information in the surprise; analysts revise slowly. Alternative: risk premium for earnings uncertainty. Either way, the tradable question is whether drift clears costs.

Measuring surprise: SUE

Standardized Unexpected Earnings:

SUE = (EPS_actual − EPS_expected) / σ_estimate

Expected = analyst consensus or time-series forecast (seasonal random walk). σ = standard deviation of estimate errors or dispersion of analyst forecasts.

import numpy as np
import pandas as pd

def sue(actual: float, consensus: float, dispersion: float) -> float:
    if dispersion <= 0:
        return np.nan
    return (actual - consensus) / dispersion

def pead_event_returns(prices: pd.Series, event_date, horizons=(1, 5, 21, 63)):
    """Close-to-close returns after event_date (assume event at t)."""
    px = prices.copy()
    out = {}
    base = px.loc[event_date]
    for h in horizons:
        future = px.shift(-h).loc[event_date]
        out[h] = future / base - 1
    return out

Portfolio construction

Standard academic recipe:

  • Rank by SUE into quintiles/deciles
  • Long high SUE, short low SUE
  • Hold 30–60 days; overlap portfolios monthly
  • Risk-adjust vs size/value/momentum (factor investing)

Practical quant recipe:

  • Enter on next open after the print (no lookahead on same-bar close)
  • Skip tiny illiquid names or apply ADV filters
  • Neutralize sector and beta
  • Haircut by borrow fees on the short leg

(securities lending)

Timing the window

WindowCharacter
t+0 intradayMostly announcement jump — hard to capture without being in before
t+1 to t+5Drift + revision flows; higher turnover
t+5 to t+60Classic PEAD horizon; slower decay
Post-60Often weak; overlapping with other factors

Most of the easy money was in early windows that are now competed away. Measure IC by horizon; do not assume 1990s holding periods.

Confounders

  • Earnings date timing — companies report after close / before open; align calendars
  • Guidance vs EPS — soft guidance can dominate the hard surprise
  • Momentum overlap — recent winners report good numbers; residualize
  • Illiquidity — drift looks stronger in small caps that you cannot trade
  • Lookahead in databases — IBES revisions and restatements

Apply causal hygiene: residualize SUE portfolios against known factors before claiming orthogonal alpha.

Costs and modern viability

PEAD capacity is limited by:

  • Concentration in reporting seasons (clustered events)
  • Short side HTB after bad prints
  • Spread and impact in small caps where the anomaly is strongest
def net_pead_edge(gross_drift_bps: float, round_trip_bps: float,
                  hold_days: int, ann_borrow_bps: float = 0) -> float:
    borrow = ann_borrow_bps * (hold_days / 365)
    return gross_drift_bps - round_trip_bps - borrow

If net edge is a few bps per month after honest costs, PEAD is a sleeve, not a fund.

Combining with other signals

PEAD stacks well with:

  • Analyst revision momentum (related but not identical)
  • Sentiment around the transcript
  • Pre-earnings IV and post-crush (vol)
  • Quality filters to avoid permanent impairment shorts

Use meta-labeling to skip low-conviction surprises (tiny SUE, messy guidance).

Key takeaways

  • PEAD is underreaction drift after earnings surprises, measured via SUE
  • Enter after the print with point-in-time consensus — no same-bar lookahead
  • Residualize vs momentum/size; the raw anomaly overlaps factors
  • Strongest paper results sit in costly small caps — haircut hard
  • Treat as a seasonal event sleeve with explicit net-edge accounting
#PEAD #earnings drift #SUE #event driven #earnings surprise