Specimen · Model Health Check

VaR and expected-shortfall backtest: a three-asset book

A worked example of the deliverable, formatted as a client receives it. It is run on public prices and on my own models rather than on client data, and every number in it regenerates from the linked script.

Verdict

2 of the 4 VaR models were breached more often than the level they state allows, and the conditional expected-shortfall test passes 0 of 10 model-and-level cells under one reference distribution and 10 of 10 under another. GARCH with a t-copula also misses its stated level, in the cautious direction: at the 97.5% level it was breached on 1.84% of days against 2.5% stated, which is rated Significant. The unconditional test passes the same 6 of 10 cells under every parametric reference, and it passes a model built with too thin a tail. Of 7 findings, 5 are Material, 1 is Significant and 1 is an Observation. On an illustrative EUR 100,000,000 book, the breach record of Parametric EWMA raised the VaR component of the own funds requirement by EUR 1.621m on average [EUR 0.629m, EUR 2.643m]. With that penalty included it still held EUR 3.522m less than the model that kept its level.

IDFindingSeverityOwn funds effect, illustration
F-01Parametric EWMA VaR at the stated 99.0% level was breached on 2.07% of days, against 1.0% statedMaterialEUR 1.621m
F-02Historical simulation VaR at the stated 99.0% level was breached on 1.75% of days, against 1.0% statedMaterialEUR 1.623m
F-03The conditional ES test passes 0 of 10 model-and-level cells under one reference and 10 under anotherMaterial—
F-04The unconditional ES test passes the same 6 of 10 cells under every parametric reference and passes a thin-tailed model with the right breach countMaterial—
F-05The reference distribution was changed in the same revision as the modelMaterial—
F-06GARCH with a t-copula VaR at the stated 97.5% level was breached on 1.84% of days, against 2.5% statedSignificantnone
F-07Conformal-PID VaR at the stated 99.0% level was breached on 1.10% of days, against 1.0% statedObservationEUR 0.382m

The last column is the average rise in the VaR component of the own funds requirement caused by the backtesting addend, on an assumed EUR 100,000,000 book. It is an illustration, not evidence: the public book has no euro value. The rule, its version and its scope are under Sources.

Scope and exclusions

What a review did not look at is the half a reader cannot infer, so it is stated before the findings.

What this review did not check
  • Whether any model's point forecast of volatility can be improved. This reviews the stated VaR and ES against outcomes, and the tests used to grade them.
  • Any book other than this one, and any day outside the 2,172 graded.
  • The stressed-VaR component of the own funds requirement, incremental risk, and anything under the standardised approach. Only the VaR component is computed.
  • Whether any of this would be accepted by a supervisor. This is evidence and analysis. It is not a certification, and it is not a regulatory sign-off.

Findings register

F-01 · Model Material

Parametric EWMA VaR at the stated 99.0% level was breached on 2.07% of days, against 1.0% stated

Why this severity
the stated breach rate lies outside the interval (more breaches than stated) and breaches arrive in clusters (independence rejected, p = 0.040), and the model sat outside the green zone in 54% of 250-day windows (interval lower bound 27.6%, against 10.8% for a correctly stated model)
Measurement
99.0% level: 45 breaches against 21.7 stated, rate 2.07% [1.43%, 2.77%], Material; 97.5% level: 79 breaches against 54.3 stated, rate 3.64% [2.80%, 4.57%], Significant. Intervals are 95% month-block bootstrap over 104 calendar months, 2,172 trading days. At the 99% level the trailing 250-day count reached 11 and stood at 8 on the last day; the model sat outside the green zone in 54% of 1,923 complete windows [28%, 86%], against 10.8% for a correctly stated model.
Consequence
Illustration on an assumed EUR 100,000,000 book: the addend raised the VaR component of the own funds requirement by EUR 1,621,308 on average over the period [EUR 629,407, EUR 2,643,462], and by EUR 5,936,423 at its peak. With the addend the component averaged EUR 15,549,595 (a multiplication factor 11.17% higher on average; under the add-on table that applies from 1 January 2027 the same counts give 11.24%), which is still EUR 3,522,014 below the EUR 19,071,609 of Conformal-PID, the model that held its level. The addend did not close the gap the understated VaR opened.
Recommended action
Do not quote this VaR at its stated level. Either re-state it at the level it delivered, or replace the step that sets its width: the breach count is too high for too long to be a bad year. Read the row below it in the table before choosing a replacement, because the model that holds its level is also the one that quotes the larger VaR.
Limit of this finding
One three-asset book over one period. The interval resamples calendar months, so it carries clustering within a month and not dependence across months. The zone shares come from overlapping 250-day windows, of which this period holds fewer than 9 that do not overlap. The euro figures assume an illustrative book of EUR 100 million, cover the VaR component only, and scale a one-day VaR to ten days by the square root of time.

