Skip to content

FRM Exam Part I · Calculating and Applying VaR

Historical Simulation VaR: How to Calculate It

Updated 11 October 2026 · Fact-checked

Historical simulation VaR estimates risk by ranking past portfolio returns or losses and reading off the quantile for your confidence level. It assumes no distribution. For 99% VaR you take the loss that only 1% of past observations exceed. Weighted variants, such as age-weighted BRW and volatility-weighted, adjust the observations before ranking.

Understand Historical Simulation VaR

Historical simulation (HS) is a non-parametric way to estimate VaR. You do not assume that returns are normal. You assume that the recent past is a fair sample of what can happen tomorrow.

The method is simple. Apply each past day's changes in risk factors (or returns) to your current portfolio. This gives a list of hypothetical P&L figures. Sort them from worst to best. The VaR at confidence level c is the loss at the (1 − c) quantile of that list. With 1,000 observations, 99% VaR sits around the 10th worst loss. The exact pick (10th, 11th or an interpolation) depends on the convention in the question.

The main strength is that HS captures fat tails, skewness and non-linear positions as they actually appeared in the data. It needs no covariance matrix. The main weaknesses are these. Every observation gets the same weight, so an old shock counts as much as yesterday's. When a big loss drops out of the window, VaR suddenly falls (the ghost effect). VaR reacts slowly when volatility changes. It also cannot show losses worse than anything in the sample, and 99% VaR rests on very few data points.

Weighted variants fix some of these problems. Age-weighted HS (BRW, Boudoukh-Richardson-Whitelaw) gives recent observations more weight, using a decay factor λ. Volatility-weighted HS (Hull-White) rescales each past return by the ratio of current volatility to the volatility at that time. This lets VaR respond when markets get calmer or more turbulent. Once the observations are adjusted, you still sort them and find the quantile. For BRW you use cumulative weights instead of counting observations.

Compared with parametric VaR, HS is more flexible and less tied to normality. Parametric VaR is smooth, fast and easy to scale across horizons. HS is data-hungry and its estimates are noisy in the tail.

Key formulas to remember

Basic HS VaR
VaR(c) = loss at the (1 − c) quantile of the sorted P&L list
With N observations, about N × (1 − c) observations are worse than VaR. Follow the convention the question gives for choosing the exact observation.
BRW age weight
w(i) = λ^(i − 1) × (1 − λ) ÷ (1 − λ^n)
i = 1 is the most recent observation, n is the sample size, 0 < λ < 1. Weights sum to 1. λ closer to 1 means slower decay; λ = 1 gives equal weights of 1/n.
Volatility-adjusted return
r* (t,i) = r(t,i) × σ(T) ÷ σ(i)
σ(i) is the volatility estimated for day i (for example by EWMA or GARCH). σ(T) is the current volatility. Scale up if volatility is now higher.
Weighted VaR (BRW)
Sort losses from worst; add weights until cumulative weight ≥ 1 − c; that loss is VaR
Replaces counting observations with summing weights. Interpolation between adjacent losses may be used if the question asks for it.
Number in the tail
Tail observations ≈ N × (1 − c)
For example, 500 × 1% = 5 observations in the 1% tail.

How to solve Historical Simulation VaR questions

Use this order for any historical simulation question. Read first which variant is asked: basic, age-weighted or volatility-weighted.

  1. 1Note the confidence level c, the sample size N and the position value or return units. Work out 1 − c.
  2. 2If volatility-weighting is asked, adjust each return: multiply by current volatility divided by the volatility on that day.
  3. 3If age-weighting is asked, compute each weight with w(i) = λ^(i − 1)(1 − λ) ÷ (1 − λ^n). Check that the weights sum to 1.
  4. 4Convert returns to losses (a negative return is a positive loss) and multiply by the current portfolio value if the answer is in currency.
  5. 5Sort the losses from worst to best. Keep the weight attached to each loss if using BRW.
  6. 6Find the cut-off. For basic HS, count N × (1 − c) observations in from the worst end. For BRW, add weights from the worst loss until the cumulative weight reaches 1 − c.
  7. 7Read the loss at that cut-off as VaR. Use interpolation only if the question states it. Report it as a positive loss with the right currency and horizon.

Quickest way: Count the tail, then read the loss

When to use it: Use this for basic HS questions where a sorted list or the worst few losses are given.

  1. Compute N × (1 − c) to see how many observations lie in the tail.
  2. Go to that position in the list sorted from the worst loss. The question usually says whether VaR is that observation or the next one.
  3. For BRW, skip the full table. Compute only the weights of the worst few losses and add them until you pass 1 − c.
  4. For volatility weighting, adjust only the few worst returns and check whether they still rank worst.
  5. Check the sign and units, then eliminate options that give a gain or the wrong currency.

