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

Slides:



Advertisements
Similar presentations
NOMBRE DEL DEPARTAMENTO DATA DICTIONARY Primary items One single schema Credit / debit attribute: to discuss with business users To take into account IFRS-GP.
Advertisements

Herman Fischer, UBMatrix, Inc and Mark V Systems 19 November, 2009.
Matrix Schema Tutorial Presented at the: IX European Banking Supervisors XBRL Workshop & Tutorial In: Paris On: 29th September 2008 By: Michele Romanelli.
Formulae in the European Finrep Taxonomy SGCB IX European Banking Supervisors XBRL Workshop. Formulae in the European Finrep Taxonomy Paris, October 29,
Information Systems and Processes XBRL Formulae in a Nutshell Víctor Morilla VIII European Banking Supervisors XBRL Workshop Amsterdam November 2007.
XBRL Versioning Committee of European Banking Supervisors XBRL Network Vice-Chair VWG Katrin Schmehl Amsterdam, th European Banking Supervisors.
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.
INFORMATION SYSTEMS AND PROCESSES XBRL FORMULAE MOTIVATION Víctor Morilla Member of CEBS XBRL Network IX European Banking Supervisors XBRL Workshop Paris.
Information Systems and Processes Proposal for IFRS / CRD group Consolidation Scopes in FINREP Víctor Morilla VIII European Banking Supervisors XBRL Workshop.
INFORMATION SYSTEMS AND PROCESSES BANK OF SPAINS XBRL FORMULAE SYSTEM IMPLEMENTATION AND CONCLUSIONS Víctor Morilla IT Project Manager of Bank of Spain.
Advanced XSLT. Branching in XSLT XSLT is functional programming –The program evaluates a function –The function transforms one structure into another.
Getting started with ML ML is a functional programming language. ML is statically typed: The types of literals, values, expressions and functions in a.
Methodology of Data Point Model in European Banking Supervision: COREP/FINREP Ignacio Boixo, EuroFiling Coordinator Malatya, 3 th May 2012.
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
FINREP and COREP v2.0: Filing perspective - Validations
INFORMATION SYSTEMS COMMON DICTIONARY, CHANGE MANAGEMENT & RENDERING Víctor Morilla IT Specialist XIII EUROFILING WORKSHOP Luxembourg, November 2010.
Reducing the burden of building taxonomies
CMPT 354, Simon Fraser University, Fall 2008, Martin Ester 52 Database Systems I Relational Algebra.
1 COS 425: Database and Information Management Systems XML and information exchange.
Oceanic Flight 815. Oceanic Flight 815 Regulatory banking reporting at Banco de España Some functions require the collection of data from credit.
XML –Query Languages, Extracting from Relational Databases ADVANCED DATABASES Khawaja Mohiuddin Assistant Professor Department of Computer Sciences Bahria.
 2008 Pearson Education, Inc. All rights reserved JavaScript: Control Statements II.
