Skip to content

FRM Exam Part II · Non-parametric Approaches

Bootstrap Historical Simulation for VaR and Expected Shortfall

Updated 11 October 2026 · Fact-checked

Bootstrap historical simulation resamples your historical returns with replacement to build many new samples of the same size. You compute VaR or expected shortfall on each sample, then average the results. The spread of those estimates gives a standard error and confidence interval, which plain historical simulation cannot give.

Understand Bootstrap Historical Simulation

Plain historical simulation takes one window of past returns, sorts them and reads off the loss at the chosen percentile. You get one VaR number. It has no built-in sense of how reliable it is, because it is one draw from history.

The bootstrap fixes this. You treat the observed returns as the best available picture of the true distribution. You draw n returns at random from your n observations, with replacement, so the same return can appear several times and some may not appear. This gives one bootstrap sample. You repeat this many times, for example 1,000 times.

For each bootstrap sample you calculate the VaR (or expected shortfall, ES). You now have 1,000 estimates. The bootstrapped estimate is usually the average of these. Their spread is a measure of estimation error. You can take their standard deviation as a standard error, or read percentiles of the estimates as a confidence interval.

The bootstrap is still non-parametric. It assumes no normal or other distribution. It also still assumes that returns are independent and identically distributed (i.i.d.), and that the past sample represents the future. It does not create tail data that is not in the sample. It only reuses what you have.

For ES, the bootstrap averages the tail losses in each sample. Averaging across many samples usually gives a smoother, more precise estimate than one pass over the data. Standard errors for ES can be obtained the same way.

Key formulas to remember

Bootstrap sample
Draw n observations from n historical returns, with replacement
Each sample has the same size as the original data. Repeats are expected.
Bootstrapped VaR estimate
VaR_boot = (1 ÷ B) × Σ VaR_b, for b = 1 to B
B is the number of bootstrap samples. VaR_b is the VaR from sample b.
Bootstrapped ES estimate
ES_boot = (1 ÷ B) × Σ ES_b, for b = 1 to B
ES_b is the average loss beyond VaR in sample b.
Bootstrap standard error
SE = √[ Σ (VaR_b − VaR_boot)² ÷ (B − 1) ]
This is the standard deviation of the B estimates. Dividing by B instead of B − 1 is also seen when B is large.
Approximate confidence interval
VaR_boot ± z × SE
Use z = 1.96 for 95% two-sided. Alternatively, use percentiles of the sorted bootstrap estimates.
Historical VaR position
VaR at confidence c is the loss at the (1 − c) tail percentile; with n observations, about n × (1 − c) losses lie beyond it
Interpolation conventions vary, so read the question's stated method.

How to solve Bootstrap Historical Simulation questions

Use this method for any question on bootstrap historical simulation, whether it asks for a definition, a calculation or an interpretation.

  1. 1Identify what is asked: a VaR or ES estimate, a standard error, a confidence interval, or a comparison with plain historical simulation.
  2. 2Note the data: sample size n, number of bootstrap samples B, confidence level and whether returns or losses are given.
  3. 3Remember the resampling rule: n draws, with replacement, from the original sample.
  4. 4For each sample, compute the risk measure as the question defines it: the loss at the (1 − c) percentile for VaR, or the average of losses beyond VaR for ES.
  5. 5Combine the B estimates: average them for the bootstrap estimate, and use their standard deviation for the standard error.
  6. 6Build the confidence interval if asked, using estimate ± z × SE or the percentiles of the bootstrap estimates.
  7. 7Interpret: a smaller standard error means a more reliable estimate. Remind yourself that i.i.d. and past-represents-future assumptions still hold.

Quickest way: Fast check for bootstrap MCQs

When to use it: Use when the question is conceptual or gives the bootstrap estimates and asks for the combined result or the standard error.

  1. Check the resampling: with replacement and the same size as the original. Reject options that say without replacement.
  2. If a list of VaR estimates is given, average them for the estimate.
  3. For standard error, find deviations from the mean, square them, divide by B − 1 and take the square root.
  4. Eliminate options claiming the bootstrap removes the i.i.d. assumption, creates new extreme losses, or assumes normality.
  5. Pick the option that says the bootstrap gives a more precise estimate and a measure of its uncertainty.

