Earnings VRP API - Implied vs Realized Move Premium - FlashAlpha Lab API
Lab API Earnings VRP

Earnings VRP API

Earnings volatility-risk-premium: the live event-implied move vs. the symbol's realized history of actual moves, with a richness assessment and surprise-reaction breakdown.

Endpoint

GET /v1/earnings/vrp/{symbol}
Auth required (X-Api-Key) Rate Limited: Yes Alpha plan+

Parameters

Name In Required Default Description
symbol path yes - Underlying symbol (case-insensitive).
curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://lab.flashalpha.com/v1/earnings/vrp/AAPL"
import requests

resp = requests.get(
    "https://lab.flashalpha.com/v1/earnings/vrp/AAPL",
    headers={"X-Api-Key": "YOUR_API_KEY"}
)
data = resp.json()
print(f"Premium ratio: {data['earnings_vrp']['premium_ratio']}")
const resp = await fetch(
  "https://lab.flashalpha.com/v1/earnings/vrp/AAPL",
  { headers: { "X-Api-Key": "YOUR_API_KEY" } }
);
const data = await resp.json();
console.log("Premium ratio: " + data.earnings_vrp.premium_ratio);

Response

{
  "symbol": "AAPL",
  "underlying_price": 212.34,
  "as_of": "2026-06-05T15:42:10Z",
  "earnings_date": "2026-06-09",
  "days_to_event": 4,
  "earnings_vrp": {
    "implied_move_pct": 4.6,
    "realized_median": 3.1,
    "realized_mean": 3.4,
    "premium_ratio": 1.48,
    "z_score": 0.92,
    "percentile": 70,
    "assessment": "slightly_rich",
    "directional_bias": "downside_overpriced"
  },
  "surprise_reaction": {
    "beat_avg_move_pct": 2.8,
    "miss_avg_move_pct": -5.1,
    "inline_avg_move_pct": 0.4
  }
}

Key Response Fields

Field Description
earnings_vrp.implied_move_pctLive earnings-implied move (%); falls back to the stored implied move if the term structure can't be decomposed.
earnings_vrp.realized_median / realized_meanMedian / mean of historical absolute actual moves (%).
earnings_vrp.premium_ratioimplied_move / realized_median - >1 means options are pricing more than history realized.
earnings_vrp.z_scoreImplied move vs. realized distribution (z); null when fewer than 5 historical moves.
earnings_vrp.percentilePercentile of the implied move within historical realized moves; null when fewer than 5 events.
earnings_vrp.assessmentRichness classification: rich, slightly_rich, fair, slightly_cheap, cheap, or insufficient_data.
earnings_vrp.directional_biasdownside_overpriced / upside_overpriced when one side's historical moves dominate; otherwise null.
surprise_reaction.beat_avg_move_pctAvg actual move (%) following EPS beats (surprise > 1%); nullable.
surprise_reaction.miss_avg_move_pctAvg actual move (%) following EPS misses (surprise < −1%); nullable.
surprise_reaction.inline_avg_move_pctAvg actual move (%) following in-line results (−1%…+1% surprise); nullable.

Errors

Status Description
403Caller is below the Alpha tier.
404no_data - no upcoming earnings for the symbol; or symbol_not_found - no live market data.

About

Earnings VRP compares the option market's live event-implied move against the symbol's own realized history of post-earnings moves. The headline premium_ratio divides the implied move by the realized median, so values above 1 mean the options are pricing a bigger move than the stock has historically delivered.

The assessment field collapses that comparison into a plain richness label, while surprise_reaction breaks down the average post-event move conditional on EPS beats, misses, and in-line results to surface any directional skew.

Common Use Cases

  • Decide whether to sell or buy event premium from premium_ratio and the plain-language assessment label
  • Gauge how extreme the implied move is by reading z_score and percentile against realized history
  • Skew a structure to the cheaper wing when directional_bias flags one side as overpriced
  • Stress-test a position with the beat / miss / in-line surprise_reaction averages to bound the post-print move
  • Require a minimum sample before acting by treating null z_score/percentile (fewer than 5 events) or insufficient_data as a no-trade gate
  • Rank an earnings watchlist by premium_ratio to surface the richest premium-selling candidates

Related reading

Complementary endpoints

Ready to build?

Get your free API key and start pulling live options data in 30 seconds.