[EBA Related]
Validation rules: @decimals,Interval arithmetic and filing indicators
(Rule 2.18: @decimals. See EBA, CWA & BdF)
- How are EBA validation rules results calculated by the EBA?
- What “tolerances” are used?
- How does the @decimals attribute affect the evaluation of validation results?
- Reported facts specify the range of values/interval in which the true value lies (using @decimals).
- Validation rules checks are evaluated by the EBA using the principles of “interval arithmetic” to calculate the range of possible values consistent with the reported facts and the calculation.
- If (any possible set of real values represented by) the reported values could possibly satisfy the rule, the rule passes. If the reported values cannot possibly be consistent, the rule fails.
- The “tolerances” are effectively dynamic and calculated based on the indicated accuracy of the reported numbers.
Interpretation of a numeric fact – “Interval”
To understand this you first need to understand the concept of an “interval”, which expresses a range of values between a minimum value and a maximum value. This can be written as “[min,max]”, i.e. the range between 4 and 6 (inclusive) can be written as “[4,6]”.
Numeric facts in XBRL are reported with both a value and an @decimals attribute. The EBA interprets these for validation purposes as indicting that the “true” value of the fact lies in an interval either side of the reported value, with the width of the interval range being indicated by the @decimals attribute.
More precisely, a fact is interpreted as indicating a true value in the interval [value–0.5*10^(-decimals) , value+0.5*10^(-decimal)]. I.e. @decimals=-3 indicates +/- 500, @decimals 4 = +/- 0.00005 etc.
Calculation of rule results – “Interval arithmetic”
Knowing the range of possible values a particular reported fact represents, it is then possible to perform the arithmetic of the validation rules on these intervals, tracking the possible range of values that could result from each calculation.
This then produces, e.g., a single interval each on the left and right side of an equals sign, which can be checked to see if they overlap. If they do, there is a possible set of true values that both satisfy the equation and fit the reported facts, so the reported facts could possibly be correct, so the validation rule is considered to “pass”. If the intervals don’t overlap, the reported facts must be inconsistent, and the file “fails” the rule.
Practical Examples
Validation Rule: EBA v0189_m
Validation Rule Logic: {C 01.00, r070,c010} = {C 05.01, r210,c060}
Value of {C 01.00, r070, c010}: 12,300 @decimals: -3 (i.e. +/- 500)
12,300 ⇒ [12,300 – 500 , 12,300 + 500] ⇒ [11,800 , 12,800]
Value of {C 05.01, r210, c060}: 11,900 @decimals: -3 (i.e. +/- 500)
11,900 ⇒ [11,900 – 500, 11,900 + 500] ⇒ [11,400 , 12,400]
As there is an intersection/overlap of [11,800 , 12,800] with [11,400 , 12,400] , i.e. [11,800 , 12,400], both sides are considered EQUAL.
PASS
Validation Rule: EBA v0492_m
Rule Logic: {C 10.01, r020, c020} = sum({C 10.02, (rNNN), c020})
All facts @decimals: -3 (i.e. +/- 500)
Value of {C 10.01, r020, c020}: 11,900
11,900 ⇒ (11,900 – 500 , 11,900 + 500) ⇒[11,400 , 12,400]
Value of {C 10.02, r1, c020}: 2,499
2,499 ⇒ [2,499 – 500 , 2,499 + 500] ⇒ [1,999 , 2,999]
Value of {C 10.02, r2, c020}: 2,499
2,499 ⇒ [2,499 – 500 , 2,499 + 500] ⇒ [1,999 , 2,999]
Value of {C 10.02, r3, c020}: 2,499
2,499 ⇒ [2,499 – 500 , 2,499 + 500] ⇒ [1,999 , 2,999]
Value of {C 10.02, r4, c020}: 2,499
2,499 ⇒ [2,499 – 500 , 2,499 + 500]⇒ [1,999 , 2,999]
Then the sum [1,999 , 2,999]+ [1,999 , 2,999] + [1,999 , 2,999] + [1,999 , 2,999] ⇒ [7,996 , 12,996]
As there is an intersection/overlap of [11,400 , 12,400] with [7,996 , 12,996] , i.e. [11,400 , 12,400] ), then both facts are considered EQUAL. PASS
Sign rules
e.g. a + b + c < 0
- Work out the possible interval in which the value of a + b + c can be based on the reported values and accuracies of a, b, and c
- Check if this any part of this interval is less than zero
a = 1025 +/-500 b = 5000 +/-500 c = -6000 +/-500 a+b+c = [525,1525] + [4500,5500] + [-6500,-5500] = [-1475,+1525]
part of this interval [-1475,0) is < zero, so the values could be consistent with the rule, so the rule passes.
Sums/cell ranges
e.g. sum(r020-040) = {r010}
Simply replace the range with the addition of all the cells within the range, and evaluate as normal. So the resulting tolerance depends on the number of cells in the range, and the accuracy of each reported number in the range.
e.g. the classic example where interval arithmetic differs from traditional approach of “fudging the numbers so they look right” (footing/casting in accountant terminology)
010 Value | |
010 Total | 4000 |
020 Breakdown 1 | 1000 |
030 Breakdown 2 | 1000 |
040 Breakdown 3 | 1000 |
All values are reported to @decimals = -3 (so +/-500)
sum(r020-040) = {r010} sum([500,1500], [500,1500], [500,1500]) = [3500,4500][1500,4500] = [3500,4500]
These intervals overlap (e.g. 4000 is in both), so the values are consistent with the rule, rule passes.
How do filing indicators affect validation rules?
Each EBA validation rule has a specific set of tables (often just one, sometimes several) which are preconditions for applying the rule. All of these tables must be reported in a particular instance for the validation rule to be applicable to that instance.
What does “reported in a particular instance” mean? Simple, it means the XBRL instance must contain a filing indicator associated with each of those tables (and that filing indicator must not use the @find:filed=”false” attribute).