Appearance
XBRL Dimensions
The XBRL Dimensions specification (1.0, published 2006) extends the base XBRL 2.1 model to allow multi-dimensional reporting.
Why Dimensions?
XBRL 2.1 provides three fixed reporting axes:
- Concept -- what is being reported
- Period -- when
- Entity -- who
But financial data often needs more axes. For example, "Revenue by Geographic Region" or "Assets by Business Segment". Dimensions provide these additional axes.
Key Components
Hypercubes
A hypercube is a collection of dimensions forming an n-dimensional space.
- Declared in the definition linkbase
- Positive hypercube (arcrole
all) -- facts MUST use only these dimensions - Negative hypercube (arcrole
notAll) -- facts must NOT use these dimensions
Best practice:
- Positive hypercubes should be closed (no extra dimensions allowed)
- Negative hypercubes should be open
Explicit Dimensions
Dimensions with a known, enumerated set of members defined in the taxonomy.
Structure:
Dimension: GeographicAreas
└── Domain: GeographicAreasDomain
├── SouthAfrica
├── Europe
│ ├── UnitedKingdom
│ └── Germany
└── NorthAmerica
├── UnitedStates
└── CanadaIn instance documents:
xml
<xbrli:segment>
<xbrldi:explicitMember dimension="ifrs:GeographicAreas">
ifrs:SouthAfrica
</xbrldi:explicitMember>
</xbrli:segment>Members can be:
- Usable -- can appear in reported facts
- Non-usable -- structural only (grouping nodes)
Typed Dimensions
Dimensions where members cannot be enumerated in advance.
Use cases: loan IDs, policy numbers, counterparty identifiers, individual property addresses.
In instance documents:
xml
<xbrli:segment>
<xbrldi:typedMember dimension="cipc:LoanIdentifier">
<cipc:identifier>LOAN-12345</cipc:identifier>
</xbrldi:typedMember>
</xbrli:segment>The domain is defined by a type constraint in the schema, not by listed members.
Dimension Defaults
A default member is assumed when a dimension is not explicitly reported for a fact.
- Must be defined as usable
- Should never be overridden in extension taxonomies (changes the meaning of existing data)
- Example: "Total" might be the default for a "Geographic Areas" dimension, so a fact without any geographic dimension tag is assumed to be the total
Dimension Containers
Dimensional data is reported inside either:
<xbrli:segment>(inside entity) -- most common<xbrli:scenario>(sibling of entity and period)
The choice is semantically arbitrary; consistency matters more than which one you pick.
How Dimensions Are Defined
All defined in the definition linkbase using these arcroles:
Primary Item ──(all)──→ Hypercube ──(hypercube-dimension)──→ Dimension
│
(dimension-domain)
│
↓
Domain
│
(domain-member)
│
┌──────┼──────┐
↓ ↓ ↓
Member Member MemberPractical Example
Reporting "Revenue = R5M for South Africa, FY2024":
The fact combines:
- Concept axis: Revenue
- Period axis: 2024-01-01 to 2024-12-31
- Entity axis: CompanyXYZ
- Geographic dimension: SouthAfrica (the added dimension)