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.
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
| Instrument | Bid IV % | Ask IV % | Mid IV % |
|---|---|---|---|
| BTC-27NOV26-58000-P | 58.23 | 59.45 | 58.84 |
| BTC-27NOV26-60000-P | 54.64 | 56.20 | 55.42 |
| BTC-27NOV26-62000-P | 51.86 | 53.58 | 52.72 |
| BTC-27NOV26-64000-P | 49.48 | 50.54 | 50.01 |
| BTC-27NOV26-66000-P | 47.20 | 47.78 | 47.49 |
| BTC-27NOV26-67000-P | 46.11 | 46.63 | 46.37 |
| BTC-27NOV26-68000-P | 45.08 | 45.55 | 45.32 |
| BTC-27NOV26-69000-P | 43.44 | 44.51 | 43.98 |
| BTC-27NOV26-70000-P | 42.90 | 43.85 | 43.37 |
| BTC-27NOV26-71000-P | 42.07 | 42.92 | 42.49 |
| BTC-27NOV26-72000-P | 40.99 | 41.77 | 41.38 |
| BTC-27NOV26-73000-P | 39.71 | 41.14 | 40.43 |
| BTC-27NOV26-74000-P | 39.57 | 40.22 | 39.90 |
| BTC-27NOV26-75000-P | 39.05 | 39.64 | 39.34 |
| BTC-27NOV26-76000-P | 38.20 | 38.75 | 38.48 |
| BTC-27NOV26-77000-P | 37.59 | 38.09 | 37.84 |
| BTC-27NOV26-78000-P | 37.12 | 37.60 | 37.36 |
| BTC-27NOV26-79000-P | 36.75 | 37.20 | 36.98 |
| BTC-27NOV26-80000-P | 36.45 | 36.87 | 36.66 |
| BTC-27NOV26-81000-P | 35.76 | 36.59 | 36.17 |
| BTC-27NOV26-82000-P | 35.52 | 36.32 | 35.92 |
| BTC-27NOV26-83000-P | 35.28 | 36.06 | 35.67 |
| BTC-27NOV26-84000-C | 34.75 | 35.54 | 35.15 |
| BTC-27NOV26-85000-C | 34.49 | 35.28 | 34.89 |
| BTC-27NOV26-86000-C | 34.63 | 35.04 | 34.84 |
| BTC-27NOV26-87000-C | 34.39 | 35.21 | 34.80 |
| BTC-27NOV26-88000-C | 34.16 | 35.02 | 34.59 |
| BTC-27NOV26-89000-C | 33.98 | 34.88 | 34.43 |
| BTC-27NOV26-90000-C | 33.88 | 34.84 | 34.36 |
| BTC-27NOV26-91000-C | 33.89 | 34.92 | 34.40 |
| BTC-27NOV26-92000-C | 34.09 | 35.20 | 34.64 |
| BTC-27NOV26-93000-C | 33.96 | 35.17 | 34.56 |
| BTC-27NOV26-94000-C | 34.11 | 35.43 | 34.77 |
| BTC-27NOV26-95000-C | 33.93 | 35.40 | 34.67 |
| BTC-27NOV26-96000-C | 34.20 | 35.81 | 35.00 |
| BTC-27NOV26-97000-C | 35.10 | 35.98 | 35.54 |
| BTC-27NOV26-98000-C | 35.28 | 35.87 | 35.58 |
| BTC-27NOV26-99000-C | 35.63 | 36.07 | 35.85 |
| BTC-27NOV26-100000-C | 36.01 | 36.50 | 36.25 |
| BTC-27NOV26-102000-C | 37.04 | 37.34 | 37.19 |
| BTC-27NOV26-104000-C | 37.40 | 38.50 | 37.95 |
| BTC-27NOV26-105000-C | 37.89 | 38.70 | 38.30 |
| BTC-27NOV26-106000-C | 38.24 | 39.58 | 38.91 |
| BTC-27NOV26-108000-C | 39.05 | 40.67 | 39.86 |
| BTC-27NOV26-110000-C | 40.03 | 41.35 | 40.69 |
| BTC-27NOV26-112000-C | 40.60 | 42.92 | 41.76 |
| BTC-27NOV26-115000-C | 42.67 | 44.57 | 43.62 |
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.
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.
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).
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.
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.
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.
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.
| Currency | Expiry | Days | ATM vol % | 25d RR | 25d BF |
|---|---|---|---|---|---|
| BTC | 23 Oct 2026 | 2 | 28.86 | −1.37 | 1.38 |
| BTC | 24 Oct 2026 | 3 | 29.69 | −1.74 | 1.02 |
| BTC | 30 Oct 2026 | 9 | 30.93 | −3.29 | 1.35 |
| BTC | 6 Nov 2026 | 16 | 35.51 | −3.85 | 1.05 |
| BTC | 27 Nov 2026 | 37 | 35.08 | −3.87 | 1.15 |
| BTC | 25 Dec 2026 | 65 | 35.62 | −4.08 | 1.38 |
| BTC | 26 Mar 2027 | 156 | 37.27 | −2.39 | 1.24 |
| BTC | 25 Jun 2027 | 247 | 38.40 | −2.08 | 1.06 |
| BTC | 24 Sep 2027 | 338 | 38.82 | −1.53 | 0.90 |
| ETH | 23 Oct 2026 | 2 | 40.31 | −3.65 | 3.45 |
| ETH | 24 Oct 2026 | 3 | 42.44 | −3.39 | 2.96 |
| ETH | 30 Oct 2026 | 9 | 45.44 | −4.65 | 3.16 |
| ETH | 6 Nov 2026 | 16 | 48.97 | −3.28 | 2.12 |
| ETH | 27 Nov 2026 | 37 | 48.82 | −2.43 | 1.96 |
| ETH | 25 Dec 2026 | 65 | 49.66 | −1.97 | 1.83 |
| ETH | 26 Mar 2027 | 156 | 51.71 | −1.52 | 1.65 |
| ETH | 25 Jun 2027 | 247 | 52.71 | −0.68 | 1.46 |
| ETH | 24 Sep 2027 | 338 | 53.38 | 0.32 | 1.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.
| Date | DVOL | Realized 30-day | Gap to the following 30 days |
|---|---|---|---|
| 2026-09-21 | 35.7 | 27.2 | not yet known |
| 2026-09-22 | 38.1 | 29.8 | not yet known |
| 2026-09-23 | 37.4 | 29.8 | not yet known |
| 2026-09-24 | 35.8 | 29.6 | not yet known |
| 2026-09-25 | 36 | 28.8 | not yet known |
| 2026-09-26 | 34.6 | 28.7 | not yet known |
| 2026-09-27 | 34.9 | 28.5 | not yet known |
| 2026-09-28 | 36.2 | 27.7 | not yet known |
| 2026-09-29 | 35.9 | 28.1 | not yet known |
| 2026-09-30 | 35.1 | 28.2 | not yet known |
| 2026-10-01 | 35.2 | 28.1 | not yet known |
| 2026-10-02 | 36.4 | 27.9 | not yet known |
| 2026-10-03 | 34.8 | 28.9 | not yet known |
| 2026-10-04 | 35.4 | 26.6 | not yet known |
| 2026-10-05 | 36.5 | 25.9 | not yet known |
| 2026-10-06 | 36.1 | 26 | not yet known |
| 2026-10-07 | 36.1 | 26.1 | not yet known |
| 2026-10-08 | 36.8 | 26.6 | not yet known |
| 2026-10-09 | 37.7 | 26.9 | not yet known |
| 2026-10-10 | 36.4 | 26.9 | not yet known |
| 2026-10-11 | 37 | 26.6 | not yet known |
| 2026-10-12 | 37.3 | 26.1 | not yet known |
| 2026-10-13 | 37.2 | 26.4 | not yet known |
| 2026-10-14 | 38.2 | 26.6 | not yet known |
| 2026-10-15 | 39.1 | 26.9 | not yet known |
| 2026-10-16 | 38.8 | 26.3 | not yet known |
| 2026-10-17 | 37.7 | 26.3 | not yet known |
| 2026-10-18 | 37.9 | 26.3 | not yet known |
| 2026-10-19 | 38.8 | 23.8 | not yet known |
| 2026-10-20 | 37.3 | 24.4 | not 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.
| Days | Local vol at the money, % |
|---|---|
| 2.3 | 27.6 |
| 2.9 | 29.5 |
| 3.6 | 29.1 |
| 4.5 | 28.4 |
| 5.6 | 28.2 |
| 6.9 | 28.8 |
| 8.6 | 30.9 |
| 10.6 | 36.6 |
| 13.2 | 40.0 |
| 16.4 | 35.6 |
| 20.3 | 33.5 |
| 25.3 | 31.8 |
| 31.4 | 31.5 |
| 38.9 | 33.1 |
| 48.3 | 33.5 |
| 60.0 | 33.9 |
| 74.5 | 34.4 |
| 92.4 | 35.1 |
| 114.8 | 35.6 |
| 142.5 | 36.1 |
| 176.8 | 37.1 |
| 219.5 | 37.7 |
| 272.5 | 37.3 |
| 338.3 | 37.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.
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.
| Rule | BTC | ETH |
|---|---|---|
| Expiry less than 2 days away | 110 | 120 |
| In the money (the fit uses out-of-the-money options only) | 388 | 323 |
| No bid | 24 | 10 |
| No ask | 0 | 0 |
| Bid at or above ask | 0 | 0 |
| Bid at or below intrinsic value | 0 | 0 |
| Implied vol could not be solved | 0 | 0 |
| Bid/ask spread above 15 vol points or 50% of mid | 35 | 21 |
| Kept and fitted | 329 of 886 | 292 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.
| Expiry | RMSE SSVI | RMSE eSSVI | inside SSVI | inside eSSVI |
|---|---|---|---|---|
| 23 Oct ’26 | 2.25 | 1.74 | 53% | 76% |
| 24 Oct ’26 | 0.73 | 0.58 | 71% | 95% |
| 30 Oct ’26 | 2.81 | 2.30 | 47% | 47% |
| 6 Nov ’26 | 0.60 | 0.42 | 79% | 95% |
| 27 Nov ’26 | 1.33 | 1.14 | 45% | 55% |
| 25 Dec ’26 | 3.89 | 3.11 | 29% | 29% |
| 26 Mar ’27 | 1.36 | 1.43 | 31% | 33% |
| 25 Jun ’27 | 0.73 | 0.91 | 43% | 59% |
| 24 Sep ’27 | 0.35 | 0.29 | 57% | 88% |
| Expiry | RMSE SSVI | RMSE eSSVI | inside SSVI | inside eSSVI |
|---|---|---|---|---|
| 23 Oct ’26 | 3.22 | 1.71 | 48% | 52% |
| 24 Oct ’26 | 2.60 | 2.09 | 64% | 68% |
| 30 Oct ’26 | 5.21 | 3.74 | 38% | 34% |
| 6 Nov ’26 | 1.07 | 1.24 | 33% | 73% |
| 27 Nov ’26 | 2.00 | 2.64 | 25% | 53% |
| 25 Dec ’26 | 1.13 | 1.64 | 29% | 47% |
| 26 Mar ’27 | 1.17 | 1.58 | 19% | 62% |
| 25 Jun ’27 | 1.07 | 1.19 | 26% | 74% |
| 24 Sep ’27 | 0.94 | 0.68 | 31% | 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.
| Check | Level | Instruments | USD |
|---|---|---|---|
| butterfly | mid | 26MAR27 55000 P, 26MAR27 56000 P, 26MAR27 58000 P | 14 |
| butterfly | mid | 26MAR27 52000 P, 26MAR27 54000 P, 26MAR27 55000 P | 14 |
| butterfly | mid | 25DEC26 62000 P, 25DEC26 64000 P, 25DEC26 65000 P | 14 |
| butterfly | mid | 25JUN27 104000 C, 25JUN27 105000 C, 25JUN27 106000 C | 11 |
| butterfly | mid | 26MAR27 94000 C, 26MAR27 95000 C, 26MAR27 96000 C | 11 |
| Check | Level | Instruments | USD |
|---|---|---|---|
| butterfly | mid | 24SEP27 3100 C, 24SEP27 3200 C, 24SEP27 3300 C | 0 |
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.