Presentation is loading. Please wait.

Presentation is loading. Please wait.

INFORMATION SYSTEMS AND PROCESSES XBRL FORMULAE TUTORIAL Víctor Morilla IT Project Manager of Bank of Spain Member of CEBS XBRL Network IX European Banking.

Similar presentations


Presentation on theme: "INFORMATION SYSTEMS AND PROCESSES XBRL FORMULAE TUTORIAL Víctor Morilla IT Project Manager of Bank of Spain Member of CEBS XBRL Network IX European Banking."— Presentation transcript:

1 INFORMATION SYSTEMS AND PROCESSES XBRL FORMULAE TUTORIAL Víctor Morilla IT Project Manager of Bank of Spain Member of CEBS XBRL Network IX European Banking Supervisors XBRL Workshop Paris September 29th 2008 1

2 INFORMATION SYSTEMS AND PROCESSES WHY A NEW LANGUAGE? Why not using existing languages like... -JAVA, C#, C++ or Cobol -XML based languages like XSLT, XQuery or Schematron Key requirements –Easy and intuitive –Maintainable –Extensible 2

3 INFORMATION SYSTEMS AND PROCESSES WHY A NEW LANGUAGE? Niklaus Wirth Designer of programming languages like Pascal, Euler or Modula Author of the book Algorithms + Data Structures = Programs 3

4 INFORMATION SYSTEMS AND PROCESSES DATA STRUCTURES 4

5 INFORMATION SYSTEMS AND PROCESSES DATA STRUCTURES 5 12347879808156789101112... evn : checks that a list of numbers has at least one 1, 2,..., 9 evn(1,2,...,9) and evn(10,11,...,18) and evn(19,20,...,27) and... evn(73,74,...,81) and evn(1,10,...,73) and evn(2,11,...,74) and... evn(9,27,...,81) and evn(1,2,3,10,11,12,19,20,21) and... for i in (0...8) evn(1 + i*9, 2 + i*9,..., 9 + i*9) for i in (0..8) evn(1 + i, 10 + i,..., 73 + i) for i in (0..2) for j in (0..2) evn(1 + i + j*9, 2 + i + j*9,...)

6 INFORMATION SYSTEMS AND PROCESSES DATA STRUCTURES 6 123456789 Row 2 Row 3 Row 4 Row 5 Row 6 Row 7 Row 8 Row 9 Row 1 Row group 1 Row group 2 Row group 3 Column group 1 Column group 2 Column group 3

7 INFORMATION SYSTEMS AND PROCESSES DATA STRUCTURES -For each row r: evn(r) -For each c: evn(c) -For each column group cg and for each row group rg: evn(every cell in cg and rg) 7

8 INFORMATION SYSTEMS AND PROCESSES DATA STRUCTURE OF XSLT, XQUERY OR SCHEMATRON 8

9 INFORMATION SYSTEMS AND PROCESSES DATA STRUCTURE OF XBRL FORMULAE 9

10 INFORMATION SYSTEMS AND PROCESSES MULTIDIMENSIONAL VIEW OF XBRL FACTS: THE ASPECT MODEL A value A concept: Incomes A set of dimensions – Standard Entity Time – User defined Titulizations Market Additional properties: unit and precision 10 t Credit institution Concept 100 (prec 3) Dexia Dec 2007 Incomes

11 INFORMATION SYSTEMS AND PROCESSES INPUT: VARIABLES AND FILTERS To identify input data in a formula we use variables and filters: -Filters select slices and regions of our model: -Concepts: Incomes,... -Periods: 2008, 2007,... -User dimensions: Country,... -Filters can be combined to select more specific data 11 A * B + C

12 INFORMATION SYSTEMS AND PROCESSES OUTPUT: XPATH EXPRESSIONS ($a + $b) * 2.5 abs($x + $y) = $z XPath 2.0: W3C Recommendation (since January 2007) Expression language used by XSLT, XQuery and Schematron We can combine: Arithmetic expressions Logical expressions Conditional expressions … Defines a set of standard operators and functions: +, -, *, div, mod, =, !=,, and, or, … abs, ceiling, floor, concat, upper-case, … 12

13 INFORMATION SYSTEMS AND PROCESSES TYPES OF FORMULAE Formulae to produce new facts from existing ones Assertions to verify a condition: true or false Value assertions Existence assertions Consistency assertions 13

