Ilia Duda

Bitcoin implied volatility, live from Deribit

Thirty-day at-the-money vol is 35.3%. 25‑delta puts trade 3.8 vol points over calls. 11 raw-quote checks fail at mid, and none are tradeable at quoted prices.

Deribit quotes at , refitted every five minutes.

Fitted with eSSVI. It had the lower error on held-out quotes over the last 12 snapshots: 1.37 vol points for eSSVI against 1.70 for SSVI.

Fitted surface, low to high volQuote (mid of bid and ask)Breaks static arbitrage

Drag to turn it, or focus it and use the arrow keys. 329 of 886 quotes passed the cleaning rules and were fitted; the few more than 2.6 standard deviations out are left off this view.

What this is

Every five minutes a worker pulls every bitcoin and ether option listed on Deribit, drops quotes it cannot trust, solves implied volatility from the bids and asks, and fits two arbitrage-free surface models to them: SSVI and extended SSVI. It checks the raw quotes for static arbitrage, keeps an archive, and writes a report of the day at 00:00 UTC. This page draws the result and explains it. On quotes held out of the fit, the extended model’s error is 1.37 vol points against 1.70 for SSVI over the last 12 snapshots.

What moved

24 hours to 00:00 UTC, 20 October 2026.

  • This is the first daily report, so there is no earlier day to compare with. At midnight, thirty-day at-the-money vol was 35.6% and the 30-day 25-delta risk reversal −3.6; seven-day vol was 32.0%.
  • Raw quotes failed a static-arbitrage check at mid in 62 of 62 snapshots (575 failures in all, 574 butterflies and 1 vertical spread); none of the failures were tradeable at quoted prices.
  • Median fit error was 1.07 vol points; the worst expiry at midnight was 25 Dec 2026 at 3.61.
  • 62 of 288 five-minute snapshots arrived; the figures above use only those.

From the daily report for 19 October 2026, fitted with SSVI. All reports

How the surface is built

Seven steps from raw quotes to a model you can price with. The figure redraws from the same live snapshot as you read.

1 of 7: Implied volatility