F-02 · Model Material

Historical simulation VaR at the stated 99.0% level was breached on 1.75% of days, against 1.0% stated

Why this severity
breaches arrive in clusters (independence rejected, p = 0.001), and the model sat outside the green zone in 45% of 250-day windows (interval lower bound 12.6%, against 10.8% for a correctly stated model)
Measurement
99.0% level: 38 breaches against 21.7 stated, rate 1.75% [0.98%, 2.57%], Material; 97.5% level: 73 breaches against 54.3 stated, rate 3.36% [2.35%, 4.56%], Significant. Intervals are 95% month-block bootstrap over 104 calendar months, 2,172 trading days. At the 99% level the trailing 250-day count reached 13 and stood at 5 on the last day; the model sat outside the green zone in 45% of 1,923 complete windows [13%, 72%], against 10.8% for a correctly stated model.
Consequence
Illustration on an assumed EUR 100,000,000 book: the addend raised the VaR component of the own funds requirement by EUR 1,623,130 on average over the period [EUR 295,728, EUR 2,576,061], and by EUR 8,418,245 at its peak. With the addend the component averaged EUR 17,328,194 (a multiplication factor 8.89% higher on average; under the add-on table that applies from 1 January 2027 the same counts give 8.98%), which is still EUR 1,743,415 below the EUR 19,071,609 of Conformal-PID, the model that held its level. The addend did not close the gap the understated VaR opened.
Recommended action
Do not quote this VaR at its stated level. Either re-state it at the level it delivered, or replace the step that sets its width: the breach count is too high for too long to be a bad year. Read the row below it in the table before choosing a replacement, because the model that holds its level is also the one that quotes the larger VaR.
Limit of this finding
One three-asset book over one period. The interval resamples calendar months, so it carries clustering within a month and not dependence across months. The zone shares come from overlapping 250-day windows, of which this period holds fewer than 9 that do not overlap. The euro figures assume an illustrative book of EUR 100 million, cover the VaR component only, and scale a one-day VaR to ten days by the square root of time.

F-03 · The test Material

The conditional ES test passes 0 of 10 model-and-level cells under one reference and 10 under another

Why this severity
100% of its verdicts change zone when only the reference distribution changes
Measurement
Models, data, VaR and ES held fixed; only the reference distribution changes. Cells passing by reference: Gaussian 0, Student-t, df 15 5, Moment-matched t (as used) 6, Student-t, df 8 7, Student-t, df 5 10, Vol-adjusted empirical 10, of 10 (5 models at 2 levels). 10 of 10 verdicts change zone across the 5 parametric references, and 10 of 10 change between pass and fail. Known-broken models under the reference as used: right breach count, thin tail at 99.0%: yellow; right breach count, thin tail at 97.5%: red. Each reference is 2,000 simulated paths, seeded, the same paths for both statistics.
Consequence
A verdict that moves with a modelling choice nobody recorded cannot be defended as a finding about the model. No euro figure is attached: an ES zone has no supervisory multiplier in the rule this report applies.
Recommended action
Do not report this zone as evidence that the expected shortfall is adequate. Report the reference distribution beside every verdict, and read the statistic with an exceedance-count test, which it is designed to be paired with.
Limit of this finding
One implementation on one dataset. The references here are moment-matched approximations, not each model's exact predictive distribution; with an exact reference the threshold moves less. With 17 to 79 breach days per cell the statistic is an average over a few dozen numbers.

F-04 · The test Material