14 INFORMATION SYSTEMS AND PROCESSES EXAMPLES MKR SA EQUMARKET RISK: STANDARDISED APPROACH FOR POSITION RISK IN EQUITIES National market: POSITIONS RISK CAPITAL CHARGE (%) CAPITAL REQUIREMENTS ALL POSITIONS (-) REDUCTION EFFECT FOR UNDERWRITING POSITIONS NET POSITIONS NET POSITIONS SUBJECT TO CAPITAL CHARGE LONGSHORT LONGSHORT (1)(2)(3)(4)(5)(6) (7) EQUITIES IN TRADING BOOK Link to CA template 1 General risk 8,00 1.1 Exchange traded stock-index futures broadly diversified subject to particular approach 1.2 Other equities than exchange traded stock-index futures broadly diversified 2 Specific risk 2.1 High quality, liquid and diversified portfolios subject to lower capital requirements 2,00 2.2 Other equities than high quality, liquid and diversified portfolios 4,00 3 Particular approach for position risk in CIUs 4 Margin-based approach for exchange-traded futures and options 5 Margin-based approach for OTC futures and options 6 Other non-delta risks for options 14

15 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 1 15 Two input variables: $allPosShort: Concept name: p-cm-mr:AllPositionsShort $netPosShort: Concept name: p-cm-mr:NetPositionsShort Test = $allPosShort ge $netPosShort All Positions Short greater or equal than Net Positions Short

16 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 1: TECHNICAL REPRESENTATION 16 ValueAssertion @test = $allPosShort ge $netPosShort FactVariable Concept Name: p-cm-mr:AllPositionsShort FactVariable Concept Name: p-cm-mr:NetPositionsShort @name=allPosShort @name=netPosShort

17 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 2 17 Two input variables: $allPosShort (fallbackValue = 0): Concept name: p-cm-mr:AllPositionsShort $netPosShort: Concept name: p-cm-mr:NetPositionsShort Test = $allPosShort ge $netPosShort All Positions Short greater or equal than Net Positions Short Assume zero for All Positions if not reported

18 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 2: TECHNICAL REPRESENTATION 18 ValueAssertion @test = $allPosShort ge $netPosShort FactVariable @fallbackValue=0 Concept Name: p-cm-mr:AllPositionsShort FactVariable Concept Name: p-cm-mr:NetPositionsShort @name=allPosShort @name=netPosShort

19 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 3 19 Two input variables: $allPosShort (fallbackValue = 0): Concept name: p-cm-mr:AllPositionsShort $netPosShort (fallbackValue = 0): Concept name: p-cm-mr:NetPositionsShort Test = $allPosShort ge $netPosShort All Positions Short greater or equal than Net Positions Short Assume zero for All and Net Positions if not reported

20 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 4A 20 Two input variables: $allPosShort : Concept name: p-cm-mr:AllPositionsShort Explicit dimension: d-mr:MarketRiskDimension = d-mr:MRiskSAEQUTotal $netPosShort : Concept name: p-cm-mr:NetPositionsShort Explicit dimension: d-mr:MarketRiskDimension = d-mr:MRiskSAEQUTotal Test = $allPosShort ge $netPosShort All Positions Short greater or equal than Net Positions Short For Total Equities in Trading Book

21 INFORMATION SYSTEMS AND PROCESSES COMBINING FILTERS Two or more filters produce the intersection of desired values (they are combined using an logical AND) Boolean filters can be used for more complex combinations: - OR filter - AND filter The attribute complement in arcs to filters can be used to obtain the negation of the filter linked (this attribute has been assumed to be false in examples). 21

22 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 4B 22 A group filter: Explicit dimension: d-mr:MarketRiskDimension = d-mr:MRiskSAEQUTotal Two input variables: $allPosShort : Concept name: p-cm-mr:AllPositionsShort $netPosShort : Concept name: p-cm-mr:NetPositionsShort Test = $allPosShort ge $netPosShort All Positions Short greater or equal than Net Positions Short For Total Equities in Trading Book

