Alphanume

Insights

The Stocks That Overprice Earnings Moves Every Quarter

Alphanume Team · June 29, 2026

The market overpays for earnings insurance on average, but the average hides the structure: some names overprice their move nearly every single quarter. Finding them is a per-name track record problem, not a population statistic.

There is a well-worn finding in options research: across broad universes of liquid names, the implied earnings move (the move the straddle price predicts) has historically tended to overshoot the move the stock actually delivers. The crowd buys event insurance rich. If you have read how a straddle works and how to back an implied move out of its price, you already have the population-level story.

Useful, but a population average is a blunt instrument. It tells you the crowd overpays on average. It does not tell you who. And that distinction is where anything tradeable lives, because the average is made of wildly different names. Some overprice their earnings move nearly every single quarter: the street buys the straddle, the report drops, the stock moves half of what was priced in, again and again. Others, far rarer, keep delivering more than the market charged. Treating those two groups as one population averages away the most interesting structure in the data.

From population average to per-name track record

So the sharper question is: which names does the market chronically overpay for? That is a track record problem. For each name, you want its full earnings history scored event by event: how often did the implied move overshoot the realized one, and by how much? A name with a long, consistent record of overpricing its own event is a different research object from a name that overpriced twice and underpriced twice.

Alphanume's Earnings Move History dataset carries this pre-computed. Every row is one earnings event, and alongside that event's own numbers, each row carries the name's running statistics as of that event:

  • n_events_to_date: how many earnings events are in the record so far. The sample size, and always the first thing you read.
  • hit_rate_to_date: the share of past events where the implied move overshot the realized one, 0 to 100. A value of 80 means the straddle was too expensive in 8 of 10 past reports.
  • avg_over_under_to_date: the trailing average of implied minus realized, in percentage points. The size of the bias, not just its frequency.
  • overpriced: the verdict for this specific event, yes or no.

Frequency and size are different facts, and you want both. A name can be overpriced 80 percent of the time by a hair: high hit rate, small average edge, a steady toll booth. Another can be overpriced half the time but by huge margins when it is: a coin flip with lumpy payouts. A single number cannot distinguish them; the pair can. Consider two hypothetical records that both show a 50 percent hit rate: one carries a +2.0 point average bias, the other sits at -0.1. The first name's overpricings are much larger than its underpricings; the second is genuinely a wash. The hit rate alone would have called them twins.

Why the pattern can persist at all

Before trusting any recurring mispricing, ask the mechanism question: who is on the other side, and why do they keep doing it? Earnings are recurring, dated, and disclosed, which means demand for protection concentrates into a known week. Holders who cannot stomach a surprise buy insurance into the print whether or not it is fairly priced, because for them the option is a hedge, not a bet. Market makers charge for warehousing that one-sided flow. Nobody in that chain is behaving irrationally, and nobody is forced to stop, which is exactly the kind of structural setup that lets a per-name bias run for years instead of getting arbitraged away in a quarter.

What a chronic overpricer actually looks like

Reading the records, you are looking for three things at once:

  • A high hit rate, say above 75. The straddle overshoots in most quarters, not occasionally.
  • A positive average bias large enough to survive costs. A +0.2 percentage point edge is real but untradeable after spreads; a +2 point bias is a different conversation.
  • Enough events to believe it. Twelve events is three years of quarters. A perfect hit rate over 4 events is a coin that came up heads four times; a rate of 90 over 20 events is a track record.

A name that clears all three is what the trade calls a chronic overpricer: the market keeps buying its event insurance rich, quarter after quarter, and has kept doing so for years. The mirror image exists too and is much rarer: the chronic underpricer, whose realized move keeps beating the implied one. Those names are the flip side of the same study, the ones where owning the straddle into the print has historically been the paid side.

The trap that ruins most versions of this study

If you build these track records yourself, the easiest mistake to make is look-ahead bias: computing a name's hit rate over its full history and then using that number to "predict" events in the middle of that same history. Your backtest quietly knows the future, and the results will be beautiful and fake.

This is why the "_to_date" suffix on those fields is load-bearing. Each row's running stats are computed only from events up to and including that row's date. The record a name had after its fourth event of 2023 is frozen into that row forever, no matter what later quarters did. When a backtest ranks names by hit_rate_to_date on some historical date, it ranks on exactly the information a trader standing on that date could have had. Point-in-time discipline, built into the field instead of bolted on afterward.

Before you get excited: the caveats

A beautiful track record can still hide a single catastrophic row. A name can overprice 15 quarters in a row and then move 25 percent against an 8 percent implied on the 16th, and a short straddle loses on the square of the surprise: that one event can return years of collected premium. Read the worst realized move in the record, not just the averages. A record accumulated entirely in a calm vol regime also says little about the next stressed one. And a track record describes how an event has been priced in the past; it is a study, not a recommendation to sell straddles.

The track record is also only half of a trade. Knowing a name habitually overprices tells you nothing about whether its vol is rich or cheap right now, this specific quarter. Combining the tendency with the current state is the next step, covered in how to build a pre-earnings options screen.

Explore the records yourself

You can browse the per-name records in the dataset explorer or pull them through the API; this guide covers sourcing, and this one walks the lookup for a single name.

To learn the full method, the chronic overpricers lesson in Alphanume Learn's Systematic Trading with Market Data course has you pull live track records in the browser, read them the way a desk would, and then attack your own conclusion. Real Python, real data, graded by what your code prints. The first module is free with no account needed: start at the first lesson or scan the syllabus. The rest is included with Alphanume Pro (pricing).