The unconditional ES test passes the same 6 of 10 cells under every parametric reference and passes a thin-tailed model with the right breach count

Why this severity
it passes a model built to be broken (right breach count, thin tail, green at the 99.0% level, p = 0.182; right breach count, thin tail, green at the 97.5% level, p = 0.240)
Measurement
Models, data, VaR and ES held fixed; only the reference distribution changes. Cells passing by reference: Gaussian 6, Student-t, df 15 6, Moment-matched t (as used) 6, Student-t, df 8 6, Student-t, df 5 6, Vol-adjusted empirical 10, of 10 (5 models at 2 levels). 4 of 10 verdicts change zone across the 5 parametric references, and 0 of 10 change between pass and fail. Known-broken models under the reference as used: right breach count, thin tail at 99.0%: green; right breach count, thin tail at 97.5%: green; VaR and ES scaled by 0.8 at 99.0%: red; VaR and ES scaled by 0.8 at 97.5%: red. Each reference is 2,000 simulated paths, seeded, the same paths for both statistics.
Consequence
A pass from this test says the breach count and depth together are not alarming. It does not say the tail is as deep as the model claims.
Recommended action
Keep this statistic as the working ES check, paired with an exceedance-count test, and do not read a pass as evidence about tail depth. Add a known-broken model of each kind to the validation pack so the blind side stays visible.
Limit of this finding
The pass and fail verdicts are stable here because the models it rejects breach too often by a wide margin. That is a property of these models on this data, not of the statistic in general. Stable pass and fail is not a stable zone: a rejected cell can still move between yellow and red.

F-05 · Process Material

The reference distribution was changed in the same revision as the model

Why this severity
the reference and the model changed in one revision; the reference moved the threshold 11 times as far as the model moved the statistic, and against the original reference the changed model still does not pass
Measurement
Conformal-PID at the 99% level, 2 backtest runs and 2 references. The model change moved Z1 by +0.0096 (from -0.0004 to +0.0092). The reference change moved the pass threshold by -0.104 (from +0.019 to -0.085). Against the original reference the changed model is yellow; with both changes it is green.
Consequence
The recorded reason for the improvement was wrong. A validation pack that credits a model change for a result the test change produced will not survive a second reader who separates the two.
Recommended action
Record the reference as a model with its own change log. When a reference and a model change together, run the 2-by-2 that separates them before attributing the result; the reference is applied after the fact, so it costs 2 runs.
Limit of this finding
One model at one level. The 2 effects are point values from seeded runs with 2,000 reference draws each; no interval is attached to their ratio.

F-06 · Model Significant

GARCH with a t-copula VaR at the stated 97.5% level was breached on 1.84% of days, against 2.5% stated

Why this severity
the stated breach rate lies outside the interval (fewer breaches than stated); the supervisory count is defined at the 99% level only, so no zone consequence is scored at this level
Measurement
99.0% level: 17 breaches against 21.7 stated, rate 0.78% [0.42%, 1.20%], Observation; 97.5% level: 40 breaches against 54.3 stated, rate 1.84% [1.33%, 2.39%], Significant. Intervals are 95% month-block bootstrap over 104 calendar months, 2,172 trading days. At the 99% level the trailing 250-day count reached 4 and stood at 3 on the last day; the model sat outside the green zone in 0% of 1,923 complete windows [0%, 19%], against 10.8% for a correctly stated model.
Consequence
Illustration on an assumed EUR 100,000,000 book: no addend applied in any complete window. The VaR component averaged EUR 17,313,536.
Recommended action
The VaR at this level is wider than its stated level requires: it was breached less often than it says. That is the cheaper direction to be wrong in, and it is still a misstatement. Re-state the level, or accept the width as a deliberate margin and record it as one.
Limit of this finding
One three-asset book over one period. The interval resamples calendar months, so it carries clustering within a month and not dependence across months. The zone shares come from overlapping 250-day windows, of which this period holds fewer than 9 that do not overlap. The euro figures assume an illustrative book of EUR 100 million, cover the VaR component only, and scale a one-day VaR to ten days by the square root of time.

F-07 · Model Observation