23 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 5A 23 A group filter: Explicit dimension: d-mr:MarketRiskDimension d-mr:MRiskSAEQUGeneralRisk d-mr:MRiskSAEQUSpecificRisk Two input variables: $allPosShort : Concept name: p-cm-mr:AllPositionsShort $netPosShort : Concept name: p-cm-mr:NetPositionsShort Test = $allPosShort ge $netPosShort All Positions Short greater or equal than Net Positions Short For General risk and for Specific risk

24 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 5B 24 Two input variables: $allPosShort : Concept name: p-cm-mr:AllPositionsShort Explicit dimension: d-mr:MarketRiskDimension d-mr:MRiskSAEQUGeneralRisk d-mr:MRiskSAEQUSpecificRisk $netPosShort : Concept name: p-cm-mr:NetPositionsShort Explicit dimension: d-mr:MarketRiskDimension d-mr:MRiskSAEQUGeneralRisk d-mr:MRiskSAEQUSpecificRisk Test = $allPosShort ge $netPosShort All Positions Short greater or equal than Net Positions Short For General risk and for Specific risk

25 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 6 25 Two input variables: $capReq : Concept name: p-cm-mr:MarketRiskCapitalRequirements Explicit dimension: d-mr:MarketRiskDimension = d-mr:MRiskSAEQUTotal $netPosShort : Concept name: p-cm-mr:NetPositionsShort Test = $netPosShort lt $capReq Any Net Positions Short less than Cap Requirements for equities in trading books

26 INFORMATION SYSTEMS AND PROCESSES THE IMPLICIT FILTER Three steps in the evaluation of a set of variables: Each variable is evaluated individually to obtain the list of all candidate values $a = (a1, a2, a3) $b = (b1, b2) $c = (c1, c2) The Cartesian product is obtained: The implicit filter discards every combination that doesnt verifies the following condition: 26 a1 a2 a3 b1 b2 b1 b2 b1 b2 c1c2c1c2c1c2c1c2c1c2c1c2

27 INFORMATION SYSTEMS AND PROCESSES THE IMPLICIT FILTER 27 For every pair of variables of a formula / assertion, the value of each aspect that is not explicitly filtered* by a variable filter must be the same So, combinations that mix different values for aspects not explicitly filtered are not allowed More precisely: aspects not covered. An aspect is covered for a variable if that variables has a variable filter for that aspect with the attribute @cover with a value of true. In this tutorial, it is assumed that every variable filter has this attribute set to true. Group filters dont cover aspects. So, group filters are ignored by this rule

28 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 7 28 $genRisk : Exp dimension: MarketRiskDimension = d-mr:MRiskSAEQUGeneralRisk $exc (fallbackValue = 0) : Exp dimension: MarketRiskDimension = d- mr:MRiskSAEQUExchangeTradedStockIndexFuturesBroadlyDiversified SubjectParticularApproach $other (fallbackValue = 0): Exp dimension: MarketRiskDimension = d- mr:MRiskSAEQUOtherEquitiesThanExchangeTradedStockIndexFutures BroadlyDiversified Test = $genRisk = $exc + $other General risk (1) must be equal to the addition of 1.1 and 1.2 For every concept (zero assumed if missing)

29 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 8 29 $total : Exp dimension: MarketRiskDimension = MRiskSAEQUTotal $breakdown* (fallbackValue = 0): Exp dimension: MarketRiskDimension = d-mr:MRiskSAEQUGeneralRisk … d-mr:MRiskSAEQUOtherNonDeltaRisksOptions Test = $total = sum($breakdown) Total Equities in trading book equal to the sum of its breakdown For every concept (zero assumed if missing)

30 INFORMATION SYSTEMS AND PROCESSES XPATH DATA MODEL Atomic values: a number, a string,... 1 Hello! Sequences (1, 5, 10) (Foo, bar) Nodes Some operators and functions apply to atomic values: 2 + 5 abs(-2) Some operators / functions apply to sequences: sum((2, 3, 5)) max((10, 20, 30)) 30

31 INFORMATION SYSTEMS AND PROCESSES BIND AS SEQUENCE ATTRIBUTE The attribute bindAsSequence in a variable is used to make the difference between: - Variables to be bound to single values on each evaluation - Variables to be bound to sequences of values 31 Use sequence functions/operators with sequence variables Use atomic/node functions/ operators with simple variables Sequence variables are to be used with filters that select more than one value. Only aspects explicitly filtered* for these variables are mixed in one evaluation *More precisely: only aspects covered

