intermediate
+200 XP

SVI Pricing Model

Master the SVI volatility smile — understand the five parameters, compute implied variance, derive binary option prices via d2 and the normal CDF, and implement range and directional pricing.

Lesson Syllabus

Understanding the Volatility Smile
📈

What is Implied Volatility?

Implied volatility (IV) measures how much the market expects an asset's price to move before expiry. It is not a single number — IV varies by strike price, forming a curve called the "volatility smile." Strikes far from the forward price (deep ITM or OTM) tend to have higher IV, creating the characteristic U-shape. For binary options, IV at each strike determines the fair price: higher IV means more uncertainty, which pushes prices closer to 0.50.

📐

The SVI Parameterization

The SVI (Stochastic Volatility Inspired) model defines implied total variance as a function of log-moneyness k using five parameters. These parameters are calibrated by Block Scholes and published on-chain via the OracleSVI object. All values are encoded with FLOAT_SCALING (1e9).

🎛️

Parameter Effects on the Smile

Each SVI parameter has a distinct visual effect on the volatility smile curve. Understanding these effects helps you interpret oracle data and debug pricing issues.

Computing Binary Option Prices
🧮

The SVI Variance Function

The core SVI formula computes total implied variance w(k) from log-moneyness k. This is the heart of the pricing model — every binary option price starts here.

📉

From Variance to Price: d2 and N(d2)

Once we have total variance w(k), the binary option price comes from the Black-Scholes framework. The key quantity is d2 — a standardized measure of how likely the asset is to finish above the strike. The price is simply the normal CDF evaluated at d2.

🔢

Normal CDF Approximation

Since there is no closed-form for the normal CDF, DeepBook uses the Abramowitz & Stegun approximation of the error function (erf). This polynomial approximation is accurate to ~1e-7 and efficient to compute both on-chain and off-chain.

Price Interpretation
🎯

Binary Price as Probability

A binary option price is a direct probability estimate. Understanding how to interpret prices — and how UP, DOWN, and RANGE prices relate to each other — is essential for building trading interfaces and risk displays.

🧮

Full computeSviPrice Implementation

Here is the complete computeSviPrice function that the YOSUKU codebase uses. It takes SVI parameters (already decoded from FLOAT_SCALING), a strike, and a forward price, and returns the binary UP price as a number between 0 and 1.

📊

Range Price Calculation

A RANGE binary option pays 1 if the settlement price falls between a lower and higher strike. Its price is computed by subtracting two UP prices — the probability of being above the lower strike minus the probability of being above the higher strike.