Markets: A Rigorous Course

9A.8 IV rank and IV percentile

Core about 10 min

Motivation

"IV is high, sell premium" requires a definition of high. Two statistics are in common use; they answer different questions and often disagree.

Definitions

For an IV series (σs)(\sigma_s) and a trailing window of nn observations ending at tt:

IVRt=σt−min⁡t−n<s≤tσsmax⁡t−n<s≤tσs−min⁡t−n<s≤tσs,(9A.10)\mathrm{IVR}_t=\frac{\sigma_t-\min_{t-n<s\le t}\sigma_s}{\max_{t-n<s\le t}\sigma_s-\min_{t-n<s\le t}\sigma_s}, \tag{9A.10}
IVPt=1n−1#{s: t−n<s<t, σs<σt}.(9A.11)\mathrm{IVP}_t=\frac{1}{n-1}\#\{s:\ t-n<s<t,\ \sigma_s<\sigma_t\}. \tag{9A.11}

IV rank locates today between the window's extremes; IV percentile is the share of past days below today.

Proposition 9A.7

If (σs)(\sigma_s) are exchangeable with a continuous distribution (in particular iid), then IVPt\mathrm{IVP}_t is uniform on {0,1n−1,…,1}\{0,\frac1{n-1},\dots,1\}, with mean 12\frac12, whatever the distribution. IVRt\mathrm{IVR}_t has no such property: for n≥3n\ge3 its distribution depends on the distribution of σ\sigma.

Proof

Under exchangeability with no ties, the rank of σt\sigma_t among the nn values of the window is uniform on {1,…,n}\{1,\dots,n\}, and (n−1) IVPt(n-1)\,\mathrm{IVP}_t equals that rank minus one. For IVR, condition on the rank of σt\sigma_t being jj with 1<j<n1<j<n: then IVRt=(σ(j)−σ(1))/(σ(n)−σ(1))\mathrm{IVR}_t=(\sigma_{(j)}-\sigma_{(1)})/(\sigma_{(n)}-\sigma_{(1)}), a ratio of spacings of order statistics. For a uniform parent its conditional mean is (j−1)/(n−1)(j-1)/(n-1); for an exponential parent the spacings have unequal means (σ(k+1)−σ(k)\sigma_{(k+1)}-\sigma_{(k)} has mean proportional to 1/(n−k)1/(n-k)), so the conditional means differ. Hence the law of IVR depends on the parent.∎

For right-skewed parents such as the lognormal, the maximum sits far above the bulk and most days map to low IVR values; the test test_percentile_uniform_under_iid checks on a simulated lognormal series that the mean IVP is 0.5 and the mean IVR is below 0.45.

Worked example 9A.4India VIX, 4 Nov 2026

India VIX closed at 15.19 on 4 Nov 2026 (Yahoo Finance ^INDIAVIX). Over the 252 trading days from 27 Oct 2025 its minimum was 9.15 (26 Dec 2025) and its maximum 27.89 (30 Mar 2026, during the oil shock of M11 Case 3). IV rank = (15.19−9.15)/(27.89−9.15)=0.32(15.19-9.15)/(27.89-9.15)=0.32; IV percentile = 0.69. One statistic says "low", the other "above most of the year". The March spike compresses the rank of every later day.

Practitioner notes

Neither statistic says IV is too high relative to what will be realised; that comparison is the variance premium (M09 · 9.4). IV mean-reverts, so a high percentile does predict lower IV on average, which helps a short-vega position, but the premium is a separate quantity. For a single stock, compute these on a constant-maturity IV series (interpolate between expiries), not on the near-month IV, which rises mechanically as results approach.

Create a free account

Reading is open to everyone. An account keeps your progress, answers, notes and code drafts, and gives you the study plan, the journals and the simulator. Running code needs an account approved for it.