32 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 8B 32 $total : Exp dimension: MarketRiskDimension = MRiskSAEQUTotal $breakdown* (fallbackValue = 0): Exp dimension: MarketRiskDimension = child of MRiskSAEQUTotal Test = $total = sum($breakdown) Total Equities in trading book equal to the sum of its breakdown For every concept (zero assumed if missing)

33 INFORMATION SYSTEMS AND PROCESSES AXIS IN EXPLICIT DIMENSION FILTERS AXIS POSSIBLE VALUES: child: France, Spain, Belgium descentant: France, Paris, Marseille, Lyon Spain,... Belgium,... child-or-self: Europe, France, Spain, Belgium descendant-or-self: Europe France, Paris, Marseille, Lyon Spain,... Belgium,... 33 World Europe Asia... France Spain Belgium Paris MarseilleLyon The tree is selected choosing one extended link role and one arc role COREP and FINREP have hierarchies for every dimension in the default extended link role and domain-member arc role

34 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 9 34 test = $total = sum($breakdown) Group filter: Concept name: p-cm-mr:AllPositionsLong $total : Exp dimension: MarketRiskDimension = MRiskSAEQUTotal (axis=child-or-self) $breakdown* (fallbackValue = 0): Exp dimension: MarketRiskDimension = child of $total Total Equities in trading book equal to the sum of its breakdown, and General Risk equal to the sum of its breakdown, and... For All Positions Long

35 INFORMATION SYSTEMS AND PROCESSES DIMENSION FILTERS Dimension: Using its name (@qname) Using an XPath expression that returns a name (@qnameExpression) A list of members: Using its name (@qname) Using an XPath expression that returns a name (@qnameExpression) Using a reference to another variable (@variable) + (optional) an axis: Axis value Extended link role Arc role 35

36 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 10A 36 $capReq : Concept name: p-cm-ca:MarketRiskCapitalRequirements $netPosSub: Concept name: p-cm-mr:NetPositionsSubjectToCapitalCharge $allPositions*: Concept name: p-cm-mr:AllPositionsLong p-cm-mr:AllPositionsShor t test = if (sum($allPositions) gt 100000) then $capReq = $netPosSub * 0.8 else true() Capital requirements equal to Net positions subject to capital charge multiplied by a factor only if All positions long + All positions short is greater than a certain threshold

37 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 10B 37 test = $capReq = $netPosSub * 0.8 $capReq : Concept name: p-cm-ca:MarketRiskCapitalRequirements $netPosSub: Concept name: p-cm-mr:NetPositionsSubjectToCapitalCharge $allPositions*: Concept name: p-cm-mr:AllPositionsLong p-cm-mr:AllPositionsShor t PRECONDITION: test = sum($allPositions) gt 1000000 Capital requirements equal to Net positions subject to capital charge multiplied by a factor only if All positions long + All positions short is greater than a certain threshold

38 INFORMATION SYSTEMS AND PROCESSES PRECONDITIONS Four steps in the evaluation of a set of variables: Each variable is evaluated individually to obtain the list of all candidate values The Cartesian product is obtained The implicit filter discards combinations Only combinations that verifies every precondition are considered 38 A potential evaluation of an assertion that doesnt verify a precondition is neither satisfied nor not satisfied: it is not evaluated

39 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 10C 39 test = $capReq = $netPosSub * $factor $capReq : Concept name: p-cm-ca:MarketRiskCapitalRequirements $netPosSub: Concept name: p-cm-mr:NetPositionsSubjectToCapitalCharge $allPositions*: Concept name: p-cm-mr:AllPositionsLong p-cm-mr:AllPositionsShor t PRECONDITION: test = sum($allPositions) gt $threshold Parameters: $threshold = 1000000 $factor = 0.8 Capital requirements equal to Net positions subject to capital charge multiplied by a factor only if All positions long + All positions short is greater than a certain threshold

40 INFORMATION SYSTEMS AND PROCESSES PARAMETERS Parameters variables that can be used inside XPath expressions Parameters can be given a default value Parameters can be given a value from the outside: Using a graphical tool Using an API... They have a name so that they can be referred from the outside 40

