Presentation is loading. Please wait.

Presentation is loading. Please wait.

INFORMATION SYSTEMS AND PROCESSES XBRL FORMULA IN PRACTICE IN REGULATORY ENVIRONMENTS: EXPERIENCE AND BENEFITS Víctor Morilla Bank of Spain Manuel Rodríguez.

Similar presentations


Presentation on theme: "INFORMATION SYSTEMS AND PROCESSES XBRL FORMULA IN PRACTICE IN REGULATORY ENVIRONMENTS: EXPERIENCE AND BENEFITS Víctor Morilla Bank of Spain Manuel Rodríguez."— Presentation transcript:

1 INFORMATION SYSTEMS AND PROCESSES XBRL FORMULA IN PRACTICE IN REGULATORY ENVIRONMENTS: EXPERIENCE AND BENEFITS Víctor Morilla Bank of Spain Manuel Rodríguez / Moira Lorenzo ATOS Origin 19 th XBRL International Conference Paris 23th 2009

2 INFORMATION SYSTEMS AND PROCESSES INDEX Motivation Brief tutorial Bank of Spain project details Next steps 2

3 INFORMATION SYSTEMS AND PROCESSES MOTIVATION 3

4 INFORMATION SYSTEMS AND PROCESSES 4 COMPLEXITY OF THE REPORTING PROCESS IN REGULATORY BANKING INSTITUTIONS  Some figures –More than 400 credit institutions –About 5.000 statements per year –About 35.000 different financial concepts managed –More than 300.000 checks applied per year

5 INFORMATION SYSTEMS AND PROCESSES 5 Sender Supervisor DEFINITON PHASE (OLD APPROACH) IT developer System requirements Normative documentation IT developer Business user Business user IT analyst System requirements C Code C IT analyst

6 INFORMATION SYSTEMS AND PROCESSES 6 Sender Supervisor FILING PROCESS TIMELINE (OLD APPROACH) Data extraction & transformation Errors detected Analysis and corrections Data extraction & transformation Validation OK Analysis Notification

7 INFORMATION SYSTEMS AND PROCESSES 7 PROCESS COMPLEXITY MULTIPLIED ON THE SUPERVISOR’S SIDE Supervisor Sender

8 INFORMATION SYSTEMS AND PROCESSES 8 Sender Supervisor DEFINITON PHASE (XBRL APPROACH) Business user IT analyst Normative documentation XBRL Taxonomy (with validation rules) Business user

9 INFORMATION SYSTEMS AND PROCESSES 9 Sender Supervisor DATA FILING PROCESS TIMELINE (XBRL BASED) Data extraction & local validation Analysis And corrections Analysis Validation OK

10 INFORMATION SYSTEMS AND PROCESSES XBRL VALIDATION CAPABILITIES XBRL 2.1 provides different types of validation for instance documents: –Basic XBRL validation –XML Schema validation –Calculation linkbase –XBRL Dimensions Not enough in most cases: –Basic arithmetic operations: product, division, … –Arithmetic comparisons: item A must be equal to item B, … –Checks for the presence of elements Derivation of new facts from existing ones is not possible 10

11 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 –Intuitive –Maintainable –Documentation capabilities –Extensible 11

12 INFORMATION SYSTEMS AND PROCESSES WHY A NEW LANGUAGE? LET’S ASK FOR SOME HELP... Niklaus Wirth Designer of programming languages like Pascal, Euler or Modula Author of the book “Algorithms + Data Structures = Programs” 12

13 INFORMATION SYSTEMS AND PROCESSES DATA STRUCTURES 13

14 INFORMATION SYSTEMS AND PROCESSES DATA STRUCTURES 14 12347879808156789101112... evn : checks that a set of cells 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,...)

15 INFORMATION SYSTEMS AND PROCESSES DATA STRUCTURES 15 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

16 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) 16

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

18 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 (can be arranged in a hierarchical way) Country Market segment  Additional properties: unit and precision 18 t Credit institution Concept 100 € (prec 3) Dexia Dec 2007 Incomes

19 INFORMATION SYSTEMS AND PROCESSES 19 XBRL Formula Processor Formula Author

20 INFORMATION SYSTEMS AND PROCESSES BRIEF TUTORIAL (LEARN XBRL FORMULA IN 50 MINUTES) 20

21 INFORMATION SYSTEMS AND PROCESSES BRIEF HISTORY OF THE FORMULAE SPECIFICATION 21 2007 2009 Nov 06 Formula WG Set up Jan 07 1º PWD Jul 07 2º PWD Dec 07 3º PWD Mar 08 1º CR Feb 08 4º PWD Jun 08 First implementations Sep 08 BE COREP Formulae in production Jun 05 Formulae Requirements 2008 Dec 08 2º CR Mar 09 PR Jun 09 Final Rec ?

22 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 22 A * B + C

23 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, … 23

24 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 24

25 INFORMATION SYSTEMS AND PROCESSES EXAMPLES 25

26 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 1 26 Two input variables: $assets: Concept name: t:Assets $liabEq: Concept name: p-cm-mr:NetPositionsShort Test : “$assets = $liabEq” “Assets“ equal to “Liabilities and Equity”

27 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 1: TECHNICAL REPRESENTATION 27 ValueAssertion @test = ““$assets = $liabEq” FactVariable Concept Name: t:Assets FactVariable Concept Name: t:liabEq @name=“assets”@name=“liabEq”