Common mistakes in Historical Simulation VaR

  • Picking the wrong observation in the tail, for example the 1st worst loss for 99% VaR with 500 data points.

    Students confuse the confidence level with the tail size.

    Fix: Compute N × (1 − c) first. For 500 observations at 99%, that is 5 in the tail. Then apply the convention in the question.

  • Labelling the oldest observation as i = 1 in the BRW formula.

    Data tables often list the oldest date first.

    Fix: In BRW, i = 1 is the most recent observation and has the largest weight. Check that weights fall as you go back in time.

  • Scaling returns by σ(i) ÷ σ(T) instead of σ(T) ÷ σ(i).

    The ratio is easy to flip when working fast.

    Fix: Think of it as: how big would this move be at today's volatility? If today is more volatile, the adjusted return gets bigger.

  • Saying historical simulation assumes normally distributed returns.

    Mixing it up with parametric (delta-normal) VaR.

    Fix: HS is non-parametric. It uses the empirical distribution. Its weakness is limited data in the tail, not a normality assumption.

  • Applying the past P&L of the old portfolio instead of the current portfolio.

    The idea of using history is confused with using past holdings.

    Fix: Apply past risk-factor changes to today's positions. VaR is about today's portfolio.

  • Believing age-weighting removes the need for a long data window or that it always raises VaR.

    Students overstate the effect of weights.

    Fix: Weights shift the emphasis to recent data. VaR rises only if recent losses are large, and falls if recent days are calm. A reasonably long window is still needed for the tail.

Worked examples

Example 1

A portfolio has 100 daily P&L observations. The six worst losses, from the largest, are $4.8m, $4.1m, $3.6m, $3.2m, $2.9m and $2.5m. Using basic historical simulation, what is the one-day 95% VaR if VaR is defined as the loss exceeded by exactly 5% of observations?

Show the solution
  1. Tail size = N × (1 − c) = 100 × 0.05 = 5 observations.
  2. VaR is the loss exceeded by exactly those 5 observations.
  3. The five worst losses are 4.8, 4.1, 3.6, 3.2 and 2.9. They all exceed the next one.
  4. The next loss in the ranking, the 6th worst, is 2.5.

Answer: One-day 95% VaR = $2.5 million.

Example 2

Four daily returns are used for age-weighted historical simulation with λ = 0.9. From the most recent (age 1) to the oldest (age 4), the returns are −1%, −4%, +2% and −6%. Find the 80% VaR as a percentage of portfolio value, using the cumulative-weight method with no interpolation.

Show the solution
  1. The denominator is 1 − λ^4 = 1 − 0.6561 = 0.3439.
  2. Weights: w1 = 0.1 ÷ 0.3439 = 0.2908; w2 = 0.09 ÷ 0.3439 = 0.2617; w3 = 0.081 ÷ 0.3439 = 0.2355; w4 = 0.0729 ÷ 0.3439 = 0.2120. These sum to 1.
  3. Sort the losses from worst: 6% (age 4, weight 0.2120), 4% (age 2, weight 0.2617), 1% (age 1), then the gain.
  4. The tail probability is 1 − 0.80 = 0.20.
  5. The worst loss already carries a cumulative weight of 0.2120, which is at least 0.20. The cut-off is reached at the 6% loss.

Answer: 80% VaR = 6% of portfolio value.

Exam tips

  • Read the question for the convention on which sorted observation is VaR. The count N × (1 − c) is what you need first.
  • For BRW, the formula and the direction of i are what GARP tests. Check that the first weight is the biggest and the weights sum to 1.
  • Know the qualitative points: HS is non-parametric, captures fat tails, but treats observations equally and has ghost effects. Weighted variants improve responsiveness.
  • In volatility-weighted questions, ask whether current volatility is above or below past volatility. This tells you whether the adjusted VaR should rise or fall, and you can use it to eliminate options.
  • Remember that HS 99% VaR rests on very few observations, so it is less precise than 95% VaR with the same data.

Practice questions from Calculating and Applying VaR

Historical Simulation VaR in other exams

The same ground in other exams, if you are preparing for more than one or want another angle on it.

Historical Simulation VaR: frequently asked questions

What is the difference between historical simulation and parametric VaR?

Parametric VaR assumes a distribution, usually normal, and uses a mean and standard deviation (or covariance matrix). Historical simulation uses the actual past returns and reads the quantile from them. HS handles fat tails and non-linear positions more naturally, but needs plenty of data.

How does the BRW age-weighted method work?

Each observation gets a weight that falls geometrically with age, using w(i) = λ^(i − 1)(1 − λ) ÷ (1 − λ^n). You sort losses from worst and add the weights until the cumulative weight reaches 1 − c. The loss at that point is VaR.

What is volatility-weighted historical simulation?

It rescales each past return by the ratio of current volatility to the volatility on the day of the return. This makes old returns reflect today's market conditions. If current volatility is higher than it was then, the adjusted losses are larger.

How many observations do I need for historical simulation VaR?

There is no single required number, but the tail must contain enough points to be useful. With 250 observations, 99% VaR is based on only about 2 or 3 points. A longer window helps the tail estimate but makes VaR slower to react unless you use weighting.