Conformal-PID VaR at the stated 99.0% level was breached on 1.10% of days, against 1.0% stated

Why this severity
the stated breach rate lies inside the month-block bootstrap interval of the observed rate, and independence of breaches is not rejected (p = 0.573); this evidence does not show the VaR failing at this level
Measurement
99.0% level: 24 breaches against 21.7 stated, rate 1.10% [0.69%, 1.58%], Observation; 97.5% level: 53 breaches against 54.3 stated, rate 2.44% [1.84%, 3.10%], Observation. Intervals are 95% month-block bootstrap over 104 calendar months, 2,172 trading days. At the 99% level the trailing 250-day count reached 7 and stood at 4 on the last day; the model sat outside the green zone in 16% of 1,923 complete windows [0%, 38%], against 10.8% for a correctly stated model.
Consequence
Illustration on an assumed EUR 100,000,000 book: the addend raised the VaR component of the own funds requirement by EUR 381,831 on average over the period [EUR 0, EUR 1,138,492], and by EUR 3,741,986 at its peak. With the addend the component averaged EUR 19,071,609 (a multiplication factor 2.40% higher on average; under the add-on table that applies from 1 January 2027 the same counts give 2.44%).
Recommended action
Nothing to remediate on breach frequency. Keep the count under review: an Observation is a statement about this window, and the interval beside it says how much a window of this length can show.
Limit of this finding
One three-asset book over one period. The interval resamples calendar months, so it carries clustering within a month and not dependence across months. The zone shares come from overlapping 250-day windows, of which this period holds fewer than 9 that do not overlap. The euro figures assume an illustrative book of EUR 100 million, cover the VaR component only, and scale a one-day VaR to ten days by the square root of time.

Evidence

Series integrity, checked before anything is scored

A backtest of a series that is not a forecast and its own outcome grades nothing. Every report opens with the same checks: the breach flag matches the two series, the P&L and the VaR are on the same scale, and the stated ES is at least as deep as the stated VaR. All 5 models pass.

ModelFlag matchesMean |P&L| over mean |VaR|Days ES shallower than VaRVerdict
Parametric EWMAyes0.340passes
Historical simulationyes0.300passes
GARCH with a t-copulayes0.270passes
Conformal-PIDyes0.250passes
Conformal-PID, joint VaR and ESyes0.250passes
Control: Conformal-PID, joint VaR and ES, as released in 0.1.xyes0.331,880 (87%)fails

The control row is a real failure, not an illustration. It is this check run on the previous release of the joint model, which stated an expected shortfall shallower than its own VaR on 1,880 of 2,172 days at its worst level. An expected shortfall is the average loss beyond the VaR, so that pair is impossible. The first run of this report found it, the model was corrected, and the old output is kept because a check nobody has seen fail is a check nobody should trust. Under the rule in the method note it would have been recorded Material.

The scale ratio must lie between 0.10 and 0.70; a P&L in percent against a VaR in fractions would sit near 30. The shallower-day count is at the model's worst audited level.

Breach frequency against the level each VaR states

Intervals are 95% month-block bootstrap, resampling whole calendar months 2,000 times. Independence is the Christoffersen test with a Monte Carlo p-value. A VaR fails when the stated rate falls outside the interval or independence is rejected at 0.05.

ModelStatesBreachesStatedRate95% intervalIndependence pSeverity
Parametric EWMA99.0%4521.72.07%[1.43%, 2.77%]0.040Material
Parametric EWMA97.5%7954.33.64%[2.80%, 4.57%]0.527Significant
Historical simulation99.0%3821.71.75%[0.98%, 2.57%]0.001Material
Historical simulation97.5%7354.33.36%[2.35%, 4.56%]0.012Significant
GARCH with a t-copula99.0%1721.70.78%[0.42%, 1.20%]0.051Observation
GARCH with a t-copula97.5%4054.31.84%[1.33%, 2.39%]0.829Significant
Conformal-PID99.0%2421.71.10%[0.69%, 1.58%]0.573Observation
Conformal-PID97.5%5354.32.44%[1.84%, 3.10%]0.149Observation

Breaches by year at the 99% level

