C-EBS Workshop, Wien, 20 November 2009 Eric JARRY The SURFI taxonomy Secrétariat général de la Commission bancaire SIGD Classification: PUBLIC
Mar 26, 2015
C-EBS Workshop, Wien, 20 November 2009
Eric JARRY
The SURFI taxonomy
Secrétariat général de la Commission bancaireSIGD
Classification: PUBLIC
2
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
Contents
1. The SURFI project
2. The SURFI taxonomy• Generation• Dimensional aspects• Assertions• Structure
3
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
SURFI project
• COFINREP project : current XBRL filing for COREP and FINREP
• SURFI: Système Unifié de Rapportage FINancierUnified System for Financial Reporting
• Launched in June 2007, first filings in July 2010
• Application to handle
• COREP and FINREP taxonomies (french and others)
• Main SURFI taxonomy
• Anti-laundering information taxonomy
• Cartography taxonomy
• Other taxonomies… (incl. foreign COREP and FINREP)
5
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
SURFI taxonomy
• ~CEBS type taxonomy
• >5000 primary items
• Dimensional: 23 dimensions (of which 6 typed)
• Existence of ~80 templates (views) containing all data points
• Two types of primary items
• Accounts organized in a hierarchy (French GAAP “Accounting main tree")
• Other primary items (defined in a template, may be used in other templates)
• Use of formulae (assertions)
• > 84 000 possible facts ("skeleton instance")
• Long tag names
• Use of codes (primary items, dimensions, dimension values)
• Short, easy to memorize (short term?) and communicate
• Generated
6
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
SURFI taxonomy – annotated template
Dimension value(label, alias or
code)
Dimension (code)
Abstract primary items
(label or alias)
Primary items(label or alias)
Pop-up windowshowing PI + Dimcombinaison(s)
7
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
Annotatedtemplates
Globalelements
file
Templateprocessing
Annotation(codes +coulors)
A S S U R A N C E S
A S S U R A N C E S
Transposition
file
Dimensionsfile
Hypercubesfile
Modification of labels / default characteristics
& ValidationLOG
Corrections
Updates
A S S U R A N C E S
A S S U R A N C E S
DimensionsTaxonomies
d-
Configuration
SURFI – generation of template taxonomy (1/2)
][
8
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
Transpositionfile
processing
Corrections
A S S U R A N C E S
A S S U R A N C E S
LOG
Configuration
TemplatesTaxonomies
t-, p-
[ ]
SURFI – generation of template taxonomy (2/2)
Annotatedtemplates
Transpositionfile
Globalelements
file
9
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
SURFI taxonomy - principles
• The dimensions are defined in an Excel File (names can be aliased)
• Default values are configured for each account class and each template
• Arborescence (sub-)taxonomies are generated (1 / class)
• Each template corresponds to a (sub-)taxonomy
• A global elements Excel sheet is updated
• New elements are created with default characteristics and template label / name ; the have to be validated (appearing in red)
• Each element has to be checked, modified, if needed, and validated
• An Excel « transposition folder » is generated from the annotated template
• Elements tab (hierarchy)
• Elements to be validated appear in red
• Hypercubes tab (association of generated hypercubes to primary items)
• An aliases sheet allows to change the names
• Each template taxonomy is generated from its "transposition folder"
• Template and cross-template assertions are generated (generic or via expressions)
10
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
SURFI taxonomy – transposition file - elements
11
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
SURFI taxonomy – transposition file - hypercubes
12
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
SURFI taxonomy - dimensions
• Inclusion (all) hypercubes are closed (to limit dimensions to those expected) no way to add other hypercubes for extra breakdowns
need to split tables in "sections", linked to an inclusion hypercube
S1
S2
Note: these sections are different from those of the COREP and FINREP taxonomies
13
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
SURFI taxonomy - hypercubes
• One ELR per hypercube (different from the section ELR)
• Hypercube are not reused (change because of low level of reuse)
• Flat dimensions domain members
Fujitsu XWand
14
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
Filing indicators and assertions
• A credit institution must file:– several templates at several moments; and / or– the same template at several moments, depending on one or more
dimensione.g.: Balance sheet for "France" at T0 + 10 days
Balance sheet for "Other countries” at T0 + 25 days
• Each template is associated to one or more filing indicators(template + set of zero, one or more dimension values)
• Assertions are dependant of the presence of one or more filing indicators(precondition)
Note: Filing indicator set to xsi:nil means that the remittance for the template is cancelled
15
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
F1: PIA – Primary Item Aggregation
F1
2
Hierarchy
Check pattern – primary item aggregation
F1
F1
16
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
• Tree walk of hierarchies in a calculation linkbases using a custom "total-details" arc role in: f-stt-YYYY-MM-DD-calculation.xml
PIA
Primary items aggregation checks –hierarchy
• Currently, specific solution• Work in progress in the XBRL International Formula group
Fujitsu XWand
18
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
… … … ……
2
F2: OWC - Of-Which Checks
of which (dont)
Check pattern – of which
>= >= >= >=F2
>=
19
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
• Tree walk of hierarchies in a calculation linkbases using a custom "including-included" arc role in: f-stt-YYYY-MM-DD-inclusion.xml
PIA
OWC
Of-which checks
Fujitsu XWand
21
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
F3: DIA – Dimension Item Aggregation
F3
Check pattern – dimensional aggregation
aggregation
aggregation
F3
…… … …
22
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
• Uses the XPath "descendant" axis of the dimension taxonomy (dimension definition) (defined in the dimensional taxonomies – and the dimension file dimension.xls)
Dimensional aggregation checks
Total
Contributingfactors
Descendants
Fujitsu XWand
24
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
Dimensional aggregation checks – XBRL assertion expression
Detail Dimension Filter
Isolation Dimension Filters
Details
Total
Concept FiltersFiling Indicators
MessagesAssertion
xlink:type: arcxlink:arcrole:…//variable-setname: vDetails(order: nnn)
xlink:from
variable:arc
xlink:to
%1
%1Detail
xlink:type: arcxlink:arcrole:…//variable-setname: vDetails(order: nnn)
xlink:from
variable:arc
xlink:to
%1
%1Detail
xlink:type: resourcebindAsSequence: true
variable:factVariable
xlink:label: %1Detail
xlink:type: resourcebindAsSequence: true
variable:factVariable
xlink:label: %1Detail
id:implicitFiltering: trueaspectModel: dimensionaltest:abs(vTotal – sum(vDetails))
lt vThreshold
xlink:label:
va:valueAssertion
%1 : {table} {dim}Agg
%1id:implicitFiltering: trueaspectModel: dimensionaltest:abs(vTotal – sum(vDetails))
lt vThreshold
xlink:label:
va:valueAssertion
id:implicitFiltering: trueaspectModel: dimensionaltest:abs(vTotal – sum(vDetails))
lt vThreshold
xlink:label:
va:valueAssertion
%1 : {table} {dim}Agg
%1
xlink:type: arcxlink:arcrole:…//element-labelorder: nnn
xlink:from
generic:arc
xlink:to
%1
%1Message
xlink:type: arcxlink:arcrole:…//element-labelorder: nnn
xlink:from
generic:arc
xlink:to
xlink:type: arcxlink:arcrole:…//element-labelorder: nnn
xlink:from
generic:arc
xlink:to
%1
%1Message
xlink:type: resourcexml:lang: frxlink:role: …/label/satisfied
xlink:label:
label:label
%1Message
xlink:type: resourcexml:lang: frxlink:role: …/label/satisfied
xlink:label:
label:label
xlink:type: resourcexml:lang: frxlink:role: …/label/satisfied
xlink:label:
label:label
%1Message
xlink:type: resourcexml:lang: frxlink:role: …/label/notSatisfied
xlink:label:
label:label
%1Message
xlink:type: resourcexml:lang: frxlink:role: …/label/notSatisfied
xlink:label:
label:label
xlink:type: resourcexml:lang: frxlink:role: …/label/notSatisfied
xlink:label:
label:label
%1Message
xlink:type: arcxlink:arcrole:…//variable-set-preconditionorder: nnn
xlink:from
generic:arc
xlink:to
%1
%1PreCond
xlink:type: arcxlink:arcrole:…//variable-set-preconditionorder: nnn
xlink:from
generic:arc
xlink:to
%1
%1PreCond
xlink:type: resource
test: //…IndicateurDeRemise..=‘OUI’
xlink:label:
variable:precondition
xlink:type: resource
test: //…IndicateurDeRemise..=‘OUI’
xlink:label:
variable:precondition
%1PreCond
xlink:type: arcxlink:arcrole:…//variable-setname: vThreshold(order: nnn)????
xlink:from
variable:arc
xlink:to
%1
Threshold
xlink:type: arcxlink:arcrole:…//variable-setname: vThreshold(order: nnn)????
xlink:from
variable:arc
xlink:to
%1
Threshold
xlink:type: resourcebindAsSequence: false
select: …
xlink:label:
variable:generalVariable
xlink:type: resourcebindAsSequence: false
select: …
xlink:label:
variable:generalVariable
Threshold
xlink:type: resourcecf:concept:
cf:qname: XXX
cf:conceptName
xlink:to %1ConcFilter
xlink:type: resourcecf:concept:
cf:qname: XXX
cf:conceptName
xlink:to %1ConcFilter
xlink:type: resourcedf:dimension
df:qnamedf:member
df:qname
df:explicitDimension
xlink:to %1DetailDimFilter
xlink:type: resourcedf:dimension
df:qnamedf:member
df:qname
df:explicitDimension
xlink:to %1DetailDimFilter
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: trueorder: nnn
xlink:from
variable:variableFilterArc
xlink:to
%1Total
%1DetailDimFilter
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: trueorder: nnn
xlink:from
variable:variableFilterArc
xlink:to
%1Total
%1DetailDimFilter
xlink:type: arcxlink:arcrole:…//variable-setname: vTotal(order: nnn)
xlink:from
variable:arc
xlink:to
%1
%1Total
xlink:type: arcxlink:arcrole:…//variable-setname: vTotal(order: nnn)
xlink:from
variable:arc
xlink:to
%1
%1Total
xlink:type: resourcebindAsSequence: false
variable:factVariable
xlink:label: %1Total
xlink:type: resourcebindAsSequence: false
variable:factVariable
xlink:label: %1Total
xlink:type: resourcedf:dimensiondf:member
df:explicitDimension
xlink:to %1TotalDimFilter
xlink:type: resourcedf:dimensiondf:member
df:explicitDimension
xlink:to %1TotalDimFilter
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: trueorder: nnn
xlink:from
variable:variableFilterArc
xlink:to %1TotalDimFilter
%1Detail
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: trueorder: nnn
xlink:from
variable:variableFilterArc
xlink:to %1TotalDimFilter
%1Detail
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: trueorder: nnn
xlink:from
variable:variableFilterArc
xlink:to
%1Total
%1TotalDimFilter
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: trueorder: nnn
xlink:from
variable:variableFilterArc
xlink:to
%1Total
%1TotalDimFilter
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: trueorder: nnn
xlink:from
variable:variableFilterArc
xlink:to %1DetailConcFilter
%1Detail
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: trueorder: nnn
xlink:from
variable:variableFilterArc
xlink:to %1DetailConcFilter
%1Detail
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: falseorder: nnn
xlink:from
variable:variableFilterArc
xlink:to %1IsolationlDimFilter
%1Detail
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: falseorder: nnn
xlink:from
variable:variableFilterArc
xlink:to %1IsolationlDimFilter
%1Detail
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: falseorder: nnn
xlink:from
variable:variableFilterArc
xlink:to
%1Total
%1IsolationlDimFilter
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: falseorder: nnn
xlink:from
variable:variableFilterArc
xlink:to
%1Total
%1IsolationlDimFilter
xlink:type: resourcedf:dimension
df:qnamedf:member…
df:qname
df:explicitDimension
xlink:to %1IsolationlDimFilter
xlink:type: resourcedf:dimension
df:qnamedf:member…
df:qname
df:explicitDimension
xlink:to %1IsolationlDimFilter
xlink:type: resourcedf:dimension
df:qnamedf:member…
df:qname
df:explicitDimension
xlink:to %1IsolationlDimFilter
xlink:type: resourcedf:dimension
df:qnamedf:member…
df:qname
df:explicitDimension
xlink:to %1IsolationlDimFilter
D_0001D_0010
D_0008 D_0009
D_0005D_0006
D_0000D_0007
D_0011
D_0012
D_0013
D_0014 D_0015
D_0016
D_0017
D_0018
D_0019
D_0021
D_0020
I_0022D_0023
D_0024I_0022
BdF 2009-10-29
Tolerance Margin
Total Dimension Filter
25
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
F1: PIA – Primary Item Aggregation – agrégation hiérarchique item primaireF2: OWC - Of-Which Checks – vérification des « dont »F3 & F4: DIA – Dimension Item Aggregation – agrégation dimensionnelleSCC: Specified Condition Checks (contrôles spécifiés)FIP: Filing Indicator Presence Check
>= >= >= >=
… … … ……
F3
F1
F1
F1
F2
F4
2
Types of checks - patterns
26
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
Specified checks (SCC)
• Using codes• Restrictions
– [Dimensional restrictions: set of dimension values => combinations] – [Precondition[s]: set of conditions]
• Condition– Value assertion– Factors
• Template (for documentation)
• Primary item
• [Dimensional characteristics: set of dimension values]
27
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
Example:
Specified checks (SCC)
28
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
Specified checks (SCC)
Example, with a precondition:
30
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
SCC checks –XBRL assertion expression
xlink:type: arcxlink:arcrole:…//variable-set-precondition(order: nnn)
xlink:from
variable:arc
xlink:to
id:implicitFiltering: trueaspectModel: dimensionaltest:{generated}
xlink:label:
va:valueAssertion
%1 : {table} {dim}Agg
%1id:implicitFiltering: trueaspectModel: dimensionaltest:{generated}
xlink:label:
va:valueAssertion
id:implicitFiltering: trueaspectModel: dimensionaltest:{generated}
xlink:label:
va:valueAssertion
%1 : {table} {dim}Agg
%1
xlink:type: arcxlink:arcrole:…//element-labelorder: nnn
xlink:from
generic:arc
xlink:to
%1
%1Message
xlink:type: arcxlink:arcrole:…//element-labelorder: nnn
xlink:from
generic:arc
xlink:to
xlink:type: arcxlink:arcrole:…//element-labelorder: nnn
xlink:from
generic:arc
xlink:to
%1
%1Message
xlink:type: resourcexml:lang: frxlink:role: …/label/satisfied
xlink:label:
label:label
%1Message
xlink:type: resourcexml:lang: frxlink:role: …/label/satisfied
xlink:label:
label:label
xlink:type: resourcexml:lang: frxlink:role: …/label/satisfied
xlink:label:
label:label
%1Message
xlink:type: resourcexml:lang: frxlink:role: …/label/notSatisfied
xlink:label:
label:label
%1Message
xlink:type: resourcexml:lang: frxlink:role: …/label/notSatisfied
xlink:label:
label:label
xlink:type: resourcexml:lang: frxlink:role: …/label/notSatisfied
xlink:label:
label:label
%1Message
xlink:type: arcxlink:arcrole:…//variable-set-preconditionorder: nnn
xlink:from
generic:arc
xlink:to
%1
%1PreCond
xlink:type: arcxlink:arcrole:…//variable-set-preconditionorder: nnn
xlink:from
generic:arc
xlink:to
%1
%1PreCond
xlink:type: resource
test: //…IndicateurDeRemise..=‘OUI’
xlink:label:
variable:precondition
xlink:type: resource
test: //…IndicateurDeRemise..=‘OUI’
xlink:label:
variable:precondition
%1PreCond
xlink:type: resourcecf:concept:
cf:qname: XXX
cf:conceptName
xlink:to %1ConcFilter
xlink:type: resourcecf:concept:
cf:qname: XXX
cf:conceptName
xlink:to %1ConcFilter
xlink:type: arcxlink:arcrole:…//variable-setname: xxxx(order: nnn)
xlink:from
variable:arc
xlink:to
%1
%1Total
xlink:type: resourcebindAsSequence: false
variable:factVariable
xlink:label: %1Total
xlink:type: resourcebindAsSequence: false
variable:factVariable
xlink:label: %1Total
xlink:type: resourcedf:dimensiondf:member
df:explicitDimension
xlink:to %1DetailDimFilter
xlink:type: resourcedf:dimensiondf:member
df:explicitDimension
xlink:to %1DetailDimFilter
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: trueorder: nnn
xlink:from
variable:variableFilterArc
xlink:to %1DetailDimFilter
%1Detail
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: trueorder: nnn
xlink:from
variable:variableFilterArc
xlink:to %1DetailDimFilter
%1Detail
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: trueorder: nnn
xlink:from
variable:variableFilterArc
xlink:to %1DetailConcFilter
%1Detail
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: trueorder: nnn
xlink:from
variable:variableFilterArc
xlink:to %1DetailConcFilter
%1Detail
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: falseorder: nnn
xlink:from
variable:variableFilterArc
xlink:to %1IsolationlDimFilter
%1Detail
xlink:type: arcxlink:arcrole:…//variable-filtercomplement: falsecover: falseorder: nnn
xlink:from
variable:variableFilterArc
xlink:to %1IsolationlDimFilter
%1Detail
xlink:type: resourcedf:dimension
df:qnamedf:member…
df:qname
df:explicitDimension
xlink:to %1IsolationlDimFilter
xlink:type: resourcedf:dimension
df:qnamedf:member…
df:qname
df:explicitDimension
xlink:to %1IsolationlDimFilter
S_0002S_0008
S_0006 S_0007
S_0003S_0004
S_0012
S_0021
S_0010S_0015
S_0013
S_0009S_0016
id:implicitFiltering: trueaspectModel: dimensionaltest:{generated}
xlink:label:
variable:precondition
%1 S_0020
Assertion Messages
Filing Indicators
Concept Variables
Preconditions
Concept Filters
Concept Dimension Filters
Isolation Dimension Filters
S_0011
S_0014
BdF 2009-10-29
31
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
Assertions documentation
• Each assertion is associated:– a label + extra information to identify the occurrence:
• context (for dimensional characteristics)
• concept name (if available)
– a code
32
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
Generic messages• Currently, specific solution• Work in progress in the XBRL International Formula group
Escaped XML element
UBmatrix XPE
35
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
• All linkbases related to templates are referenced from the template schema t-stt-YYYY-MM-DD.xsd (template)
Template taxonomy structure
• The "Template" taxonomy contains:– definition of hypercubes
(concepts, labels and contents)– presentation hierarchies– calculation hierarchies (not standard
calculation linkbase)– assertions
• The "primary" taxonomy contains:– definitions of concepts if any;– labels of the defined concepts, if any;– references of the defined concepts, if any,
if any.Fujitsu XWand
39
Banque de France – Secrétariat général de la Commission bancaire Wien, 20 November 2009
SURFI taxonomyBanque de France – Banking commission
Thank you.
Any questions, or remarks?