The surface and the greeks
How one session's option chain becomes a forward curve, a fitted vol surface, an implied distribution and greek exposures, and what each stage checks.
The question
How does one session's option chain become the vol surface, the distribution and the greek exposures on the site? How closely does each one follow the quotes? Four statistical stages run in a fixed order: the forward curve, the vol surface, the distribution and the greeks. This page describes each stage, the checks it passes and its assumptions.
The method
Forward curve
The forward price for each listed expiry comes from put-call parity at the strike whose delta is nearest 0.50. The inputs are the ORATS call and put values at that strike and the ORATS 5-week rate. The vol surface and the distribution use this curve, so the forward curve runs first.
Quotes for the surface
The vol surface is fitted to the quotes a trader can deal on. At each strike it takes the out-of-the-money side: calls at or above the forward, puts below it. It uses the mid implied volatility of that side, and the ORATS smoothed volatility only when the mid is missing. Quotes with thin open interest, a missing or crossed bid and ask, or a wide spread are dropped. The shortest expiries are dropped too. Each quote is placed by log moneyness against its expiry's forward.
Each quote has a weight. A quote with more vega, a tighter spread in volatility terms and more size or open interest counts for more. A cap stops a few very tight quotes from dominating the fit.
The fit
The method class is SSVI, a parametric smile in total variance, fitted one expiry at a time in sequence. Nearby expiries pool into one standard tenor; an expiry too far from every standard tenor gets its own slice. TSLA, AMD and USO use extended SSVI, which fits a sharper put skew than SSVI allows. The parametric form rules out butterfly arbitrage by a bound on each slice, and calendar arbitrage by a constraint between slices.
The fit is evaluated on a grid of 8 tenors (7, 14, 30, 60, 90, 120, 180 and 365 days) by 16 deltas. Put deltas are negative and call deltas positive. A tenor between two fitted slices takes its shape by interpolation; a tenor outside them is scaled from the nearest one. The ATM IV is the grid value at 0.50 delta, and skew is the 25-delta put less the 25-delta call.
Cell diagnostics
Each surface cell has three diagnostics. The anomaly is the distance of the cell's quotes from the fit, in median-based standard units. Calendar arbitrage checks the raw quotes: total variance must not fall from one expiry to the next at the same moneyness. The fit removes calendar arbitrage by construction, so a cell can show calendar arbitrage in its quotes while its fitted smile is clean. Butterfly arbitrage checks the fitted smile for convexity across delta at each tenor.
Distribution
The implied distribution uses the Breeden-Litzenberger method on call prices. At each listed strike of the expiry, the call price is a Black-76 price on the expiry's forward. Its total variance comes from the fitted surface. The price is discounted at the ORATS 5-week rate, the rate the forward curve uses.
The fitted surface is not used when it is missing, from another trade date, or blocked. The call prices then come from the ORATS smoothed volatility at each strike. Its total variance is smoothed across log moneyness by a spline. The prices are then projected onto a convex curve that falls with strike.
The density is the second difference of the call price across strikes, on the uneven strike grid, scaled to integrate to 1. An expiry whose implied mean misses the forward by more than 1% is skipped. A lognormal curve centred on the forward gives the comparison. Its volatility is the fitted surface volatility at call delta 0.50 for the expiry. Without the fitted surface, it is the ORATS smoothed volatility at the strike whose delta is nearest 0.50.
Greeks and exposures
Gamma, vanna and charm are Black-Scholes derivatives at each strike. The inputs are the ORATS smoothed volatility, the 5-week rate and the dividend yield. The site does not use the vendor's own gamma column.
Exposures assume one positioning: customers are long all open interest, and hedgers are short it. Each strike's gamma exposure, vanna exposure and charm exposure is therefore minus the greek times call plus put open interest. The exposure uses no contract multiplier and no spot scaling. Net exposure sums the strikes of one expiry. Gamma and open interest are never negative, so net gamma exposure is always zero or below.
The hedging flows restate the net exposures as shares a hedger trades to stay delta neutral. Each flow is minus the net exposure times 100 shares per contract, times one move of the underlying input. Each greek has its own move:
- Gamma: one daily standard deviation in dollars, spot times the ATM smoothed volatility over the square root of 252.
- Vanna: one point of implied volatility.
- Charm: one day, the net exposure over 365.
A short-gamma hedger buys into a rise, so a negative net gamma exposure gives a positive gamma flow.
The day-over-day change covers one expiry per symbol: the one nearest 30 days on the day's chain. It is compared with the same expiry in the previous session, strike by strike. A strike missing from either day has no change.
Inputs and lag
Every stage reads the previous session's ORATS option chain and daily summary, from the run that starts at 00:15 UTC, Tuesday to Saturday. The vol surface also uses that run's forward curve file. When the file is missing, it uses spot for each expiry. The distribution uses the same run's forward curve and fitted surface. When an expiry has no forward, it uses spot. Every value has the session's trade date and the lag described in the daily run and the lag rule.
How it was validated
The surface runs five quality checks on every fit. They cover grid coverage, deltas per core tenor, weighted fit error, the SSVI arbitrage bound and the number of expiries that converge. A soft failure publishes the surface marked Degraded. A hard failure writes nothing, and the last published surface remains, marked Blocked. The quality status and grade list each limit.
After each stage, the caller checks the output file against a written contract: column names and types, value ranges and a minimum row count. A health scan then requires at least 30 surface cells and at least one greeks file per symbol, with at least 5 rows per expiry.
Unit tests check the main steps against known answers. They check the parity forward and the arbitrage bound on every slice. They check the calendar check against raw quotes, and that a hard failure blocks the write. They also check that the density recovers a known lognormal on an uneven strike grid.
Limits
The vol surface is a fit to quotes from one closing snapshot and contains no volatility forecast. The distribution is the price distribution implied by option prices in that snapshot.
The 7-day row is always an extrapolation from the nearest fitted expiry, because the shortest expiries are dropped before the fit.
The stages use two different volatilities. The vol surface and the distribution use the site's own fit. The greeks use the ORATS smoothed volatility, so their ATM volatility differs from the surface's ATM IV. A distribution priced without the fitted surface also uses the ORATS smoothed volatility.
The exposure signs depend on the assumed positioning. Hedger positions are not public. When customers are net sellers of options, every sign is reversed.
A strike with no open interest data counts as zero open interest.
A surface cell with no skew, VRP, anomaly or calendar input stores 0 beside an availability flag. The site serves that cell as no value, and the charts show it as no data. A calendar check with no quote to compare is such a cell. The butterfly check has no flag.
Only the vol surface withholds a failed result. A greeks or distribution file that fails its contract is already written, and the run marks the symbol incomplete. The file remains published until the next daily run writes the next session's file over it. The failed session is never computed again.