The table above averages over 9 calendar years, and a risk committee lives in one of them at a time. A 99% VaR states about 2.5 breaches in a full year.

Model201820192020202120222023202420252026
Parametric EWMA509772546
Historical simulation467071544
GARCH with a t-copula302211332
Conformal-PID223213632

2026 is a part year of 161 trading days.

Time spent outside the green zone

The supervisory rule counts overshootings of the one-day 99% VaR over the most recent 250 business days. Fewer than 5 carries no addend. From 5 upward an addend is added to the multiplication factor of 3. A correctly stated model, with independent breaches, would still show 5 or more in 10.8% of windows. The period holds 1,923 complete windows, of which only 8 do not overlap, so the intervals are wide.

05105 or more: an addend applies10 or more: the full addend of 1Parametric · 8Historical · 5GARCH t · 3Conformal-PID · 420192020202120222023202420252026END OF WINDOW · OVERSHOOTINGS OF THE 99% VAR IN THE TRAILING 250 DAYS
Evidence. The count in each complete trailing 250-day window, weekly points, with the count on the last day beside each label. The shaded bands are the ranges in which an addend applies.
ModelNo addend5 to 910 or moreOutside green95% intervalHighest count
Parametric EWMA46%51%3%54%[28%, 86%]11
Historical simulation55%39%7%45%[13%, 72%]13
GARCH with a t-copula100%0%0%0%[0%, 19%]4
Conformal-PID84%16%0%16%[0%, 38%]7

What the addend costs, as an illustration

The euro figures below are an illustration, not evidence. The breach counts and the VaR series are measured. The book value is assumed at EUR 100,000,000, the one-day VaR is scaled to 10 days by the square root of time, and only the VaR component of the requirement is computed: the higher of the previous day's VaR and the 60-day average multiplied by the factor.

ModelWithout addendWith addendAdded by the addend95% intervalPeak
Parametric EWMAEUR 13.928mEUR 15.550mEUR 1.621m[EUR 0.629m, EUR 2.643m]EUR 5.936m
Historical simulationEUR 15.705mEUR 17.328mEUR 1.623m[EUR 0.296m, EUR 2.576m]EUR 8.418m
GARCH with a t-copulaEUR 17.314mEUR 17.314mEUR 0.000m[EUR 0.000m, EUR 0.525m]EUR 0.000m
Conformal-PIDEUR 18.690mEUR 19.072mEUR 0.382m[EUR 0.000m, EUR 1.138m]EUR 3.742m

The model that breached most still carried the smallest requirement after its penalty. Parametric EWMA averaged EUR 15.550m with the addend, against EUR 19.072m for Conformal-PID, because its VaR is smaller every day and the addend applied in only part of the period. On this evidence the addend prices a poor breach record. It does not make an understated VaR as expensive as an honest one.

The expected-shortfall test against 6 reference distributions

Each model's ES verdict comes from comparing a statistic to a threshold simulated from a reference distribution. Here the models, the data, the VaR and the ES are held fixed and only the reference changes. The table counts how many of the 10 model-and-level cells pass.

Reference distributionConditional statistic, Z1Unconditional statistic, Z2
Gaussian0 of 106 of 10
Student-t, df 155 of 106 of 10
Moment-matched t, as used6 of 106 of 10
Student-t, df 87 of 106 of 10
Student-t, df 510 of 106 of 10
Vol-adjusted empirical10 of 1010 of 10
Verdicts that change zone across the 5 parametric references10 of 104 of 10

A cell passes only in the green zone, so a verdict can change zone without changing between pass and fail. Under Z2, 4 of 10 cells change zone and none of them changes between pass and fail; they move between yellow and red and fail under every parametric reference. That is why the Z2 column shows the same count in each parametric row.

What the test does to a model known to be broken

2 models were built to be wrong in one way each, from Conformal-PID. One has the right number of breaches and a tail that is too thin. The other has its VaR and ES scaled by 0.8, so it breaches far too often. A test that passes a model broken in the way it is meant to detect is not carrying the weight placed on it.