41 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 11A: BELGIUM ROUNDING APPROACH 41 test = abs($total - sum($breakdown) ) le $threshold Group filter: Concept name: p-cm-mr:AllPositionsLong $total : Exp dimension: MarketRiskDimension = MRiskSAEQUTotal (axis=child-or-self) $breakdown* (fallbackValue = 0): Exp dimension: MarketRiskDimension = child of $total Parameter $threshold = 1 Total Equities in trading book equal to the sum of its breakdown, and General Risk equal to the sum of its breakdown, and... For All Positions Long considering rounding error

42 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 11B: SPANISH ROUNDING APPROACH 42 test = abs($total - sum($breakdown) ) le $threshold Group filter: Concept name: p-cm-mr:AllPositionsLong $total : Exp dimension: MarketRiskDimension = MRiskSAEQUTotal (axis=child-or-self) $breakdown* (fallbackValue = 0): Exp dimension: MarketRiskDimension = child of $total General variable: $threshold = 1000 * (count($breakdown) + 1) div 2 Total Equities in trading book equal to the sum of its breakdown, and General Risk equal to the sum of its breakdown, and... For All Positions Long considering rounding error

43 INFORMATION SYSTEMS AND PROCESSES GENERAL VARIABLES Its value is the result of evaluating an XPath expression They can make reference to other variables/parameters in the assertion / formula Can be used for intermediate values that are used repeatedly in the assertion / formla 43

44 INFORMATION SYSTEMS AND PROCESSES VARIABLES/PARAMETERS COMPARISON TABLE Fact VariablesParametersGeneral variables AimBind facts in instanceParameterize the behaviour of some formula/assertions Intermediate results derived from other variables Iterations in complex formulae Use filtersYesNo Implicit filter appliesYesNo Can be given values from outside the processor NoYesMay (using external functions) Can have a fallback value YesNo Can bind as sequence / single YesNoYes Fixed value throughout the processing NoYesNo References to other variables Yes (through filters)NoYes 44

45 INFORMATION SYSTEMS AND PROCESSES TECHNICAL REPRESENTATION 45 ValueAssertion @test = $a ge $b * $c @aspectModel = dimensional @implicitFiltering = true Fact Variable @fallbackValue=0 @bindAsSequence=false Variable filter @name=a @name=b Parameter @bindAsSequence=false @name = MyThreshold Group filter @complement = false @cover = true General Variable @select=$a * $b @bindAsSequence=false 0..n @name=c 0..n Precondition @test=... Precondition @test=... 0..n

46 INFORMATION SYSTEMS AND PROCESSES ATTRIBUTES GUIDANCE Always use (no exceptions): @implicitFiltering = true @aspectModel = dimensional Always use (except for very advanced formulae): @cover = true Most of the times: @complement = false That leaves: @name for variables and parameters arcs @bindAsSequence for fact variables and parameters @fallbackValue for fact variables Specific attributes of other objects: @test in preconditions @name and select in parameters @select in general variables... 46

47 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 12 47 test = false() $capReq : Concept name: p-cm-ca:MarketRiskCapitalRequirements Exp dimension: MarketRiskDimension = MRiskSAEQUOtherNonDeltaRisksOptions Check that Capital Requirements for Other non-delta risks for options is not reported

48 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 13 48 test = true() $capReq : Concept name: p-cm-ca:MarketRiskCapitalRequirements Exp dimension: MarketRiskDimension = MRiskSAEQUOtherNonDeltaRisksOptions Check that Capital Requirements for Other non-delta risks for options must be reported

49 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 14 49 Existence Assertion $capReq : Concept name: p-cm-ca:MarketRiskCapitalRequirements Exp dimension: MarketRiskDimension = MRiskSAEQUOtherNonDeltaRisksOptions Check that Capital Requirements for Other non-delta risks for options must be reported

50 INFORMATION SYSTEMS AND PROCESSES EXISTENCE ASSERTIONS Value assertions are evaluated 0, 1 or n times, depending on the number of valid combinations for its variables given an input instance document Existence assertions are always evaluated once. An existence assertion is a test on the number of valid evaluations of its variable set If the test attribute is not provided, it is tested that at least there is one valid evaluation of its variable set The number of evaluations is referenced in the test expression by a dot 50

51 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 15 51 Existence Assertion: test =. ge 2 $capReq : Concept name: p-cm-ca:MarketRiskCapitalRequirements Exp dimension: MarketRiskDimension = MRiskSAEQUOtherNonDeltaRisksOptions Check that values for Capital Requirements for Other non-delta risks for options are reported for at least 2 national markets

