Alphanume

Insights

Implied vs Realized Earnings-Move Data by Stock

Alphanume Team · July 18, 2026

Compare each stock's pre-earnings ATM straddle-implied move with its realized reaction, requiring enough historical events before generalizing an overpricing pattern.

Implied versus realized earnings-move data tests whether the options market's priced move exceeded or fell short of the stock's subsequent reaction. Alphanume's Earnings Implied vs Realized dataset provides one row per ticker and earnings event with the captured ATM straddle, implied move, realized signed and absolute move, over-under gap, move ratio, and running per-ticker history.

The earnings move documentation defines capture and reaction dates, announcement timing, contract fields, and outcome availability. Alphanume's proof material provides broader research context. These are gross observations, not net straddle returns, and they do not include user-specific spreads, slippage, commissions, or path-dependent management.

Keep implied and realized definitions aligned

The implied move comes from the pre-earnings at-the-money call plus put relative to spot. The realized absolute move is measured over the documented earnings reaction window. Preserve capture_date, reaction_date, announcement time, strike, expiry, and days to expiration so the comparison can be audited.

Field

Meaning

Interpretation

implied_move_pct

ATM straddle as percent of spot

Gross priced magnitude

realized_abs_move_pct

Absolute reaction return

Observed underlying magnitude

over_under_pct

Implied minus realized

Positive means implied exceeded movement

move_ratio

Realized divided by implied

Above one means realized exceeded implied

n_events_to_date

Ticker events observed through that row, including the resolved event

Shift one event for a pre-announcement sample size

An after-close report and a before-open report map to different capture and reaction sessions. Do not replace the served timing fields with a generic earnings date. The event row preserves the mapping needed for consistent comparison.

Retrieve per-name history with sample size

Query one ticker for its full visible history, or a completed date range for a cross-section. The running fields include the current resolved event in each row. Shift them by one event within ticker before using them to screen a later earnings announcement. Do not calculate a historical hit rate with the current outcome or future events and attach it to an earlier decision.

GET /v1/earnings-move-history
ticker=<selected ticker>
date_gte=2020-01-01
date_lte=2025-12-31

retain date, time, capture_date, reaction_date,
       spot, atm_strike, exp_date, days_to_exp,
       straddle, implied_move_pct, realized_abs_move_pct,
       over_under_pct, move_ratio, overpriced,
       n_events_to_date, hit_rate_to_date, notional_volume

events = sort rows by ticker, reaction_date
for field in [n_events_to_date, hit_rate_to_date,
              avg_over_under_to_date, avg_move_ratio_to_date]:
  events["prior_" + field] = groupby(ticker)[field].shift(1)

screen only when prior_n_events_to_date >= prespecified minimum

The newest event may not have realized fields until the post-earnings session closes. Keep that selection row as pending rather than assigning zero or dropping it from the event inventory. Freeze an outcome cutoff when comparing stocks.

Compare stocks without hiding thin histories

Rank tickers only after setting a minimum event count. Report the count, mean and median over-under gap, realized-to-implied ratio distribution, and share of events where implied exceeded realized. A ticker with three quiet events should not outrank a thirty-event history without a clear uncertainty penalty.

  • Use running statistics for point-in-time decisions.
  • Report regular and unusually large event outcomes, not only averages.
  • Keep EPS surprise separate from options-pricing success.
  • Inspect notional-volume context before assuming tradability.

Event outcomes within one ticker are not independent of its sector, market regime, or changing business risk. Use partial pooling, confidence intervals, or simple minimum-count rules rather than reading a noisy hit rate as permanent issuer behavior.

A useful ranking should shrink or flag thin histories. At minimum, publish event count beside every ticker statistic and require the same cutoff for all names. A more formal analysis can use a beta-binomial or hierarchical estimate for hit rates, but the raw numerator and denominator should remain visible. Never sort only by percentage and allow a two-event history to outrank a long record without qualification.

Announcement timing and contract maturity also create heterogeneity. Separate before-open from after-close observations and inspect days_to_exp. A straddle with several days remaining contains post-reaction time value, while the implied-move comparison is a magnitude statistic rather than a modeled liquidation value. Preserve these fields before making trade-level claims.

Avoid gross-edge and selection mistakes

The main failure mode is treating implied minus realized movement as the profit from selling a straddle. Entry spreads, exit value, volatility collapse, skew, gamma path, settlement, and risk management determine actual PnL. A stock can finish inside the implied move after a path that forced losses or margin action.

The second failure is selecting tickers using their full future history. At every event, restrict summaries to prior events. Account for delistings, symbol changes, and missing option observations. Report exclusions by reason.

Build a minimum-sample ticker scorecard

As a concrete next action, retrieve a completed multi-year window, group by ticker, and require a prespecified minimum event count. Export event-level implied and realized moves plus ticker-level medians, hit rates, tail ratios, and confidence intervals. Recompute each ranking using only information available before the next event. Then apply explicit trading-cost scenarios separately. This shows whether an apparent pattern survives sample-size and point-in-time controls.