Common mistakes in Bootstrap Historical Simulation

  • Resampling without replacement

    Students think of sampling as picking items from a list once.

    Fix: Remember that without replacement you would just reorder the same data and get the same VaR every time. Replacement is what creates variation.

  • Saying the bootstrap needs a normal distribution

    Students link VaR and standard error to parametric methods.

    Fix: The bootstrap is non-parametric. It uses the empirical distribution and assumes no particular shape.

  • Believing the bootstrap produces losses worse than any in the data

    Many samples sound like more information.

    Fix: Every bootstrap draw comes from the original observations. The worst possible loss in any sample is the worst historical loss.

  • Treating the bootstrap as removing the i.i.d. assumption

    Students think resampling handles volatility clustering.

    Fix: The basic bootstrap assumes i.i.d. returns. If volatility clusters, it can mislead. Other approaches such as weighting are needed.

  • Confusing standard error of the VaR estimate with the volatility of returns

    Both are called standard deviations.

    Fix: The standard error is the standard deviation of the B VaR estimates, not of the returns.

  • Reporting only one bootstrap sample's VaR as the answer

    Students stop after the first sample in a worked question.

    Fix: Average the VaR across all samples to get the bootstrap estimate.

Worked examples

Example 1

A risk analyst runs five bootstrap samples from historical returns and gets 95% one-day VaR estimates of USD 2.0 million, 2.4 million, 2.2 million, 1.8 million and 2.6 million. What is the bootstrapped VaR estimate, and what is its standard error (use B − 1 in the denominator)?

Show the solution
  1. Add the estimates: 2.0 + 2.4 + 2.2 + 1.8 + 2.6 = 11.0.
  2. Average: 11.0 ÷ 5 = 2.2, so the bootstrapped VaR is USD 2.2 million.
  3. Deviations from 2.2: −0.2, 0.2, 0.0, −0.4, 0.4.
  4. Squared deviations: 0.04, 0.04, 0.00, 0.16, 0.16. Sum = 0.40.
  5. Divide by B − 1 = 4: 0.40 ÷ 4 = 0.10.
  6. Square root: √0.10 ≈ 0.316.

Answer: Bootstrapped VaR = USD 2.2 million; standard error ≈ USD 0.316 million.

Example 2

A bank has 500 daily returns. Using the bootstrap, it draws 500 returns with replacement for each of 1,000 samples and computes the 99% ES in each. The average ES is USD 4.5 million and the standard error is USD 0.25 million. Give an approximate 95% confidence interval and explain what the bootstrap has and has not fixed.

Show the solution
  1. The bootstrapped ES estimate is the average: USD 4.5 million.
  2. Use the normal approximation for the interval: estimate ± 1.96 × SE.
  3. 1.96 × 0.25 = 0.49.
  4. Lower bound: 4.5 − 0.49 = 4.01. Upper bound: 4.5 + 0.49 = 4.99.
  5. Interpretation: the bootstrap quantifies estimation error, but it still assumes i.i.d. returns and cannot show losses worse than those in the 500 observations.

Answer: Approximate 95% confidence interval for ES: USD 4.01 million to USD 4.99 million.

Exam tips

  • Expect conceptual MCQs. Know the three keywords: with replacement, same size, repeated many times.
  • Be ready to say what the bootstrap adds over plain historical simulation: a more precise estimate and a standard error or confidence interval.
  • Watch for distractors that say the bootstrap assumes normality or fixes volatility clustering. Both are wrong.
  • For a standard error question, check whether the options differ by using B or B − 1, and follow the question's stated convention.
  • When the question asks about limits, mention the dependence on the historical window and the i.i.d. assumption.

Practice questions from Non-parametric Approaches

Bootstrap Historical Simulation in other exams

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

Bootstrap Historical Simulation: frequently asked questions

What is the difference between bootstrap and plain historical simulation?

Plain historical simulation uses the original data once and gives one VaR or ES number. The bootstrap resamples the data with replacement many times and averages the results. It also gives a standard error and confidence interval.

Does the bootstrap assume a normal distribution?

No. It is a non-parametric method and uses the empirical distribution of the observed returns. It does still assume the returns are i.i.d.

Can the bootstrap give a VaR worse than the worst historical loss?

No. Every draw comes from the original observations, so no bootstrap sample contains a loss beyond the worst one observed. Tail estimates are limited by the data you have.

How does the bootstrap help with expected shortfall?

You calculate the ES in each bootstrap sample and average them. This gives a smoother estimate than one pass, and the spread of the ES values gives a measure of its precision.