Financial
Cornish-Fisher Modified VaR (mVaR) formula: Skewness & Excess Kurtosis Tail Risk
Explore a truncated Cornish-Fisher quantile approximation and compare its illustrative loss threshold with a Gaussian calculation.
An approximation, not a measurement of true tail risk
The truncated expansion adjusts a standard-normal quantile using skewness and excess kurtosis inputs. It is not guaranteed to improve an estimate, preserve quantile ordering or reproduce those moments exactly in the resulting distribution. Large departures from normality can make it unreliable. This worksheet does not implement a domain-of-monotonicity test or a rearrangement correction.
Use mean, standard deviation, skewness and excess kurtosis for the same return horizon and convention. Excess kurtosis is raw kurtosis minus three. B6=-2.3263 approximates the lower 1% normal quantile, corresponding to a 99% loss threshold; it is deliberately rounded.
Here the polynomial yields -3.1412 and a loss threshold of 0.1176 versus 0.0851 under the Gaussian formula. This difference describes these supplied numbers only. It does not establish the actual portfolio tail, a maximum possible loss or a capital requirement; compare estimates against data and alternative models.
| Tail Risk Metric | Formula / Inputs | Skewed Fund (S=-0.8, K=2.0) | Normal Returns (S=0, K=0) |
|---|---|---|---|
| Monthly Mean & Vol | B2 = +0.80%, B3 = 4.00% | 99% Normal z B6 = -2.3263 | Same Mean & Vol |
| Gaussian 99% VaR | -(B2 + B6 * B3) | 8.51% (0.0851; Gaussian estimate) | 8.51% (0.0851) |
| Cornish-Fisher Quantile z_CF | 4-term S & K_exc expansion | -3.1412 (polynomial approximation) | -2.3263 (Exact match) |
| Modified 99% mVaR | -(B2 + z_CF * B3) | 11.76% (0.1176; approximate loss threshold) | 8.51% (0.0851) |
Cornish-Fisher Modified Left-Tail Quantile z_CF
Enter negative left-tail normal quantile z in B6 (e.g., -1.6449 for 95% or -2.3263 for 99%), skewness S in B4, and excess kurtosis K_exc in B5.
=IF(COUNT(B4:B6)<>3,"Invalid inputs",IF(B6>=0,"Invalid inputs",ROUND(B6 + ((((B6 ^ 2) - 1) / 6) * B4) + ((((B6 ^ 3) - 3 * B6) / 24) * B5) - (((2 * (B6 ^ 3) - 5 * B6) / 36) * (B4 ^ 2)), 4)))Modified Value-at-Risk mVaR = -(Mean + z_CF * Volatility)
The result is a signed loss threshold as a fraction of portfolio value. A negative result means the approximated return quantile is positive; it is not silently clamped to zero. B7 keeps the unrounded expansion value for this calculation. With zero skewness and excess kurtosis, the polynomial reduces to the supplied normal quantile.
=IF(COUNT(B2:B3,B7)<>3,"Invalid inputs",IF(B3<=0,"Invalid inputs",ROUND(-(B2 + B7 * B3), 4)))Gaussian reference calculation
Use the same mean, volatility and normal quantile so the comparison changes only the expansion. Neither model is automatically correct.
=IF(COUNT(B2:B3,B6)<>3,"Invalid inputs",IF(OR(B3<=0,B6>=0),"Invalid inputs",ROUND(-(B2 + B6 * B3), 4)))Try the example
Use the original values or change them to test your understanding.