The core idea
A volatility smile is not a clean curve until you make it one.
Exchange data arrives as discrete strikes, expiries, bid/ask levels, trades, and sometimes stale markets. SVI gives each expiry a stable mathematical shape, so a system can evaluate volatility between listed strikes rather than jumping from quote to quote.
SVI stands for Stochastic Volatility Inspired. In a volatility surface workflow it is usually used as raw SVI: a five-parameter formula for fitting total implied variance across log-moneyness for one expiry slice.
In options, SVI means Stochastic Volatility Inspired.
Raw SVI fits total implied variance, not option price or one quoted IV.
The curve is fit against log-moneyness, k = ln(K / F), for one expiry.
The accepted smile is used to derive ATM IV, risk reversals, flies, and surface diagnostics.
Normalize strikes
Convert strike space into log-moneyness, k = ln(K / F), so every quote is measured relative to the forward.
Fit total variance
Calibrate total implied variance, w = IV^2 x time, rather than raw volatility points.
Publish diagnostics
Ship the fitted smile with quote quality, residuals, stability checks, and surface context.
SVI is the shape of the smile. A production volatility surface is the full pipeline around it: quote cleaning, forward context, calibration, constraints, diagnostics, and live monitoring. Start with the volatility surface guide if you want the broader map first.
Formula
SVI formula and parameters: level, skew, wings, center, and curvature.
Raw SVI fits total implied variance, w(k), against log-moneyness, k = ln(K / F). The result is the expiry slice used for interpolation, risk reversals, flies, and surface monitoring.
Total implied variance
The fitted target, usually IV squared times time to expiry.
Log-moneyness
k = ln(K / F), so strikes are measured relative to the forward.
Strike
The listed option strike being converted into log-moneyness.
Forward
The expiry-matched forward level used as the smile center reference.
Time to expiry
The year fraction used when converting implied volatility into total variance.
Vertical level
Raises or lowers the total-variance smile. In calibration it works with the wing term and must leave the fitted variance non-negative.
Wing scale
Sets the overall steepness of the smile wings. Together with rho, it determines the left and right asymptotic slopes.
Skew rotation
Rotates the smile and redistributes slope between put and call wings. Negative rho usually makes the downside wing steeper.
Horizontal displacement
Moves the center of the smile along the log-moneyness axis. Increasing m shifts the fitted curve to the right.
Body smoothness
Controls the rounding near the smile center. Larger sigma reduces local curvature around the body of the market.
The raw SVI parameters are calibration controls, not desk risk numbers by themselves. Derivasys converts the accepted fit into trader-facing outputs such as ATM volatility, risk reversals, flies, and surface diagnostics.
SVI parameters
How to read SVI parameters a, b, rho, m, and sigma in finance.
Search results often make SVI sound like five independent market indicators. In a live options surface, the parameters are better treated as a compact state vector for one expiry smile. The useful financial outputs are derived from the curve: ATM volatility, wing slopes, 25-delta risk reversals, flies, and fit diagnostics.
a is not the ATM volatility
The parameter a is a vertical offset in total variance space. The ATM variance comes from the full expression evaluated near k = 0, so production dashboards should show derived ATM volatility separately.
b and rho set wing behavior
b controls wing scale while rho redistributes that slope between downside and upside wings. These two parameters are closely related to visible skew and risk-reversal movement.
m follows the smile center
m moves the center of the raw SVI slice along log-moneyness. A large unexplained jump in m is often a sign that the forward, ATM quote set, or strike mapping changed.
sigma controls body smoothness
sigma rounds the center of the smile. If it collapses, the fit can chase one quote near the body instead of representing the expiry slice.
raw_svi = { a, b, rho, m, sigma }
left_wing_slope = b * (1 - rho)
right_wing_slope = b * (1 + rho)
for quote in expiry.cleaned_quotes:
k = log(quote.strike / expiry.forward)
fitted_total_variance = raw_svi_total_variance(k, raw_svi)
residual = quote.total_variance - fitted_total_varianceThe first production question is not whether a solver returned five numbers. It is whether those numbers create a stable total variance curve that can be used for the dashboard, API, and downstream risk nodes.
Keep b non-negative
A negative b in raw SVI reverses the wing scale and should be rejected before publishing a live smile.
Keep rho inside (-1, 1)
rho controls skew rotation. Values too close to -1 or 1 can create extreme one-sided wings and unstable extrapolation.
Keep sigma positive
sigma should stay positive so the body of the smile remains smooth instead of becoming a sharp kink around m.
Check total variance and wing slopes
Parameter bounds are not enough. The fitted curve still needs non-negative total variance, bounded left and right wing slopes, and residual checks against the quote set.
Parameter bounds are a gate, not a guarantee. Derivasys pairs them with quote provenance from order book construction and fit-health checks fromproduction monitoring.
SVI calibration
SVI calibration turns clean option quotes into an expiry-level total variance curve.
In production, SVI calibration is not just curve fitting. The useful output depends on quote cleaning, forward selection, weighting, diagnostics, and whether the new slice is stable enough to publish into the live volatility surface.
Because SVI is fit in total variance space, accepted expiry slices also become inputs to forward volatilitychecks and variance swapanalysis. A clean 30-day and 90-day smile should imply a plausible 30-to-90-day volatility bucket and a defensible variance strike, not a calendar dislocation caused by stale quotes or an unstable fit.
Prepare the slice
Group one expiry, align it to the expiry forward, remove stale or crossed quotes, and keep venue provenance beside each point.
Fit in variance space
Convert implied volatility to total variance, fit raw SVI against log-moneyness, and weight liquid strikes more heavily than thin wings.
Reject bad shapes
Check non-negative variance, wing slope sanity, butterfly-style density diagnostics, and jump size versus the previous accepted fit.
Publish usable state
Emit the fitted smile, quote residuals, ATM level, risk reversals, flies, fixed-tenor nodes, and fit health indicators together.
for expiry in live_surface.expiries:
quotes = clean_quotes(expiry.order_book, expiry.trades)
forward = mark_forward(expiry.futures, expiry.perpetual_basis)
points = to_total_variance(quotes, forward)
fit = solve_raw_svi(points, previous_fit=expiry.last_svi)
checks = run_fit_diagnostics(fit, points, neighbouring_expiries)
if checks.accept:
publish_smile(expiry, fit, checks, risk_nodes(fit))The accepted fit should be published with its residuals, previous-fit movement, and quote provenance. For the systems view behind that loop, read the real-time BTC options surface engineering article.
Calibration objective
SVI calibration objective: minimize weighted total-variance residuals.
The production calibration problem is not just "find parameters that draw a nice curve." The target is a stable total-variance curve that respects current quote quality, previous accepted state, and the checks needed before a slice becomes part of the live surface.
Fit total variance residuals
The optimizer should compare market total variance with SVI total variance at each log-moneyness point, not raw option premium or unscaled IV.
Weight liquid quotes more
Tight, recent, two-sided markets should have more influence than stale, crossed, or far-wing quotes with little executable depth.
Regularize against the previous fit
A live system can penalize unjustified parameter jumps so the surface does not flicker when one weak quote updates.
Publish only after gates pass
Residuals, wing slopes, total-variance positivity, calendar sanity, and quote-through-fit checks should pass before the slice becomes dashboard state.
This objective is why the SVI page belongs beside the arbitrage constraintsand methodology pages. A calibration that wins on least-squares error but fails wing, positivity, or calendar checks should not be promoted to the dashboard.
SVI optimization
SVI optimization is about stable accepted surfaces, not only faster solves.
In a live crypto options surface, SVI optimization, sometimes written SVI optimisation, is the production loop around the solver. The aim is not just to find a low least-squares error. It is to produce a fit that can survive quote noise, fast forward moves, sparse wings, and dashboard publishing gates.
This is where SVI calibration connects back to order book construction andproduction monitoring. Bad inputs should lower quote weights or trigger reuse of the previous fit, not silently become a new risk reversal, fly, or fixed-tenor row.
Warm-start from the last accepted slice
A live SVI optimizer should start near the previous accepted fit when the quote set has only moved modestly. That reduces flicker and makes parameter jumps easier to explain.
Use quote-quality weights
Recent two-sided markets near liquid strikes should carry more weight than stale, crossed, or far-wing marks that are useful for context but weak as calibration anchors.
Retry with safer bounds
If the first solve creates unstable wings or negative total variance, retry with tighter parameter bounds before deciding whether to reuse the previous surface state.
Publish only the accepted state
Optimization diagnostics should include residuals, timing, retry count, reject reason, and previous-fit distance so the dashboard can show why a smile was accepted or held back.
seed = expiry.last_accepted_svi
weights = quote_quality_weights(points)
candidate = solve_raw_svi(
points,
seed=seed,
weights=weights,
bounds=production_bounds(expiry)
)
if violates_surface_gates(candidate):
candidate = solve_raw_svi(points, seed=seed, bounds=tighter_bounds)
publish_or_reuse_previous(candidate, expiry.last_accepted_svi)A useful optimization report should include the objective value, residual distribution, quote weights, retry path, elapsed time, previous-fit distance, and final accept or reject reason. That makes SVI parameters auditable instead of just five numbers in an API payload.
Parameter diagnostics
SVI parameters need slope, residual, and stability checks before the curve is trusted.
A five-parameter fit can look plausible while still being pulled around by a bad wing quote or a sparse strike row. Derivasys treats parameter movement as an operational diagnostic and reviews it beside residuals, quote-through-fit panels, and arbitrage constraint checks.
For a surface-level view, continue to SSVI. Surface SVI uses ATM total variance and a skew function to tie expiry slices together, which makes calendar and forward-variance diagnostics easier to reason about.
Level floor
Track whether the vertical level is drifting because the whole expiry repriced, or because the optimizer is compensating for noisy wings.
Left-wing slope
The downside wing slope is the first place crash-protection demand and bad stale puts often show up in BTC and ETH slices.
Right-wing slope
The call wing slope should move with real upside convexity demand, not because a single far OTM quote dominated the fit.
Body location and smoothness
The center and body-width parameters are useful stability checks when the forward moves or the ATM quote set changes.
Worked example
How a BTC option quote becomes one point in the fit.
Suppose a 30-day BTC forward is 80,000 and a 72,000 strike is marked around 54% implied volatility. SVI does not fit that as a raw strike-volatility pair. It first puts the quote on the same coordinate system as the rest of the expiry.
Pass near liquid mids without overreacting to outliers.
Price intermediate strikes and derive 25-delta RR/fly metrics.
Screenshots
Fitted smiles, risk nodes, and diagnostics stay visible together.
The dashboard is designed around the reality that the formula is only half the problem. Traders need to see the fit, the derived risk nodes, and whether the surface is behaving across tenors.