27 Nov 2026 expiry, 47 quotes. Bars run from bid to ask; dots are mids; the solid line is the eSSVI fit, the dashed line SSVI.
Quotes for the 27 Nov 2026 expiry
InstrumentBid IV %Ask IV %Mid IV %
BTC-27NOV26-58000-P58.2359.4558.84
BTC-27NOV26-60000-P54.6456.2055.42
BTC-27NOV26-62000-P51.8653.5852.72
BTC-27NOV26-64000-P49.4850.5450.01
BTC-27NOV26-66000-P47.2047.7847.49
BTC-27NOV26-67000-P46.1146.6346.37
BTC-27NOV26-68000-P45.0845.5545.32
BTC-27NOV26-69000-P43.4444.5143.98
BTC-27NOV26-70000-P42.9043.8543.37
BTC-27NOV26-71000-P42.0742.9242.49
BTC-27NOV26-72000-P40.9941.7741.38
BTC-27NOV26-73000-P39.7141.1440.43
BTC-27NOV26-74000-P39.5740.2239.90
BTC-27NOV26-75000-P39.0539.6439.34
BTC-27NOV26-76000-P38.2038.7538.48
BTC-27NOV26-77000-P37.5938.0937.84
BTC-27NOV26-78000-P37.1237.6037.36
BTC-27NOV26-79000-P36.7537.2036.98
BTC-27NOV26-80000-P36.4536.8736.66
BTC-27NOV26-81000-P35.7636.5936.17
BTC-27NOV26-82000-P35.5236.3235.92
BTC-27NOV26-83000-P35.2836.0635.67
BTC-27NOV26-84000-C34.7535.5435.15
BTC-27NOV26-85000-C34.4935.2834.89
BTC-27NOV26-86000-C34.6335.0434.84
BTC-27NOV26-87000-C34.3935.2134.80
BTC-27NOV26-88000-C34.1635.0234.59
BTC-27NOV26-89000-C33.9834.8834.43
BTC-27NOV26-90000-C33.8834.8434.36
BTC-27NOV26-91000-C33.8934.9234.40
BTC-27NOV26-92000-C34.0935.2034.64
BTC-27NOV26-93000-C33.9635.1734.56
BTC-27NOV26-94000-C34.1135.4334.77
BTC-27NOV26-95000-C33.9335.4034.67
BTC-27NOV26-96000-C34.2035.8135.00
BTC-27NOV26-97000-C35.1035.9835.54
BTC-27NOV26-98000-C35.2835.8735.58
BTC-27NOV26-99000-C35.6336.0735.85
BTC-27NOV26-100000-C36.0136.5036.25
BTC-27NOV26-102000-C37.0437.3437.19
BTC-27NOV26-104000-C37.4038.5037.95
BTC-27NOV26-105000-C37.8938.7038.30
BTC-27NOV26-106000-C38.2439.5838.91
BTC-27NOV26-108000-C39.0540.6739.86
BTC-27NOV26-110000-C40.0341.3540.69
BTC-27NOV26-112000-C40.6042.9241.76
BTC-27NOV26-115000-C42.6744.5743.62
  1. 1Implied volatility

    An option’s price says how much movement the market is paying for. Implied volatility is the volatility that makes the Black-76 formula return that price, using Deribit’s own forward for the expiry. Each quote gives two numbers, one from the bid and one from the ask. For the 27 Nov 2026 bitcoin expiry, 47 quotes passed the cleaning rules.

  2. 2Total variance

    To compare expiries, square the vol and multiply by time to expiry: total variance w = σ²T. Plot it against log-moneyness k = ln(K/F). A later expiry has to sit above an earlier one at every k. If it did not, buying the later option and selling the earlier one would cost less than nothing.

  3. 3The fit

    SSVI (Gatheral and Jacquier, 2014) describes every expiry with its at-the-money total variance θ, plus three shared numbers: ρ for skew, and η and γ for how curvature changes with θ. Extended SSVI (Hendriks and Martini, 2019) gives each expiry its own skew ρ and slope ψ, under conditions that keep expiries from crossing. The fit lies inside the bid-ask spread for a median 59% of quotes with eSSVI and 47% with SSVI. On quotes held out of the fit, eSSVI’s error is 1.37 vol points and SSVI’s 1.70, so the page shows eSSVI unless you pick the other. eSSVI error by expiry runs from 0.3 vol points (24 Sep 2027) to 3.1 (25 Dec 2026).

  4. 4Static arbitrage

    A surface has static arbitrage if some fixed portfolio of options costs less than nothing. Both fits rule it out by construction: θ never falls with expiry, later expiries never cross earlier ones, and each slice meets the bounds that keep Durrleman’s g(k) above zero. The lowest g(k) on the eSSVI surface is 0.256. Raw quotes get no such guarantee. Right now 11 raw-quote checks fail at mid prices and 0 at prices you could actually trade.

  5. 5Skew

    The 25-delta risk reversal is the vol of a 25-delta call minus that of a 25-delta put. Negative means puts cost more. It is negative at 9 of 9 expiries. The butterfly measures how far the wings sit above the money: 1.2 vol points at 27 Nov 2026.

  6. 6Term structure

    At-the-money vol by expiry runs from 28.9% for 23 Oct 2026 to 38.8% for 24 Sep 2027. When near expiries trade above far ones the curve is inverted, which usually happens around stress.

  7. 7Local volatility

    Dupire’s formula turns the implied surface into the volatility the price would need at each level and date for every option to be priced consistently. It needs smooth first and second derivatives, which is one reason to fit a model rather than interpolate quotes.

Bitcoin against ether

