What is the conditional coverage test in VaR backtesting and how does it improve on Kupiec's test?
I'm studying VaR backtesting for FRM Part II. I understand Kupiec's unconditional coverage test (it checks whether the number of exceptions is right), but the Christoffersen conditional coverage test adds something about the 'clustering' of exceptions. Why does clustering matter and how does the test work?
The Christoffersen conditional coverage test is a more comprehensive backtest than Kupiec's because it checks two things simultaneously: (1) whether the correct number of VaR exceptions occurs, and (2) whether exceptions are independent over time (no clustering).
Why Clustering Matters
Imagine two 99% VaR models, each with exactly 2.5 exceptions per year (close to the expected 2.5 at 99%):
- Model A: Exceptions on Jan 15 and Aug 22 — spread across the year.
- Model B: Exceptions on March 3 and March 4 — back-to-back.
Kupiec's test would pass both models (correct frequency). But Model B is clearly worse — if an exception today predicts an exception tomorrow, the model is not capturing volatility clustering (a hallmark of financial returns). The risk manager is exposed to consecutive large losses.
The Three Tests
| Test | What It Checks | Null Hypothesis |
|---|---|---|
| Kupiec (POF) | Unconditional coverage | Exception rate = 1 − confidence level |
| Independence | No serial correlation in exceptions | P(exception today given exception yesterday) = P(exception today) |
| Christoffersen (CC) | Both coverage AND independence | Joint test of both properties |
The Christoffersen Framework
Define indicator I_t = 1 if VaR exception on day t, 0 otherwise. Build a 2x2 transition matrix:
| I_{t} = 0 | I_{t} = 1 | |
|---|---|---|
| I_{t-1} = 0 | n_00 | n_01 |
| I_{t-1} = 1 | n_10 | n_11 |
Where n_ij counts transitions from state i to state j.
- pi_01 = n_01 / (n_00 + n_01) — probability of exception given no exception yesterday
- pi_11 = n_11 / (n_10 + n_11) — probability of exception given exception yesterday
Independence holds when pi_01 = pi_11. If pi_11 > pi_01, exceptions cluster.
The test statistic is a likelihood ratio:
LR_CC = LR_UC + LR_IND
Distributed as chi-squared with 2 degrees of freedom under the null.
Worked Example
Hawthorne Asset Management backtests their 99% VaR over 250 trading days:
n_00 = 239, n_01 = 3, n_10 = 3, n_11 = 5
Total exceptions = n_01 + n_11 = 8
Expected exceptions = 250 x 0.01 = 2.5
pi_01 = 3/242 = 1.24%
pi_11 = 5/8 = 62.5%
Clearly pi_11 >> pi_01 — severe clustering. An exception today is followed by another exception 62.5% of the time (vs. 1.24% on a normal day).
The conditional coverage test would strongly reject at any reasonable significance level, even though the unconditional frequency (8/250 = 3.2%) is only moderately above 1%.
Exam Tip: If asked to backtest, always consider both coverage AND independence. A model can have the right exception rate but still be dangerous if exceptions cluster during market stress.
Practice more backtesting problems in our FRM Part II question bank.
Master Part II with our FRM Course
64 lessons · 120+ hours· Expert instruction
Related Questions
How exactly do futures margin calls work, and what happens if I can't meet one?
How do you calculate the settlement amount on a Forward Rate Agreement (FRA)?
When should I use Monte Carlo simulation instead of parametric VaR, and how does it actually work?
Parametric VaR vs. Historical Simulation VaR — when does each method fail?
What are the core components of an Enterprise Risk Management (ERM) framework, and how does it differ from siloed risk management?
Join the Discussion
Ask questions and get expert answers.