The views expressed in this presentation are those of the presenter, not necessarily those of the IASB or IFRS Foundation. International Financial Reporting.
Case Studies in XBRL Solutions Formula developments for Multiple Instance processing Herman Fischer, UBMatrix and Mark V Systems.
Brief history of XBRL usage in Banco de españa
XBRL Formula in use: Improving the quality of data Mark Montoya (FDIC) Víctor Morilla (Central Bank of Spain)
Rev.S08 MAC 1140 Module 12 Introduction to Sequences, Counting, The Binomial Theorem, and Mathematical Induction.
Financial Statement Modeling & Spreadsheet Engineering “Training in spreadsheet modeling improves both the efficiency and effectiveness with which analysts.
1 XML Schemas. 2 Useful Links Schema tutorial links:
TDDD43 XML and RDF Slides based on slides by Lena Strömbäck and Fang Wei-Kleiner 1.
CSE3201/CSE4500 Information Retrieval Systems
VICTORIA UNIVERSITY OF WELLINGTON Te Whare Wananga o te Upoko o te Ika a Maui SWEN 432 Advanced Database Design and Implementation An Introduction to XQuery.
XBRL Formulae in Practice in Regulatory Environments: Experiences and Benefits Víctor Morilla (Bank of Spain) Manuel Rodriguez & Moira Lorenzo (Atos Origin)
1 CIS336 Website design, implementation and management (also Semester 2 of CIS219, CIS221 and IT226) Lecture 6 XSLT (Based on Møller and Schwartzbach,
Processing of structured documents Spring 2002, Part 2 Helena Ahonen-Myka.
Lecture 22 XML querying. 2 Example 31.5 – XQuery FLWOR Expressions ‘=’ operator is a general comparison operator. XQuery also defines value comparison.
1 16 th XBRL International Conference Practical Dimensions “No Primary Item Left Behind” December 5, 2007 Herm Fischer.
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
XSLT part of XSL (Extensible Stylesheet Language) –includes also XPath and XSL Formatting Objects used to transform an XML document into: –another XML.
XRules An XML Business Rules Language Introduction Copyright © Waleed Abdulla All rights reserved. August 2004.
XBRL Europe week June 1, Madrid, Spain Practicing XBRL Formulae in the Bank of Spain Speakers: Víctor Morilla Moira Lorenzo Manuel Rodríguez.
Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.
Consolidation and Entity Mapping: New XBRL Solutions David vun Kannon KPMG LLP.
1 16 th XBRL International Conference Demystifying XBRL Formulas December 5, 2007 Herm Fischer.
Dimensions and Formulas for Financial Professionals Charles Hoffman, CPA – UBmatrix.
ACG 6415 XSLT Presenting XML and XBRL. Re-Purpose  The main benefit of XML / XBRL Reusability of Data contained in Instance Document We need a method.
Arithmetic Expressions
Advanced Accounting Information Systems Day 31 XML Language Foundation November 6, 2009.
Information Systems and Processes XBRL at the Bank of Spain Experiences, problems and challenges Ángeles Lozano Víctor Morilla 1st Technical Meeting of.
1 Typing XQuery WANG Zhen (Selina) Something about the Internship Group Name: PROTHEO, Inria, France Research: Rewriting and strategies, Constraints,
XP New Perspectives on XML, 2 nd Edition Tutorial 7 1 TUTORIAL 7 CREATING A COMPUTATIONAL STYLESHEET.
1 Program Development  The creation of software involves four basic activities: establishing the requirements creating a design implementing the code.
XPath --XML Path Language Motivation of XPath Data Model and Data Types Node Types Location Steps Functions XPath 2.0 Additional Functionality and its.
Advanced Accounting Information Systems Day 34 XBRL Instance Documents and Taxonomies November 13, 2009.
XML Schema – XSLT Week 8 Web site:
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
MS-EXCEL PART 3. Use data validation in Excel to make sure that users enter certain values into a cell. Data Validation Example In this example, we restrict.
7.2 Arithmetic Expressions
Tools Of Structured Analysis
Formula Linkbase Tutorial
CWA3 Standardized roll-out package Part 2: XBRL Handbook for Declarers
Error messages – general requirements
17th XBRL International Conference
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Chapter 8 JavaScript: Control Statements, Part 2
Spanish implementation of the New Basel Capital Accord
REPETITION Why Repetition?
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Presentation transcript:

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

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

INFORMATION SYSTEMS AND PROCESSES MOTIVATION 3

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

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

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

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

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

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

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

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

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

INFORMATION SYSTEMS AND PROCESSES DATA STRUCTURES 13

INFORMATION SYSTEMS AND PROCESSES DATA STRUCTURES 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,...)

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

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

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

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

INFORMATION SYSTEMS AND PROCESSES 19 XBRL Formula Processor Formula Author

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

INFORMATION SYSTEMS AND PROCESSES BRIEF HISTORY OF THE FORMULAE SPECIFICATION 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 ?

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

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

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

INFORMATION SYSTEMS AND PROCESSES EXAMPLES 25

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”

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

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

INFORMATION SYSTEMS AND PROCESSES EXAMPLE 2: TECHNICAL REPRESENTATION 29 = ““$allPosShort ge $netPosShort” Concept Name: p-cm-mr:AllPositionsShort FactVariable Concept

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

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

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

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

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

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

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”

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

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

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)

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)

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: abs(-2) Some operators / functions apply to sequences: sum((2, 3, 5)) max((10, 20, 30)) 41

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

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)

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

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”

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

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

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

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

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 = “ ” $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

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

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

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

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

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

INFORMATION SYSTEMS AND PROCESSES TECHNICAL REPRESENTATION 56 = ““$a ge $b * = = “true” @name = “MyThreshold” Group = = “true” General * 0..n 0..n

INFORMATION SYSTEMS AND PROCESSES ATTRIBUTES GUIDANCE Always use (no = = “dimensional” Always use (except for very advanced = “true” Most of the = “false” That for variables and parameters for fact variables and for fact variables Specific attributes of other in and select in in general variables... 57

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

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

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

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

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

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

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

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

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

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)

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

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”

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”

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”

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

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

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

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

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

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

INFORMATION SYSTEMS AND PROCESSES RESOURCES Formula specification: XPath specification: Xpath functions and operators: Herm Fischer’s Formulae Tutorial: 78

INFORMATION SYSTEMS AND PROCESSES BANK OF SPAIN PROJECT DETAILS 79

INFORMATION SYSTEMS AND PROCESSES NEXT STEPS 80

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

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

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

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)

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)

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

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

INFORMATION SYSTEMS AND PROCESSES QUESTIONS 88

INFORMATION SYSTEMS AND PROCESSES THANKS FOR YOUR ATTENTION