StatisticKnown-broken modelLevelBreachesZone, reference as usedpCaught
Z1Right breach count, thin tail99.0%24yellow0.008yes
Z1Right breach count, thin tail97.5%53red0.000yes
Z2Right breach count, thin tail99.0%24green0.182no
Z2Right breach count, thin tail97.5%53green0.240no
Z2VaR and ES scaled by 0.899.0%54red0.000yes
Z2VaR and ES scaled by 0.897.5%100red0.000yes

Z1 averages over the breach days and cannot see how many there were, so the scaled model is not held against it. Z1 does flag the thin-tailed model here, but under that model's own Gaussian reference, which puts the working Conformal-PID model in the same zones. The flag does not separate the two.

What moved the result: the model or the test

One revision changed the model's copula and the test's reference distribution together, and the ES verdict improved. The 2-by-2 below separates them for Conformal-PID at the 99% level.

ChangeFromToMoved
Model changed, reference held: the statistic Z1−0.0004+0.0092+0.0096
Reference changed, model held: the pass threshold+0.019−0.085−0.104

The reference moved the threshold about 11 times as far as the model moved the statistic. Against the original reference the changed model is yellow; with both changes it is green.

Assumptions register

Every number above rests on these. The second column says which way the headline moves if the assumption is wrong.

AssumptionIf it is wrong
The book is worth EUR 100,000,000Illustrative. Every euro figure scales in proportion, and none of them is evidence about any real book.
The firm holds internal-model permission, so the multiplication factor appliesIf it does not, the euro column does not apply at all. The breach, clustering and test findings stand without it.
Only the VaR component is computed; the stressed-VaR component is left outUnderstates. The stressed component carries the same addend, so the effect on a real requirement is larger.
One-day VaR scaled to 10 days by the square root of timeEither direction. The Regulation permits scaling by an appropriate methodology; a directly computed 10-day VaR would differ.
One P&L series stands for both hypothetical and actual changes in valueThe rule counts the higher of the two. A real desk with fees and intraday trading has 2 series, and the count can only be equal or higher.
The multiplication factor is exactly 3 plus the table's addendUnderstates where a supervisor sets a factor above the minimum. The rule says "at least 3".
Calendar months are the bootstrap blockCarries clustering within a month, not across months. Longer dependence would widen every interval further.
The addend is re-read every dayThe rule requires the count "at least quarterly". A firm that updates quarterly would see the same counts later and in steps.
The rule in force on the date of this run applies throughout the periodIt changes on 1 January 2027. The count is unchanged; the add-on table is different. Under it the same counts raise the factor by 11.24% on average for Parametric EWMA, against 11.17% under the rule applied here.

Method note

How severity is assigned

Severity is derived by rule, not asserted. There are 4 kinds of finding and each has its own rule, fixed in the script and tested there.

Series integrity
Material when a model states an ES shallower than its own VaR on more than 1% of days at any audited level. Observation at or below that.
Model
Observation when the stated breach rate lies inside the month-block interval and independence is not rejected. Material when either fails and the model sat outside the green zone in at least 25% of windows and the lower bound of that share exceeds the 10.8% a correct model would spend there. Significant otherwise. The zone limb exists only at the 99% level, because the rule counts there and nowhere else.
The test
Material when the test passes a model built to be broken in the way the statistic is meant to detect, or when more than 50% of its verdicts change zone across the parametric references. Significant when some change and every control is caught. Observation when none change.
Process
Material when the reference and the model changed in one revision, the reference moved the threshold further than the model moved the statistic, and the model change alone does not reach a pass.

A model takes the most severe rating it reaches at any audited level. The 25% floor is a commercial judgement and not a statistical one. It is stated here so it can be argued with.

The rule was revised once

The model rule was revised once, after the first run of this script and before anything was published. The first version tested breach frequency only. Under it Historical simulation scored Observation at both levels, because its breaches cluster and the clustering widens the month-block interval until it contains the stated rate (1.75% [0.98%, 2.57%] at the 99% level). A VaR also states that breaches do not cluster, so an independence limb was added. That is a change made after seeing a result, and it is recorded here for that reason.

Where the floor bit

Historical simulation is recorded Material on a narrow margin. Its share of windows outside green has an interval lower bound of 12.6%, against the 10.8% a correct model would spend there. The independence limb that brought it into scope is the one added in the revision above. A reader who rejects that revision should read this finding as an Observation.

