practical dimensions

65
1 16 th XBRL International Conference Practical Dimensions “No Primary Item Left Behind” December 5, 2007 Herm Fischer

Upload: tholem

Post on 04-Dec-2014

1.310 views

Category:

Education


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Practical dimensions

1

16th XBRL International Conference

Practical Dimensions“No Primary Item Left Behind”

December 5, 2007Herm Fischer

Page 2: Practical dimensions

2

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

Page 3: Practical dimensions

3

Why, who needs dimensions, for what?

Historical perspectivesUses of XBRL DimensionsConverting dimensions into XBRLValidationFormulas to aggregate dimensionsDebugging dimensions fact contextsConverting tuples to dimensions

Page 4: Practical dimensions

4

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

Page 5: Practical dimensions

5

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

Cheryl Neal
Are we requiring this outline from the speakers?
Page 6: Practical dimensions

6

Segmental breakdowno Business segmento Geographical segmento Class of saleso Class of product

Scenario identificationo Continuing and discontinuing portionso Actual, budgeted, varianceo Unaudited, Audited

Page 7: Practical dimensions

7

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

Page 8: Practical dimensions

8

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

Page 9: Practical dimensions

9

Primary item:Items that are facts, such as sales, cost of

salesHypercube:

Inter-related set of dimensional attributionsApplicability rules of this attribution

Dimension:Aspect of characterizing data

Domain:Set of members possible for a dimension

Page 10: Practical dimensions

10

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)

Page 11: Practical dimensions

11

Input inst.DTS

contextsunits

fact items

DimensionsDefinition LB*

DimensionAware

Processor

Errors list

Page 12: Practical dimensions

12

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

Page 13: Practical dimensions

13

Input inst.DTS

contextsunitsfacts

DimensionAware

Processor

Errors listdim-invalidfact items

Dimensions in definition LB*

hypercube

dimension

locmember default

primary item

arc

Page 14: Practical dimensions

14

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

Page 15: Practical dimensions

15

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

Page 16: Practical dimensions

16

dimensions

domains

members

fact

hypercube

Page 17: Practical dimensions

17

dimension dimension facts

domains

members

Page 18: Practical dimensions

18

dimension dimension facts

domains

members

Page 19: Practical dimensions

19

Page 20: Practical dimensions

20

Page 21: Practical dimensions

21

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

Page 22: Practical dimensions

22

TD XWand

Page 23: Practical dimensions

23

Page 24: Practical dimensions

24

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

Page 25: Practical dimensions

25

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

Page 26: Practical dimensions

26

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

Page 27: Practical dimensions

27

taxo

nom

y pa

rtiti

oned

Page 28: Practical dimensions

28

4)company.xsd2) regions.xsd1) products.xsd

3) sales.xsd

Page 29: Practical dimensions

29

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

Page 30: Practical dimensions

30

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

Page 31: Practical dimensions

31

Test aggregation of each member

Products & region dimensions have member hierarchy

Page 32: Practical dimensions

32

Multiple periods for used dimensions

Multiple dimensions per contexts

(Charlie’s aggregation example)

Page 33: Practical dimensions

33

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

Page 34: Practical dimensions

34

<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

Page 35: Practical dimensions

35

Page 36: Practical dimensions

36

Try it, examine it, execute it online:

◦ Tracing information example:

Page 37: Practical dimensions

37

Dimensional concepts and arcs Dimensional arc networks

◦ Consecutive relationships◦ targetRole◦ Primary item inheritance◦ Exclusion of member values

Explicit and typed dimensions

Page 38: Practical dimensions

38

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

Page 39: Practical dimensions

39

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

Page 40: Practical dimensions

40

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

Page 41: Practical dimensions

41

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

Page 42: Practical dimensions

42

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

Page 43: Practical dimensions

43

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

Page 44: Practical dimensions

44

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

Page 45: Practical dimensions

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

targetRole concepts drawn perlink role

Page 46: Practical dimensions

46

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

Page 47: Practical dimensions

47

targetRole = link2

pParent

p1stchild

2nd childChild

p3rdchild

Hc

2

Hc1

p2ndchild

Link1 Link2

Hc

3

specstyle

nodes& arcs

view

Page 48: Practical dimensions

48

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

Page 49: Practical dimensions

49

This test assures that extended links transfer consecutive arcs to targetRole-specified link

Compare tool style and diagram style

Page 50: Practical dimensions

50

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

Page 51: Practical dimensions

51

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

Page 52: Practical dimensions

52

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

Page 53: Practical dimensions

53

Page 54: Practical dimensions

54

Page 55: Practical dimensions

55

Page 56: Practical dimensions

56

Page 57: Practical dimensions

57

Page 58: Practical dimensions

58

primary items all inherit

specific exclusion

Page 59: Practical dimensions

59

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

Page 60: Practical dimensions

60

1)3)

2)

4) 5)

Page 61: Practical dimensions

61

1)

2)

3)

4)

5)

Page 62: Practical dimensions

62

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

Page 63: Practical dimensions

63

original tuple design

presentation linkbase view definition linkbase view

Alchemizer conversion to dimensions

generated dimensions

arcs

xbrli:tupletuple-key arc (becomes a dimension)

Page 64: Practical dimensions

64

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

Page 65: Practical dimensions

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!