FRM Part II · FRM Exam Part II
Backtesting VaR: formula sheet
Key formulas
- Exception definition
- Exception on day t if P&L(t) < −VaR(t)
- VaR is quoted as a positive loss. A loss larger than VaR is an exception. A loss equal to VaR is not.
- Expected number of exceptions
- E[N] = T × (1 − c)
- T is the number of days and c is the VaR confidence level. At 99% over 250 days, E[N] = 2.5.
- Exception rate
- Exception rate = N ÷ T
- Compare with 1 − c. A rate well above 1 − c suggests VaR is too low.
- Hypothetical P&L
- Hypothetical P&L = value of yesterday's closing positions at today's prices − their value at yesterday's prices
- Positions held fixed. No intraday trades, fees or new deals.
- Actual P&L link
- Actual P&L = hypothetical P&L + fees and commissions + intraday trading result + reserve changes and other items
- Conceptual breakdown. The extra items are what make actual P&L dirty.
- 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.
- Expected exception rate
- p = 1 − c, where c is the VaR confidence level
- For 99% VaR, p = 0.01. For 95% VaR, p = 0.05.
- Kupiec POF likelihood ratio
- LR_POF = −2 ln[(1 − p)^(T − x) × p^x] + 2 ln[(1 − x/T)^(T − x) × (x/T)^x]
- T = number of observations, x = number of exceptions. Needs 0 < x < T for the logs to work directly.
- Equivalent log form
- LR_POF = −2 [(T − x) ln(1 − p) + x ln p] + 2 [(T − x) ln(1 − x/T) + x ln(x/T)]
- Easier to compute on a calculator.
- Decision rule
- Reject the model if LR_POF > χ²(1) critical value
- Critical values: 3.84 at 5% significance, 6.63 at 1%.
- Special case x = 0
- LR_POF = −2 T ln(1 − p)
- The second term vanishes when there are no exceptions.
- Expected exceptions
- E(x) = p × T
- Compare with the actual count first as a sanity check.
- Conditional coverage statistic
- LR_cc = LR_uc + LR_ind
- Distributed chi-square with 2 degrees of freedom under the null of correct coverage and independence.
- Probability of exception after a no-exception day
- π01 = n01 ÷ (n00 + n01)
- n01 counts days with an exception that followed a day without one.
- Probability of exception after an exception day
- π11 = n11 ÷ (n10 + n11)
- Under independence, π01 equals π11.
- Overall exception probability
- π = (n01 + n11) ÷ (n00 + n01 + n10 + n11)
- Used as the single probability under the null of independence.
- Independence statistic
- LR_ind = −2 ln[(1 − π)^(n00 + n10) × π^(n01 + n11)] + 2 ln[(1 − π01)^n00 × π01^n01 × (1 − π11)^n10 × π11^n11]
- Chi-square with 1 degree of freedom. Large values mean clustering.
- Critical values
- χ²(1): 3.84 at 5%, 6.63 at 1%. χ²(2): 5.99 at 5%, 9.21 at 1%
- Reject the null when the statistic is above the critical value.
- Backtesting setup
- Exception when daily loss > 1-day 99% VaR; window = last 250 trading days
- Expected exceptions = 250 × 1% = 2.5.
- Zones
- Green: 0-4; Yellow: 5-9; Red: 10 or more exceptions
- Boundaries are fixed by Basel; learn them exactly.
- Plus factors in the yellow zone
- 5 → 0.40; 6 → 0.50; 7 → 0.65; 8 → 0.75; 9 → 0.85
- Green plus factor is 0; red plus factor is 1.00.
- Multiplier
- Multiplier = 3 + plus factor
- Gives 3.00 (green), 3.40 to 3.85 (yellow), 4.00 (red).
- Capital charge (simplified)
- Capital = max(VaR(t-1), multiplier × average 10-day 99% VaR over the last 60 days) + specific risk charge
- VaR(t-1) is the previous day's 10-day 99% VaR. The specific risk charge is added after the higher-of comparison. Exam questions often give one VaR figure, so you then compute multiplier × VaR.
- Binomial exceptions
- X ~ Binomial(250, 0.01); mean = 2.5; standard deviation = √(250 × 0.01 × 0.99) ≈ 1.57
- Useful for judging how unusual a count is.
- Type I error
- P(reject H0 | model is correct) = α
- The significance level of the test. Rejecting a good model.
- Type II error
- β = P(do not reject H0 | model is wrong)
- Accepting a bad model.
- Power
- Power = 1 − β
- Probability of rejecting a wrong model. Higher is better.
- Expected exceptions
- E[x] = T × p, where p = 1 − confidence level
- T is the number of backtest days.
- Std deviation of exception count
- σ = √(T × p × (1 − p))
- Under the binomial model with independent exceptions. Used to judge how far a count is from expected.
- Expected exceptions
- Expected number of exceptions = N × (1 − c)
- N is the number of days, c is the VaR confidence level. At 99% over 250 days, 250 × 0.01 = 2.5.
- Exception rate
- Observed exception rate = x ÷ N
- x is the number of exceptions. Compare with 1 − c. A rate well above 1 − c suggests the model understates risk.
- Exception condition
- Exception if loss > VaR
- Loss is shown as a positive number. Use the same sign convention for loss and VaR.
- Hypothetical vs actual P&L
- Actual P&L = hypothetical P&L + intraday trading P&L + fees and commissions + reserve changes
- Use the gap to see whether exceptions come from the model or from trading and other items.
- Basel traffic light zones (250 days, 99% VaR)
- Green: 0–4 exceptions; Yellow: 5–9; Red: 10 or more
- Yellow brings a higher multiplier on the market risk capital charge. Red usually leads to the model being presumed flawed and a heavier penalty.
Quick revision
- An exception is a day when the loss exceeds the VaR estimate.
- Expected exceptions = p × N, where p = 1 − confidence level.
- Exception count is binomial with standard deviation √(N × p × (1 − p)).
- Kupiec tests the exception frequency only; it ignores timing.
- Kupiec LR_uc follows chi-square with 1 degree of freedom; 5% critical value is 3.84.
- Christoffersen independence tests whether exceptions cluster; 1 degree of freedom.
- Conditional coverage LR_cc = LR_uc + LR_ind, with 2 degrees of freedom; 5% critical value is 5.99.
- Basel zones at 250 days and 99% VaR: green 0–4, yellow 5–9, red 10 or more exceptions.
- Basel base multiplier is 3; yellow adds a rising amount and red adds 1.00.
- Type I error rejects a correct model; Type II error fails to reject a wrong model.
- Higher confidence levels give fewer exceptions and lower test power.
- Causes of exceptions include model flaws, intraday trading, and bad luck.
Common mistakes
- Saying clean P&L includes fees and commissions. Fix: Clean P&L strips out fees, commissions and intraday trading. Actual (dirty) P&L includes them.
- Treating hypothetical P&L as the real trading result. Fix: Hypothetical P&L is a recalculation holding yesterday's closing positions fixed. It is never booked.
- Using p = c instead of p = 1 − c Fix: Always write p = 1 − c first. A 99% VaR has a 1% exception probability.
- Forgetting to subtract 1 in P(X ≥ x) Fix: P(X ≥ x) = 1 − P(X ≤ x − 1). Sum only up to x − 1.
- Using p = c (for example 0.99) instead of 1 − c. Fix: Always write p = 1 − c first. p is the exception probability.
- Using the wrong degrees of freedom. Fix: Kupiec POF uses chi-square with 1 degree of freedom. The conditional coverage test uses 2.
- Using 1 degree of freedom for the conditional coverage test. Fix: Two hypotheses are tested together, so use 2 degrees of freedom and the 5.99 or 9.21 cutoffs.
- Thinking a correct exception count means the model passes. Fix: Counts only test frequency. Clustered exceptions can still fail the independence test.
- Putting 5 exceptions in the green zone, or 10 in the yellow zone. Fix: Green is 0-4, yellow is 5-9, red is 10 or more. Check the boundary counts first.
- Reporting the plus factor as the multiplier. Fix: Always add the plus factor to 3. Five exceptions gives 3.40, not 0.40.
Exam tips
- Know the three P&L labels cold. Questions often ask which series isolates model error: hypothetical or clean.
- Always compute T × (1 − c) first. It anchors every interpretation question.
- Watch for the wording 'too few exceptions'. It is a valid problem, not a good result.
- In case-style questions, trace each breach to a cause: model, data or non-model P&L items.
- Remember that VaR is a forecast made before the day. Backtesting never uses hindsight VaR.
- 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.