Engineering deep dive
Engineering a real-time BTC options volatility surface.
Sean Gordon's LinkedIn article gives the implementation view: live BTC options data, surface construction, SVI fitting, and the production details behind real-time implied volatility analytics.
Read the engineering articleProduction checks
The guardrails matter as much as the curve.
A visually smooth smile can still be wrong. Real-time crypto surfaces need checks that separate genuine market structure from stale quotes, one-off prints, and unstable parameter jumps.
Quote quality
Filter stale, crossed, or structurally wide markets before they dominate a fit.
Butterfly sanity
Check local curve shapes that can imply impossible density inside one expiry slice.
Calendar sanity
Watch whether total variance behaves consistently across neighboring expiries.
Forward variance sanity
Use accepted expiry slices to check whether the forward volatility implied between tenors is stable and non-negative.
Parameter stability
Flag jumps where the fitted smile moves more than the quote set justifies.
Calendar checks connect directly to the forward volatilityguide: once each expiry smile is accepted, the term structure should still imply coherent forward variance between neighboring maturities.
Derivasys SVI API payload
An SVI response should include parameters, diagnostics, and derived risk nodes.
The five raw SVI parameters are only useful when the consumer can audit how the slice was fit. Derivasys-style payloads keep the raw SVI formula state beside quote support, residuals, accept/reject status, and the risk nodes that came from the curve.
The five-parameter slice state: a, b, rho, m, and sigma.
Residual, accepted quote count, elapsed solve time, and previous-fit movement.
ATM volatility, 25-delta risk reversal, 25-delta fly, and wing slopes derived from the accepted curve.
Whether the slice was accepted, rejected, reused, or published with a degraded-state label.
{
"type": "svi_slice_snapshot",
"underlying": "BTC",
"expiry": "2026-09-25",
"forward": 103250.4,
"coordinate": "log_moneyness",
"raw_svi": {
"a": 0.021,
"b": 0.184,
"rho": -0.42,
"m": -0.03,
"sigma": 0.27
},
"fit_quality": {
"accepted_quotes": 42,
"weighted_rmse_total_variance": 0.00019,
"max_abs_residual_vol_points": 1.8,
"elapsed_ms": 36,
"previous_fit_distance": 0.014
},
"derived_nodes": {
"atm_iv": 0.538,
"rr_25d_call_minus_put": -0.13,
"fly_25d": 0.042,
"left_wing_slope": 0.261,
"right_wing_slope": 0.107
},
"publish_state": "accepted"
}API access
SVI surface data is available for testing by request.
Derivasys can expose fitted surfaces through WebSocket streams and REST endpoints for approved testers. The API boundary covers live snapshots, incremental patches, smile levels, diagnostics, risk nodes, and fixed-tenor rows.
- Live surface snapshots and sparse WebSocket patches
- Current-state REST responses for smiles, diagnostics, and risk nodes
- Fixed-tenor rows alongside native expiry views
- BTC and ETH surfaces, with additional altcoin feeds under testing
FAQ
Common questions about SVI.
What is SVI in finance?
In finance, SVI means Stochastic Volatility Inspired. It is an options volatility smile parameterization used to fit implied total variance across strikes for one expiry before those slices are assembled into a volatility surface.
What are the SVI parameters?
Raw SVI has five parameters: a for level, b for wing scale, rho for skew rotation, m for horizontal center, and sigma for body smoothness. The derived ATM level, risk reversals, and flies should be read from the fitted curve, not from one parameter alone.
What are common SVI parameter bounds?
Production raw SVI fits usually keep b non-negative, rho between -1 and 1, sigma positive, total variance non-negative, and wing slopes within configured limits before the smile is published.
Is SVI calibrated to prices, implied volatility, or variance?
A practical SVI workflow converts option marks into implied volatility, then into total implied variance. The raw SVI curve is fit in total-variance space against log-moneyness.
How is SVI calibrated?
A production SVI calibration groups one expiry, converts quotes into log-moneyness and total variance, solves for a smooth raw SVI fit, then accepts the result only after quote-quality, residual, and arbitrage-style diagnostics pass.
What is the SVI calibration objective?
A practical SVI calibration objective minimizes weighted residuals between market total variance and the SVI total-variance curve, with quote-quality weights and stability checks around the previous accepted fit.
How do you optimize SVI calibration in production?
Production SVI optimization usually warm-starts from the previous accepted slice, weights quotes by freshness and liquidity, retries with safer bounds when diagnostics fail, and publishes only after residual, wing, positivity, and stability gates pass.
What should an SVI API response include?
An SVI API response should include the raw SVI parameters, expiry forward, coordinate convention, fit residuals, quote count, accept or reject state, and derived nodes such as ATM IV, 25-delta risk reversal, and 25-delta fly.
What does SVI mean in options volatility?
SVI stands for Stochastic Volatility Inspired. It is a parametric model for fitting implied total variance as a function of log-moneyness.
What is an SVI value or SVI number?
In options volatility, SVI is not one standalone number. Raw SVI is a five-parameter curve for one expiry. The useful values are derived from that accepted curve, such as ATM volatility, wing slopes, 25-delta risk reversals, flies, residuals, and no-arbitrage diagnostics.
Is SVI a pricing model?
No. SVI describes the volatility smile. Pricing still needs forwards, option conventions, discounting assumptions, and a clean calibration workflow.
Why use SVI instead of interpolation?
Interpolation connects known quotes. SVI adds a compact shape with level, skew, wing, center, and curvature controls, which makes monitoring and risk extraction cleaner.
Does SVI work for BTC and ETH options?
Yes, provided the surrounding data pipeline is robust. BTC and ETH options often have uneven strike liquidity and visible skew, which is where a stable smile fit is useful.
How does SVI connect to forward volatility?
SVI fits each expiry in total variance space. Once adjacent expiry slices are accepted, their total variance levels can be compared to estimate the forward volatility implied between those expiries.
References
Primary source and related Derivasys pages.
The guide is written for practitioners, but the model is grounded in SVI literature and the Derivasys production workflow.
- Derivasys volatility surface guide
- Derivasys implied volatility guide
- Derivasys volatility smile guide
- Derivasys forward volatility guide
- Derivasys variance swaps guide
- Derivasys SSVI guide
- Derivasys local volatility guide
- Derivasys option Greeks guide
- Derivasys production monitoring article
- Derivasys order book construction article
- Gatheral and Jacquier, Arbitrage-free SVI volatility surfaces
- Derivasys volatility surface methodology
- Derivasys arbitrage constraints
- Sean Gordon, engineering a real-time BTC options volatility surface
Next guide
SSVI, then sticky strike vs sticky delta.
The next model step after raw SVI is SSVI, which ties expiry slices into a surface-level parameterization. For trader-facing skew, continue to the risk reversal guide; for scenario conventions, read sticky strike vs sticky delta.
Read the SSVI guide