At 30 days, ether’s at-the-money vol is 48.9% against bitcoin’s 35.3%, 13.6 points higher. The 25-delta risk reversal is −2.6 for ether and −3.8 for bitcoin, and the butterfly 1.9 against 1.1. Both are read from the eSSVI fits at 23:49 UTC.

BitcoinEtherDays to expiry on a square-root scale. Each point is one listed expiry.
Bitcoin and ether by expiry
CurrencyExpiryDaysATM vol %25d RR25d BF
BTC23 Oct 2026228.86−1.371.38
BTC24 Oct 2026329.69−1.741.02
BTC30 Oct 2026930.93−3.291.35
BTC6 Nov 20261635.51−3.851.05
BTC27 Nov 20263735.08−3.871.15
BTC25 Dec 20266535.62−4.081.38
BTC26 Mar 202715637.27−2.391.24
BTC25 Jun 202724738.40−2.081.06
BTC24 Sep 202733838.82−1.530.90
ETH23 Oct 2026240.31−3.653.45
ETH24 Oct 2026342.44−3.392.96
ETH30 Oct 2026945.44−4.653.16
ETH6 Nov 20261648.97−3.282.12
ETH27 Nov 20263748.82−2.431.96
ETH25 Dec 20266549.66−1.971.83
ETH26 Mar 202715651.71−1.521.65
ETH25 Jun 202724752.71−0.681.46
ETH24 Sep 202733853.380.321.33

Implied against realized

Implied volatility is what options charge for movement; realized volatility is how much the price actually moved. At 00:00 UTC on 20 October 2026, DVOL, Deribit’s 30-day implied volatility index for bitcoin, was 37.3, and the index had moved at 24.4 over the previous 30 days: implied was 12.9 points above realized. Our own 30-day at-the-money vol, from the eSSVI fit, is 35.3 at 23:49 UTC; DVOL runs a little higher because it also prices the wings.

The fair comparison is with what came next. From 21 October 2025 to 20 September 2026, DVOL was above the realized volatility of the following 30 days on 89% of 335 days, by a median of 11.9 points. That gap is the volatility risk premium: what option sellers were paid, on average, for carrying the risk.

DVOL and realized volatility for BTC, last 30 days
DateDVOLRealized 30-dayGap to the following 30 days
2026-09-2135.727.2not yet known
2026-09-2238.129.8not yet known
2026-09-2337.429.8not yet known
2026-09-2435.829.6not yet known
2026-09-253628.8not yet known
2026-09-2634.628.7not yet known
2026-09-2734.928.5not yet known
2026-09-2836.227.7not yet known
2026-09-2935.928.1not yet known
2026-09-3035.128.2not yet known
2026-10-0135.228.1not yet known
2026-10-0236.427.9not yet known
2026-10-0334.828.9not yet known
2026-10-0435.426.6not yet known
2026-10-0536.525.9not yet known
2026-10-0636.126not yet known
2026-10-0736.126.1not yet known
2026-10-0836.826.6not yet known
2026-10-0937.726.9not yet known
2026-10-1036.426.9not yet known
2026-10-113726.6not yet known
2026-10-1237.326.1not yet known
2026-10-1337.226.4not yet known
2026-10-1438.226.6not yet known
2026-10-1539.126.9not yet known
2026-10-1638.826.3not yet known
2026-10-1737.726.3not yet known
2026-10-1837.926.3not yet known
2026-10-1938.823.8not yet known
2026-10-2037.324.4not yet known

Realized volatility is computed here from Deribit’s index price every six hours (annualized root mean square of log returns over 30 days). Deribit’s own published figure, dashed, covers the last 16 days; its window is not documented. Data from Deribit’s public API, refreshed hourly.

Local volatility

Implied volatility is one number per option. Local volatility is the volatility the price would need at each level and date for a single model to reprice every option on the surface at once (Dupire, 1994). It is read off the fitted surface as σ²loc = ∂w/∂T ÷ g(k): how fast total variance grows with maturity, divided by the curvature term that keeps the implied density positive.