52 INFORMATION SYSTEMS AND PROCESSES FORMULAE The input of a formula is specified like the input of a value assertion But additional information is needed to provide the output: Value (ej: 100.000) Concept (ej: p-cm-ca:CapitalRequirements) Entity/scheme (ej: ES0182, MFI) Period (ej: January first 2008) User dimensions (ej: National Market = Spanish) For numeric values: Units (ej: Euros) Decimals / precision attribute (ej: decimals = -3) 52

53 INFORMATION SYSTEMS AND PROCESSES FORMULAE Value must always be explicitly defined Decimals/precision have a default value (precision 0) Aspects (concept, entity, period, user dimensions, units,...) can be: Explicitly defined Defined in terms of input facts (source) 53

54 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 16: SIMPLE FORMULA 54 Input : $netPosSubCapCh: Concept name: p-cm-mr:NetPositionsSubjectToCapitalCharge $decimals: Parameter Output: value = $netPosSubCapCh * 0.8 decimals = $decimals Source = netPosSubCapCh Concept name: p-cm-ca:MarketRiskCapitalRequirements Capital requirements can be calculated as Net positions subject to capital charge multiplied by 0.8 Aspects not explicitly expressed in the output are copied from the source: - Unit - Period - Entity... Aspects not explicitly expressed in the output are copied from the source: - Unit - Period - Entity...

55 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 17: SIMPLE FORMULA WITH FALLBACK 55 Input : $shortNet (fallback value = 0): Concept name: p-cm-mr:NetPositionsLong $longNet (fallback value = 0): Concept name: p-cm-mr:NetPositionsShort Output: value = $shortNet + $longNet decimals = $decimals Source = $shortNet Concept name p-cm-mr:NetPositionsSubjectToCapitalCharge Net positions subject to capital charge calculated as the addition of short and long net positions (zero assumed if not reported) If the source variable falls back, aspects cannot be obtained. The fallback value is a number !!! The processor will raise an error If the source variable falls back, aspects cannot be obtained. The fallback value is a number !!! The processor will raise an error

56 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 17B: SIMPLE FORMULA WITH FALLBACK 56 Input : $shortNet (fallback value = 0): Concept name: p-cm-mr:NetPositionsLong $longNet (fallback value = 0): Concept name: p-cm-mr:NetPositionsShort Output: value = $shortNet + $longNet decimals = $decimals Source = formula:uncovered Concept name p-cm-mr:NetPositionsSubjectToCapitalCharge Net positions subject to capital charge calculated as the addition of short and long net positions (zero assumed if not reported)

57 INFORMATION SYSTEMS AND PROCESSES SOURCE FORMULA:UNCOVERED The formula:uncovered is a virtual variable which combines every aspect not explicitly filtered in the input) Because of the implicit filter, every uncovered aspect must have the same value. If an aspect is covered in every input variable, it must be explicitly defined 57

58 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 18: SHOWING FORMULA:UNCOVERED 58 Input : $allLong (fallback value = 0): Concept name: p-cm-mr:AllPositionsLong $reduction (fallback value = 0): Concept name: p-cm-mr:ReductionEffectUnderwritingPositions Exp dimension: MarketRiskDimension = MRiskSAEQUTotal Output: value = $allLong + $reduction decimals = $decimals Source = formula:uncovered Concept name p-cm-mr:NetPositionsLong Net positions long calculated as all positions long plus Reduction effect for total equities

59 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 19: MIXING UNITS 59 Input : $netPositionsSubhCapCh (fallback value = 0): Concept name: p-cm-mr:NetPositionsSubjectToCapitalCharge $ratio (fallback value = 0): Concept name: p-cm-mr:CapitalChargeRatio Output: value = $netPositionsSubhCapCh decimals = $decimals Source = formula:uncovered Concept name p-cm-ca:MarketRiskCapitalRequirements Capital requirements calculated as net positions subject to capital charge multiplied by risk capital charge

