> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sandmark.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Continuous implied volatility

> What one point in the IV series means, and how it is built.

Listed options expire on fixed dates, so the "1-month" option on the screen today is a different contract
from the one a week ago, and its time to expiry shrinks every hour. A series built from listed contracts
drifts and jumps on every roll.

The IV series fixes the **time to expiry** and the **delta** instead. Each point answers one question:

> At this hour, what implied volatility did the market price for an option exactly *T* days from expiry,
> at exactly this delta?

## The three coordinates

> [card] Tenor
>
> `tenor_label` fixes the time to expiry: `1d`, `1w`, `2w`, `1m`, `2m`, `3m`, `6m`, `9m` or `1y`.

> [card] Delta
>
> `delta_target_pct` fixes moneyness, in absolute delta percent: 5 to 50 in steps of 5. `50` is
> at-the-money.

> [card] Side
>
> `option_type` picks calls (`C`) or puts (`P`). A 25-delta put is out-of-the-money downside; a 25-delta
> call is out-of-the-money upside.

At 50 delta the call and the put carry the same IV, so either side gives the at-the-money series.

## How a point is built

For each hour, Sandmark takes the two listed expiries that bracket the tenor, one just before it and one just
after. It reads each one's IV at the target delta from the mark surface, then interpolates between them in
**total variance** (σ²·T), which is the standard way to interpolate vol across time without creating
arbitrage.

Each row shows how it was built, so you can audit any point:

**IV** `number`

The interpolated implied volatility, decimal. `0.3732` is 37.32 vol.

**IV\_LO / IV\_HI** `number`

IV of the bracketing expiries at the target delta.

**DTE\_LO / DTE\_HI** `number`

Days to expiry of those two expiries. `TENOR_DAYS` always lies between them.

**DELTA** `number`

The delta actually achieved. `ATM_DIST` is its distance from `DELTA_TARGET`.

**METHODOLOGY** `string`

The interpolation used, currently `total_variance_interp`.

## Common series

| You want | `option_type` | `tenor_label` | `delta_target_pct` |
| - | - | - | - |
| 1-month at-the-money vol | `C` | `1m` | `50` |
| 1-month 25-delta put (downside skew) | `P` | `1m` | `25` |
| 1-month 25-delta call (upside skew) | `C` | `1m` | `25` |
| 1-week at-the-money vol (event risk) | `C` | `1w` | `50` |
| 3-month at-the-money vol (term structure) | `C` | `3m` | `50` |

> [!TIP]
>
> **Risk reversal and butterfly** come straight from these series. Fetch the 25-delta call and put for the same
> tenor and join them on `DATETIME`:
>
> * RR25 = σ(25Δ call) − σ(25Δ put). Negative means puts are bid.
> * BF25 = (σ(25Δ call) + σ(25Δ put)) / 2 − σ(ATM)

## Vol surface

Two published vol surfaces exist, and they differ slightly on every point (about 0.08 vol on average).
`IV_MARK` is the default and the one Sandmark uses everywhere. Pass `iv_source_col=IV_MARK_COMPUTED` only if
you specifically want the alternative surface, and keep the same choice for a whole analysis. Mixing surfaces
in one risk reversal produces a number that isn't one.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.