For bitcoin, from the eSSVI fit, it runs from 27.6% to 75.5%. The grid covers log-moneyness from −0.8 to 0.8 (strikes from 45% to 223% of the forward) and maturities from the first to the last fitted expiry, 2.3 to 338 days. 440 of 792 cells are blank: they lie more than three at-the-money standard deviations from the money, where the surface is extrapolation rather than fitted quotes.

Dupire local volatility from the eSSVI fit, 33 strikes by 24 maturities; days on a square-root scale. Lighter is higher.
Local volatility for bitcoin, at-the-money by maturity
DaysLocal vol at the money, %
2.327.6
2.929.5
3.629.1
4.528.4
5.628.2
6.928.8
8.630.9
10.636.6
13.240.0
16.435.6
20.333.5
25.331.8
31.431.5
38.933.1
48.333.5
60.033.9
74.534.4
92.435.1
114.835.6
142.536.1
176.837.1
219.537.7
272.537.3
338.337.3

History

Move the slider to morph the surface at the top of the page to an earlier snapshot. 29 saved snapshots: daily at 00:00 UTC, and hourly for the last 48 hours.

Live30-day ATM vol 35.3%

Methods

Data

Every five minutes a worker calls Deribit’s public API, with no account or key: get_book_summary_by_currency for every BTC and ETH option, and get_instruments for strikes and expiry times, plus ten ticker calls for the cross-check below. That is twelve requests per currency per run, well under Deribit’s public rate limits. Raw quotes are archived as Parquet, and a summary is written each day at 00:00 UTC.

Implied vols are solved from bid and ask prices with Black-76 on Deribit’s forward for each expiry, at zero rates, which is Deribit’s own convention. As a check, each run solves a random sample of quotes against Deribit’s published bid and ask IVs. In the latest BTC run the median gap was 0.003 vol points over 20 comparisons.

Cleaning

Each quote gets the first reason that applies, in this order. Counts are from the latest snapshot.

RuleBTCETH
Expiry less than 2 days away110120
In the money (the fit uses out-of-the-money options only)388323
No bid2410
No ask00
Bid at or above ask00
Bid at or below intrinsic value00
Implied vol could not be solved00
Bid/ask spread above 15 vol points or 50% of mid3521
Kept and fitted329 of 886292 of 766

Model

SSVI (Gatheral and Jacquier, 2014) gives total implied variance at log-moneyness k as

w(k, θ) = θ/2 · [1 + ρφk + √((φk + ρ)² + 1 − ρ²)],  φ(θ) = η θ−γ(1 + θ)γ−1

with one θ per expiry and ρ, η, γ shared. The SSVI fit keeps θ from falling with expiry (no calendar arbitrage) and imposes η(1 + |ρ|) ≤ 2 with 0 < γ ≤ ½, which rules out butterfly arbitrage. After each fit the surface is checked on a grid: the lowest Durrleman g(k) in the latest BTC fit is 0.258. Errors are measured in implied vol against the bid-ask mid, never against Deribit’s mark IV, which is itself a model.

Raw quotes are checked separately, for vertical spreads, butterflies and calendar spreads. Each check runs at mid prices and again at prices you could trade (buy at the ask, sell at the bid). Risk reversals and butterflies use forward delta, not Deribit’s premium-adjusted delta. Local vol uses Dupire’s formula on the fitted surface.

Two models

Extended SSVI (Hendriks and Martini, 2019) keeps the SSVI form for each expiry but gives each its own skew ρ and slope ψ = θφ. The fit keeps θ and ψ from falling with expiry and holds |Δ(ρψ)| ≤ Δψ between neighbouring expiries, so neither wing’s slope falls with maturity and expiries do not cross; each expiry also meets the butterfly bounds ψ(1 + |ρ|) < 4 and ψ2(1 + |ρ|) ≤ 4θ. Between expiries ψ and ρψ are interpolated linearly in θ, and every fit is checked on a grid.