60 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 19B: MIXING UNITS 60 Input : $netPositionsSubhCapCh (fallback value = 0): Concept name: p-cm-mr:NetPositionsSubjectToCapitalCharge $ratio (fallback value = 0): Concept name: p-cm-mr:CapitalChargeRatio Unit filter: pure Output: value = $netPositionsSubhCapCh decimals = $decimals Source = formula:uncovered Concept name p-cm-ca:MarketRiskCapitalRequirements Capital requirements calculated as net positions subject to capital charge multiplied by risk capital charge

61 INFORMATION SYSTEMS AND PROCESSES FORMULA GUIDELINE Define input variables Try to use group filters Use formula:uncovered as source Give a explicit value to those aspects that are explicitly filtered on every input variable 61

62 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 20 62 Input: $exc (fallbackValue = 0) : Exp dimension: MarketRiskDimension = MRiskSAEQUExchangeTraded... Concept name p-cm-ca:MarketRiskCapitalRequirements $other (fallbackValue = 0): Exp dimension: MarketRiskDimension = RiskSAEQUOtherEquitiesThan… Concept name p-cm-ca:MarketRiskCapitalRequirements Output: Value: $exc + $other Source: formula:uncovered Exp dimension: MarketRiskDimension = d-mr:MRiskSAEQUGeneralRisk Concept name p-cm-ca:MarketRiskCapitalRequirements Capital requirement for General risk calculated as Capital requirements for exchange...(1.1) plus Capital requirements for other...(1.2)

63 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 20 63 Input: Group filter: Concept name p-cm-ca:MarketRiskCapitalRequirements $exc (fallbackValue = 0) : Exp dimension: MarketRiskDimension = MRiskSAEQUExchangeTraded... $other (fallbackValue = 0): Exp dimension: MarketRiskDimension = RiskSAEQUOtherEquitiesThan… Output: Value: $exc + $other Source: formula:uncovered Exp dimension: MarketRiskDimension = d-mr:MRiskSAEQUGeneralRisk Capital requirement for General risk calculated as Capital requirements for exchange...(1.1) plus Capital requirements for other...(1.2)

64 INFORMATION SYSTEMS AND PROCESSES CONSISTENCY ASSERTIONS Value assertions can be used to check the quality of data at the supervisor: A = B * C ( = means must be equal, if not, raise an error ) Formulae can be used to derive data from basic information at the supervised institution: A = B * C ( = means the left part is obtained from the right part ) There is a lot in common between these two rules... Lets take advantage 64

65 INFORMATION SYSTEMS AND PROCESSES CONSISTENCY ASSERTIONS A consistency assertion is an assertion based on a formula Test that the calculated results are consistent with the ones in the input instance document Consistency assertion can include attributes to consider rounding errors: Absolute acceptance radius: Defines an interval in absolute terms I.e: 1000 Relative acceptance radius: Defines an interval proportional to that of the input I.e: 5% This way, the same formula can be reused by the sender of the information to obtain the required data and by the receiver, to check it. 65

66 INFORMATION SYSTEMS AND PROCESSES A LOT OF FILTERS AVAILABLE Concept aspect: By name By period-type By balance attribute By custom-attribute By data-type... Dimensions: Explicit dimensions Typed dimensions General filters: Value Precision.... Unit: Single measure General measure Period: General Period-start Period-end Period-instant Forever filter Instant-duration Tuple Entity Segment / scenario... 66

67 INFORMATION SYSTEMS AND PROCESSES RESOURCES Formula specification: http://www.xbrl.org/SpecCRs/ XPath specification: http://www.w3.org/TR/xpath20/ Xpath functions and operators: http://www.w3.org/TR/xquery-operators/ Herm Fischers Formulae Tutorial: http://herm.ws/XBRL/files/docs/FormulaTutorial.ppt 67

68 INFORMATION SYSTEMS AND PROCESSES PARTS OF THE XBRL FORMULAE SPECIFICATION 68 Variables Filters Formulae XPath 2.0 XPath Std Functions XBRL Function Registry Validation Generic labels and references Usage patterns Other specs Generic linkbase

69 INFORMATION SYSTEMS AND PROCESSES THANKS FOR YOUR ATTENTION VÍCTOR MORILLA


Download ppt "INFORMATION SYSTEMS AND PROCESSES XBRL FORMULAE TUTORIAL Víctor Morilla IT Project Manager of Bank of Spain Member of CEBS XBRL Network IX European Banking."

Similar presentations


Ads by Google