FRM Exam Part II · Backtesting VaR
VaR Exceptions and the Binomial Test
Updated 11 October 2026 · Fact-checked
A VaR exception is a day when the actual loss exceeds the VaR estimate. With T days and confidence level c, the exception count follows a binomial distribution with p = 1 − c, if the model is correct. You compare the observed count with the expected count T × p, using binomial probabilities or a z-test.
Understand VaR Exceptions and the Binomial Test
A VaR exception (also called an exceedance or breach) happens when the realised loss on a day is larger than the VaR you reported for that day. Backtesting counts these days over a window, usually 250 trading days.
If the model is right, each day has the same small chance of an exception. That chance is p = 1 − c, where c is the VaR confidence level. For 99% VaR, p = 1%. For 95% VaR, p = 5%.
If the days are independent, the number of exceptions X over T days is binomial with parameters T and p. Each day is a yes/no trial. The expected count is T × p. The variance is T × p × (1 − p).
The test question is: is the observed count too high or too low to be luck? Too many exceptions means the model understates risk. Too few means it is too conservative and ties up capital. Both are evidence against the model, though regulators worry most about too many.
For large T you can use the normal approximation and a z-test. For small expected counts, such as 2.5 exceptions in 250 days, use the exact binomial probabilities. The test assumes independence, so clustered exceptions are a separate problem tested by other methods.
Key formulas to remember
- Exception probability
- p = 1 − c
- c is the VaR confidence level. 99% VaR gives p = 0.01.
- Binomial probability of x exceptions
- P(X = x) = [T! ÷ (x! × (T − x)!)] × p^x × (1 − p)^(T − x)
- Use for exact probabilities, especially when T × p is small.
- Expected exceptions
- E(X) = T × p
- For 99% VaR over 250 days, E(X) = 2.5.
- Variance and standard deviation
- Var(X) = T × p × (1 − p); SD = √[T × p × (1 − p)]
- Used in the z-test.
- z-test for exception count
- z = (x − T × p) ÷ √[T × p × (1 − p)]
- Normal approximation. Reject at 5% two-tailed if |z| > 1.96. Works best for large T × p.
- Tail probability
- P(X ≥ x) = 1 − P(X ≤ x − 1)
- Sum the binomial terms below x, then subtract from 1.
How to solve VaR Exceptions and the Binomial Test questions
Use this order for any question on exception counts and the binomial test.
- 1Identify T (number of days) and the confidence level c. Compute p = 1 − c.
- 2Compute the expected exceptions T × p.
- 3Decide if the question wants an exact probability or a test. If it gives or implies a normal approximation, use the z-test. If it asks for P(X = x) or P(X ≥ x), use the binomial.
- 4For the z-test, compute the standard deviation √[T × p × (1 − p)], then z = (x − T × p) ÷ SD.
- 5Compare z with the critical value (1.96 two-tailed at 5%, 1.645 one-tailed at 5%), or compare the tail probability with the significance level.
- 6State the conclusion: too many exceptions means risk is understated; too few means the model is too conservative. Say that failing to reject is not proof the model is correct.
Quickest way: Expected count and standard deviation shortcut
When to use it: Use when the question gives T, c and an observed count and asks whether the model is acceptable.
- Compute T × p. For 99% and 250 days it is 2.5.
- Compute SD = √[T × p × (1 − p)]. For 250 and 1% it is √2.475 ≈ 1.57.
- Count how many SDs the observation is from the mean: z = (x − mean) ÷ SD.
- If |z| is above 1.96, reject at 5%. Eliminate options that conflict with this.
Common mistakes in VaR Exceptions and the Binomial Test
Using p = c instead of p = 1 − c
The confidence level is the number in the question, so it gets plugged in directly.
Fix: Always write p = 1 − c first. A 99% VaR has a 1% exception probability.
Forgetting to subtract 1 in P(X ≥ x)
Students sum from 0 to x and subtract that from 1.
Fix: P(X ≥ x) = 1 − P(X ≤ x − 1). Sum only up to x − 1.
Using variance instead of standard deviation in the z-test
T × p × (1 − p) is computed and then not square-rooted.
Fix: Take the square root before dividing.
Treating a passed test as proof the model is right
Not rejecting feels like accepting.
Fix: With few expected exceptions the test has low power. Failing to reject only means the data is consistent with the model.
Applying the normal approximation when T × p is tiny
The z-test is quicker.
Fix: For 99% VaR over 250 days the expected count is only 2.5. Treat the z-test as rough and prefer exact binomial probabilities when asked.
Worked examples
Example 1
A bank reports 99% one-day VaR over 250 trading days and observes 6 exceptions. Using the normal approximation, compute the z-statistic and state whether the model is rejected at the 5% two-tailed level.
Show the solution
- p = 1 − 0.99 = 0.01.
- Expected exceptions = 250 × 0.01 = 2.5.
- Variance = 250 × 0.01 × 0.99 = 2.475.
- SD = √2.475 ≈ 1.573.
- z = (6 − 2.5) ÷ 1.573 = 3.5 ÷ 1.573 ≈ 2.22.
- 2.22 is greater than 1.96, so reject at 5%.
Answer: z ≈ 2.22. The model is rejected at 5%: it likely understates risk.
Example 2
A 95% one-day VaR model is tested over 100 days. What is the probability of observing exactly 2 exceptions if the model is correct?
Show the solution
- p = 0.05, T = 100, x = 2.
- Combinations: 100! ÷ (2! × 98!) = (100 × 99) ÷ 2 = 4,950.
- p^2 = 0.0025.
- (0.95)^98: ln 0.95 = −0.051293, times 98 = −5.0267, e^−5.0267 ≈ 0.00656.
- P = 4,950 × 0.0025 × 0.00656 = 12.375 × 0.00656 ≈ 0.0812.
Answer: About 0.081, or roughly 8.1%.
Exam tips
- Write p = 1 − c before anything else. Many wrong options are built from p = c.
- Memorise the 99%, 250-day case: expected 2.5 exceptions, SD about 1.57.
- Check whether the question asks for an exact binomial probability or a z-test. The method decides the answer.
- Read the direction: too many exceptions means underestimated risk, too few means overly conservative.
- If the exceptions are bunched together, the issue is independence, not the count. That points to a different test.
Practice questions from Backtesting VaR
- A bank's 99% VaR model produces 4 exceptions in 250 days, and the exceptions all occurred in the same two-week period. A validator applies o…
- A bank's 99% one-day VaR model is backtested over 250 days. Using the Kupiec test's non-rejection region at the 95% confidence level, which …
- A bank has 8 exceptions in the last 250 days under its 99% one-day VaR. Investigation shows the exceptions arose because the model's positio…
- A bank's 99% VaR model produces exactly 2.5 exceptions per 250 days on average, matching expectations, so it passes the unconditional covera…
- A risk manager reviews the Basel traffic light backtest for a 99% VaR model using 250 days. She notes that the green zone ends at 4 exceptio…
VaR Exceptions and the Binomial Test in other exams
The same ground in other exams, if you are preparing for more than one or want another angle on it.
VaR Exceptions and the Binomial Test: frequently asked questions
How many exceptions are expected for 99% VaR over 250 days?
Expected exceptions = 250 × 0.01 = 2.5. You cannot see half an exception, so actual counts vary around this, typically from 0 to 5 or so.
Why is the number of VaR exceptions binomial?
Each day is a trial with two outcomes: exception or not. If the model is right, the chance is the same each day, and if days are independent the count is binomial with parameters T and 1 − c.
When can I use the z-test for exceptions?
When T is large enough for the normal approximation to be reasonable. It is less reliable when T × p is small, as in 99% VaR over 250 days, where exact binomial probabilities are better.
Does the binomial test check for clustered exceptions?
No. It only looks at the count and assumes independence. Clustering is checked with an independence test, such as the Christoffersen approach.