Why the intervals are bootstrapped by month and not binomial

Breaches cluster: a bad week contributes several. Treating 2,172 days as independent trials gives an interval tighter than the evidence supports. Every interval here resamples whole calendar months with replacement, 2,000 times, seed 20261111. Each estimate has its own random stream, keyed by what is being estimated, so adding a statistic does not move the others.

Sources

Rule appliedRegulation (EU) No 575/2013, Article 364(1)(a), Article 365(1) and Article 366(2) and (3) with Table 1, consolidated version of 9 January 2024 (CELEX 02013R0575-20240109). That is the text in force on 8 July 2024.
Why that versionRegulation (EU) 2024/1623 deleted Part Three, Title IV, Chapter 5. Article 520a, as replaced by Commission Delegated Regulation (EU) 2025/1496 of 12 June 2025, reads: 'Until 1 January 2027, institutions shall continue to apply Part Three, Title IV, and the market risk requirements of Articles 430, 430b, 445 and 455 of this Regulation in the version in force on 8 July 2024.'
From 1 January 2027From 1 January 2027: Article 325bf(6) with Table 3, consolidated version of 26 June 2026 (CELEX 02013R0575-20260626). Same count (overshootings of a one-day 99% VaR over the most recent 250 business days), a base of 1,5 and an add-on of 0,20 to 0,50.
Zone namesZone names (green, yellow, red) and the probability a correct model lands in each: Basle Committee on Banking Supervision, Supervisory framework for the use of 'backtesting' in conjunction with the internal models approach to market risk capital requirements, January 1996, Table 2. The Regulation's table carries addends only.
ScopeThe multiplication factor applies to institutions granted permission to use internal models under Article 363. It does not apply to a firm on the standardised approach.
Retrieved2026-11-11, from the Publications Office of the European Union and bis.org

Consolidated texts of EU law are documentation tools and have no legal effect. The authentic versions are those published in the Official Journal.

Lineage

DataDaily adjusted closes for SPY, TLT and GLD from Yahoo Finance, fetched by the repository's own script. Not redistributed.
Scriptscripts/audit_health_check.py
Codesha256 037dd82868ba72ca1c3825ade77ae27366f2e2edc44f836f022a3ad22873bd3a
Artifact digestsha256 2130d812989c81fab076ce819bc25eda09ccd2167632aa9c877e7af8e0e22efe
Digest rulesha256 over every file in artifacts/health_check except meta.json, in filename order, feeding each file's name as UTF-8 followed by its bytes. meta.json is excluded because it carries the digest and cannot hash itself.
Inputsexperiments/factorial/t/details.csv (rebuilt by run_backtest.py, not shipped); experiments/factorial/t/as_null_sensitivity.csv, sha256 f13241a56f0a3e77f61081f85131f1dbfd59c37b7e104aab3b4b079e05bfa6ec; experiments/factorial/gaussian/as_null_sensitivity.csv, sha256 ab639f62a53815b5f7b8cc8fa89a54f2ddfa60c282cfe7ebdb60ca20de643a35
Outputsartifacts/health_check/: findings.json, findings.csv, coverage.json, rolling.json, yearly.json, tests.json, null_sweep.json, process.json, meta.json
Repositorykwantil-research, analyses/var-backtest-tail-risk

What this report does not support

4 conclusions do not follow from it.

  1. That any real firm would have paid these euro amounts. The book value is assumed, only one component of the requirement is computed, and the factor applies only to a firm with internal-model permission.
  2. That these models rank this way on another book. One three-asset book, 2,172 days, 8 non-overlapping windows.
  3. That the expected-shortfall tests are bad tests. The weakness found is in a moment-matched reference this implementation chose. With a model's exact predictive distribution as the reference, the threshold moves much less.
  4. That a model scored Observation is adequate. It says the stated level sits inside the interval on this series and period, at a sample size the report states.

A client engagement replaces the public series and my models with your own and changes nothing else. The analysis behind the test findings is the paper Tail Risk Backtesting: When the Test Improves and the Model Does Not; scope, timing and price are on the services page.