Understanding All Those Hypercubes in SEC XBRL Financial Filings

Friday, November 22, 2013 at 08:40AM

Charlie in Becoming an XBRL Master Craftsman

Charlie in Becoming an XBRL Master Craftsman

A hypercube is simply a table which can have any number of dimensions, or "n" dimensions. There are two constraints which must be differentiated in your mind: the medium using to display the information and the characteristics one is working with which describe the information.

A **scalar **is a piece of informtion which has no characteristics, it stands on its own. A scalar does not need to be characterized. For example, the value of pi is a scalar, it never changes; it always has the same value for everyone. (Pi or p is the ratio of a circle's circumference to its diameter and always has the value of equal to 3.14)

Visually, this is what a scalar looks like:

A **list **has one dimension. Dimensions are a model for expressing characteristics of information. Dimensions effectively conceptualized for unambiguous interpretation.

For example, the following is a list of numbers. But you don't know any more about the characteristics of the number. You don't know if the number is for, say, revenue, net income, assets; you don't know if the number is in US Dollars, Euros, or Yen; you don't know if the number is for Microsoft, Apple, IBM, or some other company. All you have is a list of numbers:

A **table** has two dimensions physical dimensions: rows and columns which intersect to form cells. A spreadsheet is a good example of presenting a table. Other terms used for table are *matrix* and *array*.

A table (spreadsheet, matrix, array) can have any number of rows and columns (or, to the limit of the software application; Excel for example does have limits).

So a table can hold pretty much any set of information and the characteristics which describe the information. But as the number of characteristics, rows, and columns increases; it gets harder and harder to work with the information. Also, if you are working with DIFFERENT tables which have different dimensions/characteristics things get more challenging.

This is why relational databases are so handy. Relational databases store information in the form of tables which can basically hold anything. But as the shapes of the tables change, it gets more and more challenging to put things into relational databases or manage all the things you have in a relational database.

Here is a small table with a value and four characteristics which conceptualize the value in the column "Fact Value":

A **cube **can be thought of as a three dimensional presentation of a table/matrix/array. "Space" has three dimensions. Paper only has two dimensions though. You can present three dimensional information on the two dimensional medium of paper by grouping information and printing one group, then the next, then the next linearly down the piece of paper. The software application Excel achieves three dimensions by adding the notion of a "sheet". In the old days of spreadsheets there was only one sheet. But today, Excel has the notion of a "workbook" which contains "sheets" which then contain rows and columns which intersect and form cells.

A **pivot table** is an approach to visualizing a complex table of information. There are two things going on with pivot tables. The first is the number of characteristics a value has and the second is how to show all of the information, including the characteristics, in usable ways. So you have both the information that you are dealing with and how to present the information. Again, a computer screen only has two dimensions, it is flat. It can be a challenge to render information which has more than two dimensions in a two dimensional space. A pivot table is one way of achieving that goal.

A **hypercube **is an "n" dimensional table/matrix/array. Where "n" represents any number of dimensions or characteristics. And so every table is basically a hypercube. Different tables or hypercubes can have different numbers of characteristics. It is easy to work with tables that have exactly the same characteristics or dimensions together. The more different the dimensions/characteristics, the more challenging it is to put different tables/hypercubes together.

Saying this another way, different tables/hypercubes have different shapes.

The more dimensions or characteristics that a hypercube has, the more challenging it is to rendering that information in two dimensional space such as paper or a spreadsheet. Computers can be better for presenting this sort of information to humans in readable forms because computers can be dynamic, like a pivot table.

Imagine an application which is good at handling n-dimensional information (i.e. any number of dimensions or characteristics. Consider this visualization of a four dimensional object or hypercube:

Or this visualization of a five dimensional object or hypercube:

Because a computer is dynamic, it is easier for a computer to take n-dimensional information and display it (a) in human readable terms and (b) dynamically, the user can change the representation to suit his or her specific preceived needs or demands.

A pivot table is one example of that sort of application.

SEC XBRL financial filings are nothing more than many, many hypercubes. Those hypercubes; referred to as explicit [Table]s or implied tables which have only reporting entity (or CIK), a period, and a concept which contextualize reported facts; must be managed by software application which work with the information.

Some of those software applications show static, unchangeable views of the information. The SEC Interactive Data Viewer is an example of a static application. Other applications let you change the view of the information, such as the XBRL Cloud Viewer or CoreFiling's Matnify.

Article originally appeared on Intelligent XBRL-based structured digital financial reporting using US GAAP and IFRS (http://xbrl.squarespace.com/).

See website for complete article licensing information.