eSSVI contains SSVI, so on the quotes it is fitted to it can only do as well or better. To choose between them fairly, both are refitted every five minutes with every fifth quote held out, and the page defaults to the model with the lower median error on those held-out quotes over the last hour. BTC: eSSVI 1.37, SSVI 1.70 vol points over 12 snapshots. ETH: eSSVI 1.47, SSVI 1.93 vol points over 12 snapshots.

BTC, fit error by expiry (RMSE, vol points) and share of quotes inside bid-ask
ExpiryRMSE SSVIRMSE eSSVIinside SSVIinside eSSVI
23 Oct ’262.251.7453%76%
24 Oct ’260.730.5871%95%
30 Oct ’262.812.3047%47%
6 Nov ’260.600.4279%95%
27 Nov ’261.331.1445%55%
25 Dec ’263.893.1129%29%
26 Mar ’271.361.4331%33%
25 Jun ’270.730.9143%59%
24 Sep ’270.350.2957%88%
ETH, fit error by expiry (RMSE, vol points) and share of quotes inside bid-ask
ExpiryRMSE SSVIRMSE eSSVIinside SSVIinside eSSVI
23 Oct ’263.221.7148%52%
24 Oct ’262.602.0964%68%
30 Oct ’265.213.7438%34%
6 Nov ’261.071.2433%73%
27 Nov ’262.002.6425%53%
25 Dec ’261.131.6429%47%
26 Mar ’271.171.5819%62%
25 Jun ’271.071.1926%74%
24 Sep ’270.940.6831%97%

Raw-quote failures now

The largest static-arbitrage failures in the latest snapshot, in USD per option. “Mid” means the quotes are inconsistent at mid prices; “tradeable” means the inequality is broken even buying at the ask and selling at the bid, before fees.

BTC: 5 largest of 11
CheckLevelInstrumentsUSD
butterflymid26MAR27 55000 P, 26MAR27 56000 P, 26MAR27 58000 P14
butterflymid26MAR27 52000 P, 26MAR27 54000 P, 26MAR27 55000 P14
butterflymid25DEC26 62000 P, 25DEC26 64000 P, 25DEC26 65000 P14
butterflymid25JUN27 104000 C, 25JUN27 105000 C, 25JUN27 106000 C11
butterflymid26MAR27 94000 C, 26MAR27 95000 C, 26MAR27 96000 C11
ETH: 1 largest of 1
CheckLevelInstrumentsUSD
butterflymid24SEP27 3100 C, 24SEP27 3200 C, 24SEP27 3300 C0

Tests

Black-76 prices and Greeks are checked against QuantLib and against finite differences. SSVI and extended SSVI are fitted to synthetic surfaces with known parameters and must recover them, and every no-arbitrage condition must hold after fitting randomly generated surfaces. The arbitrage checks are fed deliberately broken quotes (concave prices, crossing expiries, a slice with negative density) and must catch each one. The browser’s SSVI is checked against the Python worker’s, and the page is tested in a browser for console errors, accessibility, keyboard use, reduced motion and the fallback without WebGL. The tests run on every change.

Limitations

  • Deribit quotes only. This is a description of one venue’s order book, not a trading signal.
  • SSVI’s single ρ cannot follow skew that changes with maturity; eSSVI can. Neither reproduces every quote: the worst eSSVI expiry in the latest BTC snapshot is 25 Dec 2026 at 3.11 vol points, and per-expiry errors for both models are published in every snapshot.
  • “Tradeable at quoted prices” ignores fees, margin and size. A flagged quote is an inconsistency, not free money.
  • Quotes are a snapshot every five minutes; anything between snapshots is not seen.

Data to download

Source

The worker (Python) and this page (Next.js) are open source under the MIT licence, with tests, at github.com/dudailia/vol-surface-live. Daily reports are in the report archive. Built independently from public data. Latest snapshot 23:49 UTC, 20 October 2026.