Track record

The close landed inside the expected range 80% of the time.

Every expected-move reading this site publishes is stored and, after the expiry, scored against that day's close. So far that is 2825 readings on 249 tickers across 9 expiries, from 2026-08-31 to 2026-09-11. A one-standard-deviation range should catch the close about 68% of the time; a higher number means options were priced for more movement than arrived.

Inside the range
80% of 2825

Share of settled readings where the expiry-day close sat between the lower and upper bound published at the time.

Realised vs expected
66%

The average absolute move at expiry was 3.39% against an average expected move of ±5.15%. Below 100% means the options were rich on average.

Breaches
394 up, 171 down

When the close did escape the range, this is which side it left through. A lopsided count says the period trended.

By days to expiry

A reading taken the day before expiry and one taken a month out are different forecasts, so they are scored separately. The bucket is the number of calendar days between the reading and the expiry.

Reading takenReadingsInsideExpectedRealisedRealised / expected
Next day before expiry72389%±2.22%1.06%48%
2 to 7 days before expiry129579%±5.23%3.35%64%
8 to 14 days before expiry80774%±7.66%5.53%72%

Where options ran richest, and cheapest

Tickers with at least 10 settled readings, ranked by realised move as a share of the expected move. Low means the stock moved much less than its options implied; near or above 100% means the options were fairly priced or cheap. 132 tickers qualify so far.

Richest options

TickerReadingsInsideRealised / expected
AVGO30100%18%
BAC16100%21%
RIVN16100%21%
PLUG16100%23%
JPM16100%24%
KO16100%26%
PURR13100%27%
CDE13100%29%
VALE1694%31%
AAL1694%33%

Cheapest options

TickerReadingsInsideRealised / expected
META3037%152%
USO1833%152%
DELL119%150%
INTC3043%135%
IREN1638%131%
GRAB1656%122%
AMD3047%121%
GME1625%118%
SHOP1669%115%
SBUX1662%114%

How the scoring works

The prefetch loop stores one reading per ticker, expiry and trading day: the last price, the expected move, the lower and upper bound, max pain and the put/call ratio. After an expiry passes, the closing price for that day is fetched once and every stored reading for that expiry is scored against it: was the close inside the bound, and how large was the move from the reading's price to the close.

  • The range is one standard deviation, the same definition used everywhere on the site. It is not the straddle price, which would sit around 0.8 standard deviations and score differently.
  • Realised move is measured from the price at the time of the reading, not from the previous close, so a reading taken mid-session is judged on what happened after it.
  • Only tickers with at least 10 settled readings show a track record on their own page. Two readings say nothing.
  • The window is short and grows daily. A calm month makes options look rich; a shock makes them look cheap. Judge the numbers with the period in mind.
  • Closes come from the same delayed public data as the chains. Nothing here is a trade recommendation.

The same figures are available as JSON at /api/track-record, and per ticker at /api/history/SYMBOL. The formulas are on the methodology page; the guide to implied versus actual moves explains why the gap is usually positive.