Post-Earnings Dip Backtest: 13,950 Events Say Don't Buy the Beat-and-Dip
We tested 13,950 beat-and-dip events on US stocks from 2000–2025. Stocks that beat earnings but sell off 5%+ don't recover — they keep underperforming. T+63 CAR is -0.84% (t=-4.53). The sell-off is not an overreaction; it's information.
Buy the Beat-and-Dip? We Tested 13,950 Events. It Doesn't Work.
A stock beats earnings estimates. The market sells it off 5% anyway. The obvious trade is to buy the dip — the fundamentals just proved out, so the sell-off is an overreaction. We ran this on US stocks from 2000 to 2025. The sell-off isn't an overreaction. It continues.
Contents
- Method
- What We Found
- Dip Size Matters — But Not How You'd Expect
- Why PEAD Beats Mean Reversion Here
- The SQL Screen
- Limitations
- Takeaway
Method
Signal: epsActual > epsEstimated with ABS(epsEstimated) > 0.01. Then stock drops ≥ 5% from T-1 close to T+1 close (the two-day reaction window around the announcement). Both conditions must hold.
Universe: NYSE, NASDAQ, and AMEX-listed stocks with market cap above $1B USD. Data from FMP's earnings surprises endpoint, 2000–2025.
Dip categories: - dip_5: 5–10% sell-off (moderate sell-off) - dip_10: 10–20% sell-off (sharp sell-off) - dip_20: 20%+ sell-off (severe sell-off)
Return windows: Cumulative abnormal return (CAR) measured from T+1 close (dip bottom) at T+5, T+10, T+21, and T+63 trading days. CAR = stock return minus SPY return over the same window.
Winsorization: 1st/99th percentile to reduce outlier noise.
Total events: 13,950
What We Found
The instinct is wrong. Stocks that beat earnings estimates but sell off 5% or more don't revert. They keep underperforming the market.
The overall T+21 CAR is -0.22% (t=-2.12). That's barely negative at 21 days, but by T+63 it deteriorates to -0.84% (t=-4.53). Not a recovery. The sell-off was telling you something.
| Window | Mean CAR | t-stat | N | Hit Rate |
|---|---|---|---|---|
| T+5 | -0.04% | -0.79 | 13,950 | 48.2% |
| T+10 | -0.23%** | -3.13 | 13,934 | 47.0% |
| T+21 | -0.22%* | -2.12 | 13,931 | 47.4% |
| T+63 | -0.84%** | -4.53 | 13,889 | 45.8% |
p<0.05, p<0.01
The hit rate tells the same story. At T+63, only 45.8% of beat-and-dip stocks outperform the market. Coinflip odds would be 50%. You're worse than random.
Dip Size Matters — But Not How You'd Expect
The sharper the sell-off, the more it continues — except at the extreme.
| Dip Category | N | T+21 CAR | t-stat | T+63 CAR | t-stat |
|---|---|---|---|---|---|
| All dips (5%+) | 13,950 | -0.22% | -2.12* | -0.84% | -4.53** |
| Moderate (5–10%) | 9,120 | -0.04% | -0.37 | -0.80% | -4.00** |
| Sharp (10–20%) | 3,921 | -0.76% | -3.48** | -1.17% | -2.86** |
| Severe (20%+) | 909 | +0.86% | +1.29 | +1.23% | +1.11 |
Two things stand out.
The 10–20% sell-off group is the worst. These are stocks where the market sold off hard enough to signal something fundamentally wrong, but not hard enough to be "priced in." At T+21, they're down -0.76% vs SPY (t=-3.48). At T+63, -1.17% (t=-2.86). Both statistically significant.
The 20%+ group is different. The T+21 number is +0.86% and T+63 is +1.23%, but neither is statistically significant (t=1.29 and t=1.11). With n=909, the positive mean is being driven by a fat tail of recoveries, not a consistent effect. The median at T+63 is actually -2.50%. Half the severe dip stocks continue falling.
So: moderate dips are reliably bad, sharp dips are reliably worse, and severe dips are inconsistent with a slightly positive mean masking a negative median.
Why PEAD Beats Mean Reversion Here
Post-earnings announcement drift (PEAD) says stocks continue moving in the direction of the earnings surprise. Beat → drift higher. Miss → drift lower. The beat-and-dip pattern tests the opposite: beat → market says no → does the market eventually agree with the beat?
The data says the market wins. When a company beats estimates but the stock sells off 5%+, the market is likely pricing in something that's not in the EPS number. Guidance cuts. Revenue miss. Margin compression. One-time items. EPS can beat while every forward-looking metric looks worse.
The academic literature on PEAD (Ball & Brown 1968, Foster, Olsen & Shevlin 1984) focuses on the alignment between surprise direction and return. The beat-and-dip is a case where the two conflict: the number was good but the reaction was bad. The reaction contains more information.
The SQL Screen
This query finds current beat-and-dip candidates — stocks that just beat earnings but sold off 5% or more:
WITH recent_beats AS (
SELECT e.symbol,
CAST(e.date AS DATE) AS event_date,
ROUND((e.epsActual - e.epsEstimated) / ABS(NULLIF(e.epsEstimated, 0)) * 100, 1) AS surprise_pct,
ROUND(k.marketCap / 1e9, 2) AS mktcap_bn,
p.companyName AS company_name,
p.exchange
FROM earnings_surprises e
JOIN profile p ON e.symbol = p.symbol
JOIN key_metrics k ON e.symbol = k.symbol AND k.period = 'FY'
WHERE e.epsEstimated IS NOT NULL
AND ABS(e.epsEstimated) > 0.01
AND e.epsActual > e.epsEstimated
AND CAST(e.date AS DATE) >= CURRENT_DATE - INTERVAL 30 DAY
AND k.marketCap > 1000000000
AND p.exchange IN ('NYSE', 'NASDAQ', 'AMEX')
QUALIFY ROW_NUMBER() OVER (PARTITION BY e.symbol ORDER BY k.date DESC) = 1
)
SELECT rb.symbol,
rb.event_date,
rb.surprise_pct,
rb.mktcap_bn,
rb.company_name,
-- Compare T+1 close to T-1 close for the reaction
ROUND((p2.adjClose - p1.adjClose) / p1.adjClose * 100, 2) AS reaction_pct
FROM recent_beats rb
JOIN stock_eod p1 ON rb.symbol = p1.symbol
AND CAST(p1.date AS DATE) = rb.event_date - INTERVAL 1 DAY
JOIN stock_eod p2 ON rb.symbol = p2.symbol
AND CAST(p2.date AS DATE) = rb.event_date + INTERVAL 1 DAY
WHERE (p2.adjClose - p1.adjClose) / p1.adjClose <= -0.05
ORDER BY rb.event_date DESC, rb.surprise_pct DESC
LIMIT 30
The reaction_pct filter at -0.05 catches the 5%+ sell-off. This is a screen, not an entry signal — the backtest says these stocks underperform on average.
Run this screen live on Ceta Research → (pre-loaded query, no account required)
Limitations
Why EPS beats can mislead: A company can beat EPS via cost cuts, buybacks, or one-time tax benefits while its core business deteriorates. The market often sees through headline EPS. The stock reaction is frequently the more honest signal.
Market cap floor: The $1B floor focuses on liquid mid-to-large caps. Small caps may show a different pattern, but execution costs make the trade less practical there.
Survivorship bias: Companies that delisted due to failure are underrepresented, which slightly biases CAR estimates upward. The true result is likely a bit worse.
T+5 is flat, then it deteriorates. The very short-term recovery instinct isn't entirely wrong — T+5 is essentially zero (-0.04%, not significant). The problem is the 1-3 month drift. If you're trading with very tight exits, the signal might look different. But by the time most investors reconsider, it's T+63 territory.
Takeaway
"Buy the beat-and-dip" is the kind of trade that feels logical but fails empirically. The market's negative reaction to a genuine earnings beat usually means something the headline number doesn't show. 13,950 events over 25 years say: when the market says no after a beat, trust the market.
Taiwan is the notable exception — the only market in our study where beat-and-dip events reliably revert. India shows delayed reversion at T+63. Both are discussed separately.
Part of a series: Post-earnings dip mean reversion tested across 12 exchanges. See Taiwan, India, and the global comparison.
Data: FMP earnings surprises + adjusted prices, 2000–2025. NYSE, NASDAQ, AMEX. Market cap > $1B USD. 13,950 beat-and-dip events. CAR vs SPY, measured from T+1 close.