It is getting a little easier to communicate issues relating to XBRL reports. The biggest problem in doing this is that most people don't know how to "read" XBRL. But as software applications become available being able to understand these sorts of issues will become easier.
There are a number of issues relating to doing basic comparisons of SEC XBRL filings. I am fortunate enough to have been dinking around with XBRL for over 12 years now, I can pretty much look at XBRL instances and taxonomies and figure most things out. During this time I have built a multitude of software applications to help me read XBRL easier and communicate information to others. I have taken that up a notch, combining about 10 different software tools into one tool which I call my XBRL audit or query or analysis tool.
That XBRL audit/query/analysis tool can generate a report which focuses on networks (i.e. extended links), hypercubes (i.e. [Table]s in SEC XBRL filings) and dimensions (i.e. [Axis] in SEC XBRL filings).
Here are six different reports which I will use to make a few points. The analysis reports show different characteristics. The focus here is comparability of the XBRL instance information. I will look at how networks, hypercubes (i.e. called [Table]s in SEC filings), and dimensions (i.e. called [Axis] in SEC XBRL filings) impact comparability. So here are the reports with a bit of information about each report.
- Analysis of Apple SEC filing: Actual SEC filing. Note that all concepts reported are modeled within [Table]s, in the case of this filing, the [Table]s are always the same, "Statement [Table]".
- Analysis of Heinz SEC filing: Actual SEC filing. Note that not all concepts reported are modeled withn a [Table], you will see that many networks say "xbrl:No [Table] (None)" in the column headed "[Table] (i.e. Hypercube).
- Analysis of SEC Model Filing I created: Test SEC filing I created to make some points. Note that every concept is modeled within a [Table] which is similar to the Apple filing, but in my case every [Table] has a unique name which identifies the concepts in the [Table], rather than using "Statement [Table]" for every [Table]/hypercube.
- Analysis of Comparison Example ABC Company: Prototype GAAP filing created to test comparability. This was build to be comparable with the XYZ Company and QQQ Company filings below. Note that all three filings use [Table]s (which are called Fact Groups as they follow the straw man implementation of the Business Reporting Logical Model (BRLM).
- Analysis of Comparison Example XYZ Company: Prototype GAAP filings, built to be comparable with ABC Company above.
- Analysis of Comparison Example QQQ Company: Prototype GAAP filings, built to be comparable with ABC Company above.
To start off let me say that this is not about my personal view as to what should or should not be comparable, that is not the point. The point here is this: if you want comparability, there are ways to get it and there are ways to make comparability more difficult to achieve.
You may want to start off doing two things. First, scan each of the reports which I have linked to noting what you have in each report. Then, compare the reports looking for similarities and differences between the reports. If you are really interested in this and want to do some extra credit work, note that each of the analysis reports links to the actual XBRL instance. Take the actual XBRL instances and try to compare them in some XBRL analysis tool. Try to compare 1, 2, and 3. Then try and compare 4, 5, and 6.
OK, so to my points (it helps to open all 6 reports above in your browser and bounce between them as you read this):
- All information is "dimensional", don't confuse syntax and semantics. A lot of people freak out when you talk about XBRL and dimensions. The truth is that all information in XBRL is dimensional. The dimensions are expressed using different syntax options, but the information is dimensional. If you look at the column headed "[Axis] (i.e. Dimension)", you will always see three dimensions for every "chunk" (sets) of information: xbrl:Concept [Axis], xbrl:Entity [Axis], and xbrl:Period [Axis]. Other [Axis] may be added by taxonomy creators, or not.
- Comparability is impacted by what [Axis] you have and what level the [Axis] was defined. If different hypercubes have different [Axis], the information will not be seen as comparable by software. There is a higher probability of comparability if an [Axis] is defined at the "GAAP" level than at the company/filer level.
- Comparability is impacted by networks and hypercubes [Table]s. Just as with the [Axis], comparability is impacted by networks and hypercubes; and the level that networks and hypercubes are defined impact comparability. For example, note the Apple and Heinz filings, seeing that every network was defined by the filer. Therefore, no networks in either the Apple or Heinz filing are the same. If you look at the Model SEC filing, note that there are (illegally, the SEC does not allow this) a few US GAAP Taxonomy defined networks. If Apple and Heinz had both, say, used the US GAAP Taxonomy network for the "balance sheet", then one could get the "balance sheet" for both Apple and Heinz. If you contrast that to the ABC Company, XYC Company, and QQQ Company reports you will see that all but one network is the same in all three reports. The same deal with hypercubes. If one uses no hypercubes or uses hypercubes which are all the same then basically the hypercubes [Table]s are useless. But, if each hypercube is unique, the hypercubes can be used as a basis of comparison. In filings 4, 5, and 6 all the hypercubes are unique and one could use the networks OR the hypercubes as the basis for comparison. (Except for the last network (QA, Part 1: Variance Analysis) and hypercube (Variance Analysis, Gross Profit [Fact Group]) which were defined at the company/filer level, and therefore is harder to compare as a computer will not understand them to be the same.
- If networks or hypercubes are not the fundamental basis for comparison, what is?Suppose you want to go grab all the accounting policies for a filing. Or any set of anything really. Try to find those "chunks" (sets) of information in any one SEC XBRL filing, or even more useful in any two SEC XBRL filings so you can actually do a comparison. It does not appear to be possible at the network level. [Table]s are not comparable either. Comparisons of individual concepts is useful, but too detailed and the concepts are best understood within some context (i.e. some set of information, like a balance sheet).
Some people say that you can throw software at the issues shown above and let computers sort all this out. That can happen to a degree. For example, clearly you can write a program to go find "Assets" and "LiabilitiesAndEquity" and there is a good chance you found the balance sheet. But maybe not, you may have found a segment breakdown. Some things are possible using brute force and software, but one will still have to define the sets somehow.
Particularly for less sophistocated users trying to glean information from these filings, it would be better to use networks, hypercubes, and dimensions to define information rather than fight with them. The first three XBRL instances show the hard way, the last three show an easier way.
Which approach do you feel is best?