A
AcadiFi
BZ
Backtester_Zoe2026-04-04
frmPart IIMarket Risk MeasurementBacktesting

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?

138 upvotes
Verified ExpertVerified Expert
AcadiFi Certified Professional

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

TestWhat It ChecksNull Hypothesis
Kupiec (POF)Unconditional coverageException rate = 1 − confidence level
IndependenceNo serial correlation in exceptionsP(exception today given exception yesterday) = P(exception today)
Christoffersen (CC)Both coverage AND independenceJoint 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} = 0I_{t} = 1
I_{t-1} = 0n_00n_01
I_{t-1} = 1n_10n_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

#backtesting#conditional-coverage#christoffersen#kupiec#var-validation