Value at Risk (VaR) & CVaR Calculator
Paste a periodic return series and a portfolio value to get Value at Risk and Conditional VaR (Expected Shortfall) computed two ways — a parametric (normal-distribution) estimate and a historical (empirical) estimate — side by side, so a gap between them is a signal instead of hidden behind one number. No trade history or market data is read; everything is arithmetic over the numbers you type in.
Portfolio & return series
25 periods parsed. The horizon above is expressed in the same periodicity as these returns (e.g. days, if these are daily returns).
Formulas
Parametric VaR = (z·σ − μ) · √t · V₀
Parametric CVaR = (σ·φ(z) / (1−c) − μ) · √t · V₀
Historical VaR = −Q1−c(returns) · V₀
Historical CVaR = −mean(returns ≤ threshold) · V₀
VaR & CVaR estimates
- Mean return / period
- -0.11%
- Std. dev. / period
- 1.45%
- z (confidence quantile)
- 1.6449
- Historical threshold return
- -2.66%Q at 5%
- Expected tail observations
- 1.25n × (1 − c)
- Actual tail observations used
- 2for historical CVaR
VaR vs. CVaR by method
CVaR (Expected Shortfall) is always at least as large as VaR — it is the average loss in the scenarios where the VaR threshold is already breached, not just the threshold itself.
How the calculation works
Parametric (variance-covariance) VaR assumes periodic returns are i.i.d. normal with mean μ and standard deviation σ, estimated from the pasted series (Jorion, 2006):
where z_c = Φ⁻¹(c) is the standard-normal quantile at confidence c (1.2816 / 1.6449 / 2.3263 for 90% / 95% / 99%) and √t scales the one-period estimate to a t-period horizon, the same square-root-of-time convention used elsewhere on this site for annualization. The parametric CVaR follows from the standard truncated-normal tail-mean identity (McNeil, Frey & Embrechts, 2015, Prop. 2.16):
Historical VaR skips the normality assumption entirely and reads the (1−c) quantile straight out of the empirical return series, using linear-interpolation quantile estimation ("Type 7" — Hyndman & Fan, 1996 — the default in R's quantile() and NumPy's np.percentile):
Historical CVaR (Rockafellar & Uryasev, 2000) is the mean of every observed return at or below that threshold, negated and scaled by portfolio value. Because it makes no distributional assumption, historical VaR/CVaR is only as good as the sample pasted in — the calculator surfaces exactly how many observations landed in the tail so that isn't hidden.
Frequently asked questions
What is Value at Risk (VaR)?+
VaR at confidence level c is a dollar loss threshold: over the chosen horizon, there is a (1−c) chance the portfolio loses more than the VaR figure. A 95% one-day VaR of $10,000 means a loss bigger than $10,000 is expected on roughly 5% of days, based on the return series or distributional assumption used to compute it. VaR says nothing about how much worse that 5% of outcomes could get — that is what CVaR is for.
What is Conditional VaR (CVaR) / Expected Shortfall, and how is it different from VaR?+
CVaR is the average loss in exactly the scenarios where VaR is already breached — the mean of the tail beyond the VaR threshold, not just the threshold itself. CVaR is always at least as large as VaR at the same confidence level. Two return series can share an identical VaR while having very different CVaR, if one has a hard cutoff past the threshold and the other has a long, thin tail of much larger losses — CVaR is what distinguishes them, and it's the metric Basel III capital rules moved toward for exactly this reason.
Why does this calculator show two different VaR numbers?+
Parametric VaR assumes returns are normally distributed and derives VaR from just the mean and standard deviation of the series in closed form. Historical VaR makes no distributional assumption at all — it reads the actual empirical quantile out of the returns you pasted. Real return series are usually fatter-tailed than a normal distribution (more frequent large moves than a bell curve predicts), so historical VaR often comes out larger than parametric VaR. When it does, that gap is the finding: it means the parametric number is understating real tail risk, and the historical estimate — despite being noisier at small sample sizes — is the more trustworthy one for this data.
Why is my historical VaR unreliable with a small return series?+
A 99% VaR is, by definition, about the worst ~1% of outcomes. With 50 observations, that is half of one data point — the calculator is extrapolating a tail estimate from essentially the single worst return in your sample. This calculator surfaces the expected number of tail observations (n × (1−c)) directly and flags it explicitly when it drops below 1, rather than presenting a falsely precise percentile. More data — or a lower confidence level — narrows this.
How does this differ from the Sharpe/Sortino/Calmar calculator?+
The Sharpe/Sortino/Calmar calculator (risk-adjusted-return) measures realized, backward-looking performance per unit of risk already taken. This calculator instead asks a forward-looking question: given this return history, how large a loss should the portfolio be prepared for over the next period, at a stated confidence level? Both read the same kind of input — a pasted return series — but answer different questions.
What are the limitations of this model?+
Parametric VaR/CVaR assume returns are i.i.d. and normally distributed — real markets exhibit volatility clustering, fat tails, and skew that this understates, which is exactly why the historical method is shown alongside it. Historical VaR/CVaR assume the future resembles the exact sample pasted in, with no adjustment for regime change, and are estimated from very few points at high confidence levels or small samples. Neither method accounts for intra-horizon rebalancing, changing position sizes, or tail correlation across a multi-asset book beyond what's already embedded in a single return series. Treat the output as a risk-communication figure, not a guarantee of maximum loss.
Related tools
Sharpe / Sortino / Calmar Calculator
Realized risk-adjusted performance from the same kind of pasted return series.
Max Sharpe Ratio Portfolio
Tangency portfolio weights from expected returns and a covariance matrix.
Kelly Criterion Calculator
Edge-optimal position size from win rate and win/loss ratio.
Backtesting Engine
Generate a real return series from historical data instead of guessing one.
All Trading Tools
Browse every free tool on QuantEngines.
This calculator performs and displays arithmetic on the inputs you provide, using the parametric-normal and historical-empirical VaR/CVaR models. It is not investment advice, does not read live market data or your positions, and makes no claim about a portfolio's future losses beyond what the entered return series and stated assumptions imply.