Date post: | 30-Dec-2015 |
Category: |
Documents |
Upload: | oswin-ward |
View: | 216 times |
Download: | 3 times |
1
16th XBRL International Conference
Practical Dimensions“No Primary Item Left Behind”
December 5, 2007Herm Fischer
2
Overview
Why, who needs formulas for what? Historical perspectives Process flow of formulas Formula Linkbase
ContentsFormula processingFeatures by use case exampleDTS discovery
FunctionsBuilt-inEnd-user
Roadmap
3
Overview
Why, who needs dimensions, for what?
Historical perspectivesUses of XBRL DimensionsConverting dimensions into XBRLValidationFormulas to aggregate dimensionsDebugging dimensions fact contextsConverting tuples to dimensions
4
Why dimensions spec?
XBRL has two built-in dimensions Time Entity
Scenario and Segment are unconstrained
Previously held home-made XML◦ No standard semantics
Now standardized by dimensions◦ Metadata representation◦ Semantic validation
5
Historical Perspectives
2004-10 – First drafts 2005-02 – Definitions linkbase syntax 2005-06 – Test cases evolve spec 2005-09 – Initial taxonomies by COREP 2005-12 – Populate conformance tests 2005-12 – Public review 2006-04 – Candidate recommendation 2006-09 – Publication as standard
6
Original motivationDrill down of data
Segmental breakdowno Business segmento Geographical segmento Class of saleso Class of product
Scenario identificationo Continuing and discontinuing portionso Actual, budgeted, varianceo Unaudited, Audited
7
XBRL without dimensions
Segment and Scenario chaos o Each project defines own XMLo No interoperabilityo Not compatible with taxonomy extensiono Home made tools per each projecto Set construction and algebra obscuredo Notion of defaults is random
8
You will hear these terms: Primary item Hypercube Dimension (explicit, typed, empty, closed,
default) Domain, effective domain Domain member, valid member Dimensional relationship set (DRS),
targetRole Primary item inheritance, base set
9
Key terms:Primary item:
Items that are facts, such as sales, cost of sales
Hypercube:Inter-related set of dimensional attributionsApplicability rules of this attribution
Dimension:Aspect of characterizing data
Domain:Set of members possible for a dimension
10
Street talk terms:
Table (≈hypercube):A table of line item breakdowns
Line items axis (≈primary items):Reported scalar properties, such as
sales, cost of sales, profit…Dimension axes (≈dimensions):
Breakdowns of line items (each is a domain)
11
Process of checking dimensions
Input inst.DTS
contextsunits
fact items
DimensionsDefinition LB*
DimensionAware
Processor
Errors list
12
Input instance processing
Instance provides taxonomy, contexts, and reported facts
Taxonomy provides concepts, dimensions
Context provides dimension values Fact connects value, primary item,
context Dimension processor examines if any
base set is valid Report of dimensionally invalid facts
13
Linkbase physical contents
Input inst.DTS
contextsunitsfacts
DimensionAware
Processor
Errors listdim-invalidfact items
Dimensions in definition LB*
hypercube
dimension
locmember default
primary item
arc
14
Linkbase logical contents
Input inst.DTS
contextsunitsfacts
DimensionProcessor
Errors listdim-invalidfact items
Dimensions Infoset
hypercube
loc
primary itembase set
arc
*Formula LB is part of DTS
dimension validcombination item
dimensiondefault
memberstree
15
Dimension processing
Input inst.DTS
contextsunitsfacts
Definition LB*
For each fact item (unordered)•For each base set (if any)
•For each hypercube•For each dimension
•Test validity•Valid when all all’s are validand all notAll’s are invalid
•Fact valid if any base set is valid
Errors listdim-invalidfact items
DefinitionProcessor
*Formula LB is part of DTS
16
Pharmaceutical sales breakdown by product & region
dimensions
domains
members
fact
hypercube
17
Sales breakdown, prod - region
dimension dimension facts
domains
members
18
Sales breakdown, region – prod.
dimension dimension facts
domains
members
19
Sales breakdown, pivot table
20
Sales breakdown, pivot table
21
Logical vs. Physical views
Sales Table
Line items
Axis
Product
Axis
Region
Axis
sales Pharmaceutical
Generics
Consumer health
Other
Asia
Europe
US/Canada
Other
physical arcslogical view
Sales Hypercube
Product
Dimension
Region
Dimension
hypercube-
dimension
hypercube-dimension
all
dimension-
domain
dimension-
domain
sales
Generics
Consumer health
Other
Asia
Europe
US/Canada
Other
Pharmaceutical
all products
domain-m
ember
all regions
domain-m
ember
22
Tools edit the physical viewTD XWand
23
Generated analysis graph
24
Creating dimension linkbase From existing dimensional data
◦ COREP began with existing dimensions tables◦ Built tools to generate dimensions linkbase◦ XBRL-US began with tables of tuples, converted to
dimensions From scratch
◦ Creating at concepts & definition arcs level No custom programming required Use taxonomy editing tool (e.g., TD, XWand)
◦ Creating by tables, line items, axes, domains Requires transformation into definition arcs XBRL-US used this approach
25
Structuring approaches
COREP/FINREP – Partitioned taxonomies◦ Primary items “p-” prefixed taxonomies◦ Dimension items “d-” prefixed taxonomies◦ Company (integrating) “t-” prefixed taxonomies
XBRL-US – Logical entry editing taxonomy◦ All items together to edit (primary & dimensional)◦ Generate dimensions from table/axis presentation◦ Partition taxonomy for final distribution
26
COREP & xbrl-us approaches
Sales Table
Line items
Axis
Product
Axis
Region
Axis
sales Pharmaceutical
Generics
Consumer health
Other
Asia
Europe
US/Canada
Other
xbrl-us approachpartitioned approach (COREP)
Sales Hypercube
Product
Dimension
Region
Dimension
hypercube-
dimension
hypercube-dimension
all
dimension-
domain
dimension-
domain
sales
Generics
Consumer health
Other
Asia
Europe
US/Canada
Other
Pharmaceutical
all products
domain-m
ember
all regions
domain-m
ember
logicalpresentationlinkbase
company.xsd
Products.xsd
sales.xsd
Regions .xsd
generateddefinition linkbase
27
Partitioned pharmaceuticals
taxo
nom
y pa
rtiti
oned
28
Order to build partitioned example
4)company.xsd2) regions.xsd1) products.xsd
3) sales.xsd
29
Order to build logical example
1) M
anu
ally
en
ter
2) T
oo
l (o
r h
um
an)
tran
sfo
rms
into
def
init
ion
arc
s, e
tc
30
Checking dimensional aggregation Early spec versions tried a calculation
component◦ Aggregation via calculation linkbase
Current focus is formula spec◦ Aggregation by dimension member traversal
Example shown tests roll-ups of each dimension using PWD formula linkbase
31
Dimension aggregation Test aggregation of
each member Products & region
dimensions have member hierarchy
32
Formula for aggregation
Multiple periods for used dimensions
Multiple dimensions per contexts
(Charlie’s aggregation example)
33
Two dimensions to check Will require checking of aggregation for
◦ Product dimension◦ Region dimension
Formula shown for product dimension(region is same except for dimension name)
Demonstrates mixed explicit/implicit dimension filtering
34
Product aggregation check<formula value="abs( $sales - sum($salesBreakdown) ) lt 1.00"> <context referenceVariable=”sales” /></formula>
Tests aggregate of sales is within €1.00 of contributor sales items
E-L
factVariable
sales
factVariable
salesBreakdown
F-V F-V
bindAsS
eq=”true”
V-F
V-F
Binds to any sales fact
Sequence of contributors which are dimensional children of product, implicit matching of period etc to sales
E-L
E-L
conceptName filtername=”Sales”
label resources
dimensionMember filterdimension=”company:ByProductPlaceholder”
member=”xfi:dimension-value($sales,QName(“company:ByProductPlaceholder”))
C-F
The breakdown is dependent on the dimension of the sales variable, so that
determines the order
V-F
loc
ValidByProduct
preconditiontest=”count($salesBreakdown) gt 0”
F-P
35
Formula editor view
36
Product dimension check Try it, examine it, execute it online:
◦ Tracing information example:
37
Navigating the dimensions spec
Dimensional concepts and arcs Dimensional arc networks
◦ Consecutive relationships◦ targetRole◦ Primary item inheritance◦ Exclusion of member values
Explicit and typed dimensions
38
Dimensional concepts & arcs
Primary Item
substitutionGroup:item domain-member (with inheritance)
Hypercube
substitutionGroup:hypercubeItem abstract:true
Typed Dimension
substitutionGroup:dimensionItem abstract:true typedDomainRef:anyURI
Explicit Dimension
substitutionGroup:dimensionItem abstract:true
hypercube- dimension
{all, notAll} closed:Boolean contextElement: {segment, scenario} hypercube-dimension
domain-member
usable:Boolean
dimension-domain usable:Boolean
Member Member
substitutionGroup:item
substitutionGroup:item
domain-member usable:Boolean
dimension-default
domain-member usable:Boolean
39
Hypercube relationship properties contextElement: segment, scenario
◦ Specifies where dimensions are in instance contexts
closed: true, false◦ Specifies whether context element can contain
extra stuff in the segment or scenario.◦ Applies to extra dimensions (for other hypercubes
or just not needed), and to non-dimensional xml
40
Consecutive relationships
Initial arcRole Subsequent arcRole
all hypercube-dimension
notAll hypercube-dimension
hypercube-dimension
dimension-domain
dimension-domain domain-member
domain-member domain-member
Rules of which arcs can follow another arc:
Examples on next diagram
41
Inheritance and member exclusionnotAll removes India from pCostOfSales domain
p_GrossProfit
substitutionGroup:item abstract: false
p_Sales
substitutionGroup:item abstract: false
p_CostOfSales
substitutionGroup:item abstract: false
domain-member
hc_AllCountries
substitutionGroup:hypercubeItem abstract: true
hc_NoSalesCountries
substitutionGroup:hypercubeItem abstract: true
notAll contextElement:
scenario
all contextElement
:scenario
hc_CountriesDim(*)
substitutionGroup:dimensionItem abstract: true
hypercube-dimension
CountriesDomain
substitutionGroup:item abstract: true
dimension-domain
hc_CountriesDim(*)
substitutionGroup:dimensionItem abstract: true hypercube-dimension
m_Argentina
m_France
m_India
m_Spain
...
dimension-domain
(*) Both are the same element.
http://www.example.com/role/link1
http://www.example.com/role/link2
domain-member
42
targetRole redirects network flow XBRL pres/calc/def networks confined to
one extended link role targetRole redirects dimensional
relationship to a specified extended link role Networks of domain relationships can flow
across extended link roles
43
targetRole example
hc_AllRegions
substitutionGroup:hypercubeItem abstract: true
RegionDim
substitutionGroup:dimensionItem abstract: true
CountriesDomain
substitutionGroup:item usable: false
m_Argentina
m_France
m_India
m_Spain
…
domain-member hc_ExcludeRegions
hc_ExcludeRegions
substitutionGroup:hypercubeItem abstract: true
http://www.example.com/role/link
CountriesDomain
substitutionGroup:item usable: false
m_Argentina
m_Singapoure
m_Spain
domain-member http://www.example.com/role/link3
http://www.example.com/role/link2
http://www.example.com/role/link2
hypercube-dimension targetRole: link2
hypercube-dimension targetRole: link3
http://www.example.com/role/link3
RegionDim
substitutionGroup:dimensionItem abstract: true
dimension-domain dimension-domain
RegionDim
substitutionGroup:dimensionItem abstract: true
44
Pharmaceuticals exampletargetRole nodes drawn as shared
Sales Hypercube
Product
Dimension
Region
Dimension
hypercube-
dimension
hypercube-dimension
all
dimension-
domain
dimension-
domain
sales
Generics
Consumer health
Other
Asia
Europe
US/Canada
Other
Pharmaceutical
all products
domain-m
ember
all regions
domain-m
ember
targetRole concepts drawn once
45
Sales Hypercube
Product
Dimension
Region
Dimensionhypercube-
dimension
hypercube-dimension
all
dimension-
domain
dimension-
domain
sales
Generics
Consumer health
Other
Asia
Europe
US/Canada
Other
Pharmaceutical
all products
domain-m
ember
all regions
domain-m
ember
Sales Hypercube
all products all regions
Pharmaceuticals exampletargetRole nodes drawn per link
targetRole concepts drawn perlink role
46
Primary item inheritance, example 11
p_PrimaryParent
Type: monetaryItemType p_FirstChild
Type: monetaryItemType p_SecondChild
Type: monetaryItemType p_ThirdChild
Type: monetaryItemType
domain-member targetRole link2
domain-member
domain-member
link1 link2
hc_One
substitutionGroup:hypercubeItemabstract: true
hc_Three
substitutionGroup:hypercubeItemabstract: true
all
hc_Two
substitutionGroup:hypercubeItemabstract: true
alldomain-member
47
targetRole = link2
pParent
p1stchild
2nd childChild
p3rdchild
Hc
2
Hc1
p2ndchild
Link1 Link2
Hc
3
specstyle
nodes& arcs
view
48
Primary item inheritance hypercubes
p_PrimaryParent
Type: monetaryItemType p_FirstChild
Type: monetaryItemType p_SecondChild
Type: monetaryItemType p_ThirdChild
Type: monetaryItemType
domain-member targetRole link2
domain-member
domain-member
link1 link2
hc_One
substitutionGroup:hypercubeItemabstract: true
hc_Three
substitutionGroup:hypercubeItemabstract: true
all
alldomain-member
Primary Item Link Hypercubes Primary Item Link Hypercubes
p_PrimaryParent link1 hc_One p_PrimaryParent link2 none
p_FirstChild link1 hc_One, hc_Two p_FirstChild link2 none
p_SecondChild link1 hc_One, hc_Two p_SecondChild link2 hc_Three
p_ThirdChild link1 hc_One, hc_Two p_ThirdChild link2 hc_Three
hc_TwosubstitutionGroup:hypercubeItem
abstract: true
49
Examination of a conformance case
This test assures that extended links transfer consecutive arcs to targetRole-specified link
Compare tool style and diagram style
50
Diagram, TD & XWand views
targetRole = link2
P1
P2
P5
P6 P4
P3
Hc1
Hc2
P2
Link1 Link2
1) U
Bm
atri
x T
D
2) F
uji
tsu
XW
and
ToolExamples
targetRole targetRole
51
Explicit and Typed dimensions Explicit dimensions have domains of members
◦ Domain’s members are the only values◦ Validation of explicit dimension is by XBRL processor
Typed dimensions have plain xml for values◦ Could have
strings (names), numbers (zip code, phone number, latitude/longitude) structures of xml
◦ Validation of typed dimension xml is by schema only
52
Default values for dimensions For each dimension
◦ A default value can be globally specified◦ It applies to every context omitting that
dimension◦ It applies even to closed dimensions
Each closed dimension must be “prepared” for omitted closed dimensions, otherwise it will never be valid
53
COREP examples
54
Primary item with hypercube
55
56
57
Specifying invalid dimensions
58
Excluding dimension values
primary items all inherit
specific exclusion
59
Tracing/debugging dimensions My familiarity is to use integrated panes in
TD Load instance document Arrange taxonomy view (lower right) for
◦ Synchronized tree and element views Find fact items by name/context
◦ Widen columns, sort (by col. header clicks), scroll Display dimensions trace from fact (rt-btn.
menu) Navigate primary item to dimensions while
correlating to trace
60
Debugging a COREP instance
1)3)
2)
4) 5)
61
1)
2)
3)
4)
5)
62
Tuples morph into Dimensions Tuples can be used to collect associated
data Dimensions can do the same Pros vs cons
◦ Tuples in spec v2.0 were extensible◦ In v2.1 extensibility is limited to GL’s “tricks”◦ Dimensions are fully extensible
XBRL-US morphed tuples into dimensions
63
Example of tuple and dimension
original tuple design
presentation linkbase view definition linkbase view
Alchemizer conversion to dimensions
generated dimensions
arcs
xbrli:tupletuple-key arc (becomes a dimension)
64
Class model, dimensions infoset
2.2.9 – XBRL Item Information Item
1 Parent: 2.2.82 Period Type: "instant"|"duration"3 Balance: "credit"|"debit"|{empty}4 Default: String
2.2.20 – XBRL Effective Explicit Dimension Domain Information Item
1 Parents (list): 2.2.192 Default Value: 2.2.22 or {empty}3 Members (list): 2.2.22
2.2.21 – XBRL Typed Dimension Domain Information Item
1 Parents (list): 2.2.192 Type: XSDType
2.2.24 – XBRL Dimension And Value Couple Item
1 Parents (list): 2.2.232 Dimension: 2.2.203 DimensionValue: 2.2.224 DefaultValueForDimension: Boolean
2.2.18 – XBRL Cartesian Product Hypercube Information Item
1 Parents (list): 2.2.172 Context Element: "segment"|"scenario"3 Closed: Boolean4 Dimensions (list): 2.2.195 Valid Combinations (list): 2.2.236 Hypercube-Dimension Base Sets URI (list): URI
2.2.23 – XBRL Dimension Valid Combination Item1 Parents (list): 2.2.182 Valid Dimension Values (list): 2.2.24 and / or 2.2.21
1 XBRL Item Parent: 2.2.92 Domain-Member Base Set URI: URI3 Domain-Member Parent: 2.217 or {empty}4 Domain-Member children (list) : 2.2.175 Has-Hypercube Base Set URI: URI6 Hypercubes (list) : 2.2.257 Cartesian Product Hypercubes (list): 2.2.18
2.2.17 – XBRL Primary Item Dimensional Base Set Information Item
2.2.22 – XBRL Dimension Value Information Item
1 XBRL Item: 2.2.92 Usable: Boolean3 Domain-Member Base Set: URI4 Domain-Member Parent: 2.22 or {empty}5 Domain-Member children (list) : 2.2.226 Effective Expl.Dimension Domains (list): 2.2.207 Explicit Dimension Domain (list): 2.2.27
1..*
0..*
1 0..*
1
0..*
2.2.19 – XBRL Effective Dimension Information Item
1 Parents (list): 2.2.182 Namespace: URI3 Name: NCName4 Dimension-Domain Base Set URIs (list): URI5 Domain: 2.2.20 or 2.2.21
0..*0..*
1
1..*
0..*
or
0..*
1..*
1
2.2.25 – XBRL Hypercube Information Item1 Parents (list): 2.2.172 Namespace: URI3 Name: NCName4 Attachment Type: all | notAll5 Context Element: "segment"|"scenario"6 Closed: Boolean7 Dimension (list): 2.2.198 Hypercube-Dimension Base Set URI: URI
UsableMember
0..*
0..*
0..*
0..*
0..1
0..*
domain-member
domain-member
0..*
0..*
0..1
0..1
dim
ensi
on-
dom
ain
Default Value
1..*
0..*
0..*
1..*
Revision: 0.87c – 2007-11-15
2.2.27 – XBRL Explicit Dimension Domain Information Item
1 Parents (list): 2.2.162 Default Value: 2.2.22 or {empty}3 Dimension Domain Values (list): 2.2.22
0..*
0..*
Members
Def
ault
Valu
e
must beusable
0..*
0..*
0..*
0..*
or
1..*
1..*
2.2.26 – XBRL Dimension Information Item
1 Parents (list): 2.2.252 Namespace: URI3 Name: NCName4 Dimension-Domain Base Set URI: URI5 Domain: 2.2.27 or 2.2.21
0..*
0..*
0..*
0..*
0..1
must beusable
65
Herm [email protected]
[email protected]+1-818-995-7671 +1-818-404-4708
http://herm.ws/XBRL/files/docs/PracticalDimensions.ppt
THANK YOU! Let us help you with dimensions analysis!
Questions