What is XBRL dimensions: XBRL dimensions specification is a modular extension for the XBRL specification. It uses the segment and scenario elements of the context to use the elements defined in it to divide the data according to dimensions, as I will explain shortly. The dimension specification is too big to be fully covered in a single article, so in this, I will only discuss the fundamentals and in another, I will explain the other syntactic details. Since the article assumes the reader's prior knowledge of XBRL, the reader is advised to first read the articles on XBRL here.
Dimensions concept: In XBRL dimensions, facts are reported as points in a multi-dimensional space.
Typed Dimensions: Typed dimensions are used mainly for having continuous dimension axis. For example,
temperature, time etc. However, typed dimensions are really flexible, and you can even have a dimension whose value is a complex number. This
is possible because the domains associated with a typed dimension are elements of any type (even a complexType) and the element appears as the
value in the segment or scenario. Now the question is, what is a domain?
Domain: Domains are simply the values the dimensions can take. In case of typed dimensions, the domains
are simply any globally defined elements which appear inside the segment or scenario elements of the contexts. In case of explicit dimensions,
the domains are elements in the substitution group of item (so technically, they are items). The element never appears in the instance, instead,
their qualified names appear in the segment or scenario elements of the context. In this case, the qualified name of the domain is the value.
Explicit Dimension: As already mentioned in the above discussion about domains, explicit dimensions are
attached to explicit domains. The names of the explicit domain are the values of the explicit dimensions. Explicit domains are allowed to have
sub-domains. This allows for organization of the domains.
Since, the names of the domains are the values of the dimensions, all domain values must be a part of the taxonomy. This is in contrast to the
explicit domains, in which, the values can be specified in the instance itself. It should be remembered that typed dimensions are broader and
more powerful than explicit dimensions. However, it is more difficult to create a standard display logic for them that will work with all typed
dimensions including complex types. As such, typed dimensions are not commonly used in financial reporting.
Hypercubes: Now that we are familiar with the concept of dimensions, we can now learn about hypercubes.
Hypercubes are simply collection of dimensions that go together. A hypercube can be thought of as a coordinate system. While specifying hypercubes
in the taxonomy, we only specify the independent axes which are the dimensions. The dependent axis is the values of the item. Hypercubes are allowed
to have a mix of typed and explicit dimensions. For example, if you want to report the taxi fare in different states according to the distance,
you can have distance as a typed dimension and state as an explicit dimension.
How are these defined: Well I will cover the semantic details in later articles. So, stay tuned.