Post-earnings drift: we measured it on 40 quarters. Here is the number.
+0.64% excess return, t = 2.83. Small, real, and much smaller than the versions you will be sold. Here is the method that produced it.
Post-earnings announcement drift is the observation that stocks continue to move in the direction of an earnings surprise for weeks afterwards. It has been in the academic literature since 1968 and it is one of the few anomalies that has repeatedly survived being looked at properly.
We measured it on our own data. The answer is +0.64% excess return with a t-statistic of 2.83, over 40 quarters.
That is a real result and a modest one, and the gap between it and the versions you will see advertised is entirely explained by method.
Where the earnings date comes from
This sounds trivial and is not. Most “earnings date” fields are estimates — scraped, crowd-sourced, or projected from last year’s date. If your event date is off by a day, you have measured the drift starting from the wrong bar, and on a one-day-return basis you have measured noise.
We date earnings from the 8-K item 2.02 that announced them. That is the filing in which the company itself reports results, so the date is the date it became public, not a guess about it. The cost is honest: future earnings dates are still estimates, because a filing that has not happened cannot be cited.
What “excess” means, and why it changes everything
The measurement is excess = return − benchmark return. Every event’s return is
netted against what comparable names did over the same window.
This has a consequence that is easy to state and easy to forget: a positive result says the group did better than its peers, not that it went up. In absolute terms, over the windows we studied, essentially every group we measured returned less than the benchmark. The signal identifies relative strength inside a period that was, on the whole, weak.
Trading a relative edge as though it were an absolute forecast is one of the most reliable ways to turn a valid study into a losing position.
The horizon problem
Our measured effect lives between 21 and 63 trading days. At a one-day horizon, only 2 of 25 measured families clear t = 3.
This matters because most event-driven products are built to trade the day of, or the day after. At that horizon the effect we can measure is largely absent — and we looked for it specifically.
The controls that shrank the number
Four, and each one exists because it changed a result we had already believed:
- Point-in-time universe. Companies that later delisted are in the sample. Between 10% and 23% of positions in a historical run are names that no longer exist. (More on that here.)
- A matched control group. Applied to a different signal, this took a +1.78% edge at t = 4.55 to nothing at all.
- Transaction costs. Subtracted and shown as the subtraction: gross → net → annual cost → break-even.
- Standard errors clustered by date. Two hundred positions opened on the same morning are one observation about that morning. Without clustering, the t-statistic is inflated by whatever your average daily position count happens to be.
Run those four and most things stop working. Volume shocks and range breakouts come back at t = −7.84 — significantly worse than their controls, which is a strong finding pointing the opposite way from how they are usually traded.
Why the small number is the credible one
If a tool shows you an event study where everything works, the machinery is not running. The value of a +0.64% result is not the 0.64%; it is that the same pipeline returned −7.84 for something else, and we published both.
Our AI assistant is handed these base rates as part of its evidence pack, and it is required to anchor a direction to them where one exists — and to say plainly when none does. Asked about SHEL it returned up, high confidence, citing +1.75% at t = 13.14. Asked about AAPL, where nothing fired, it returned low confidence and the sentence “no measured base rate exists”.
The second answer is what makes the first one worth reading.
The event studies, the base rates and the backtest engine are open in the product. So are the results that came back against us.