28 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 2 28 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

29 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 2: TECHNICAL REPRESENTATION 29 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”

30 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 3 30 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

31 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 4A 31 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

32 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). 32

33 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 4B 33 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

34 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 5A 34 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

35 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 5B 35 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

36 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 6 36 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”

37 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 doesn’t verifies the following condition: 37 a1 a2 a3 b1 b2 b1 b2 b1 b2 c1c2c1c2c1c2c1c2c1c2c1c2

38 INFORMATION SYSTEMS AND PROCESSES THE IMPLICIT FILTER 38 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 don’t cover aspects. So, group filters are ignored by this rule

39 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 7 39 $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)

40 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 8 40 $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)

41 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)) 41

42 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 42 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

43 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 8B 43 $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)

44 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,... 44 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

45 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 9 45 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”

46 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 46

47 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 10A 47 $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

48 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 10B 48 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

49 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 49 A potential evaluation of an assertion that doesn’t verify a precondition is neither satisfied nor not satisfied: it is not evaluated

50 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 10C 50 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

51 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” 51

52 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 11A: BELGIUM ROUNDING APPROACH 52 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

53 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 11B: SPANISH ROUNDING APPROACH 53 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

54 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 54

55 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 55

56 INFORMATION SYSTEMS AND PROCESSES TECHNICAL REPRESENTATION 56 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

57 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... 57

58 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 12 58 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

59 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 13 59 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

60 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 14 60 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

61 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 61

62 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 15 62 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

63 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) 63

64 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) 64

65 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 16: SIMPLE FORMULA 65 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...

66 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 17: SIMPLE FORMULA WITH FALLBACK 66 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

67 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 17B: SIMPLE FORMULA WITH FALLBACK 67 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)

68 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 68

69 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 18: SHOWING FORMULA:UNCOVERED 69 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”

70 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 19: MIXING UNITS 70 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”

71 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 19B: MIXING UNITS 71 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”

72 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 72

73 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 20 73 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)”

74 INFORMATION SYSTEMS AND PROCESSES EXAMPLE 20 74 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)”

75 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... Let’s take advantage 75

76 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. 76

77 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... 77

78 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 Fischer’s Formulae Tutorial: http://herm.ws/XBRL/files/docs/FormulaTutorial.ppt 78

79 INFORMATION SYSTEMS AND PROCESSES BANK OF SPAIN PROJECT DETAILS 79

80 INFORMATION SYSTEMS AND PROCESSES NEXT STEPS 80

81 INFORMATION SYSTEMS AND PROCESSES NEXT STEPS: CROSS INSTANCE VALIDATION The problem: Validations with documents received in previous periods E.g.: check abrupt changes of certain concepts Use database information for some validations E.g.: validations that take into account interest rates 81

82 INFORMATION SYSTEMS AND PROCESSES Database $interest-rate = “db:interest-rate($year, …)” $interest-rate = “db:interest-rate($year, …)” JAVA /.NET NEXT STEPS: CROSS INSTANCE VALIDATION The solution: General variables and parameters + XPath external functions 82 XBRL Processor XPath processor

83 INFORMATION SYSTEMS AND PROCESSES NEXT STEPS: FORMULA PATTERNS Replace most repetitive formulae that follow a common pattern by a single formulae based on DTS information Reduce number of formulae Improve maintainability 83 finrep:Assets finrep:Cash finrep:CashEquivalents greater-than

84 INFORMATION SYSTEMS AND PROCESSES NEXT STEPS: USER DEFINED FUNCTIONS Simplify repetitive fragments of XPath expressions E.g.: Threshold of a summation (because of rounding errors) (number of terms + 1) / 2 * 1000 A 1 + A2 + … An < X considering rounding errors 84 sum($seqA) lt $x + (count($seqA) + 1) * 500 sum($seqA) lt $x + sumThreshold($seqA) Small new specification (no changes in the core part)

85 INFORMATION SYSTEMS AND PROCESSES NEXT STEPS: BETTER ERROR REPORTING Current error reporting solution: Generic labels linked to assertions More complex messages: 85 Total assets reported ( 1,200,000 € ) are 200% higher than the value reported last year Small new specification (no changes in the core part)

86 INFORMATION SYSTEMS AND PROCESSES NEXT CHALLENGES Formula chaining Advanced control of assertions firing Very large instance validation New filters 86

87 INFORMATION SYSTEMS AND PROCESSES BENEFITS Powerful and flexible solution Better maintainability Striking reduction in the number of rules to maintain: ≈ 5300 business rules expressed using ≈ 700 XBRL Formulas Reusability between different actors Regulators and credit institutions (consistency assertions) Different countries: European rules Domestic ones Data available sooner and improved quality Standard and formal language to express formulae Validation at the source of information Market tools available Support from software vendors 87

88 INFORMATION SYSTEMS AND PROCESSES QUESTIONS 88

89 INFORMATION SYSTEMS AND PROCESSES THANKS FOR YOUR ATTENTION


Download ppt "INFORMATION SYSTEMS AND PROCESSES XBRL FORMULA IN PRACTICE IN REGULATORY ENVIRONMENTS: EXPERIENCE AND BENEFITS Víctor Morilla Bank of Spain Manuel Rodríguez."

Similar presentations


Ads by Google