This blog post summarizes the process of validating the mechanical rules of a disclosure within an XBRL-based financial report. To understand that process, the first thing that you need to understand is the notion of what I call a block.
A block is a unit or fragment of a digital financial report that I came up with and gave a name so that I can refer to that part of a report. In order to understand the mechanical structure of a disclosure and verify that the mechanical structure is correct, you have to understand the notion of a block. The document Understanding Blocks, Slots, Templates and Exemplars explains this in detail.
I will walk you through an example of a block, explain the mechanical structure of a block, explain how to verify that mechanical structure, and explain how to identify and verify the disclosure that the block is representing within a financial report. Finally, I will show that each and every part of an XBRL-based digital financial report can be verified and identified using this same mechanical approach.
So here is a block:
The block above came from this report that was submitted to the SEC. What do you know about the block above? The block above is a Level 4 Detailed disclosure from a public company report. You can see that the block concept arrangement pattern is a ROLL UP because it has a list of items and that list of items "rolls up" to a total. You might not realize that the SEC sort category is "Disclosure". You would know that you would expect that XBRL calculation relations would exist to represent the mathematical computation of the roll up. You would expect that the roll up actually does roll up to the correct total (i.e. the detailed items add up to the total item).
Here is another block. This block below might look the same as the block above, but they are completely different blocks. The block below is a Level 3 Disclosure level Text Block. The concept arrangement pattern is Text Block. This block likewise has the SEC sort categoryof "Disclosure". There are no XBRL calculation relations because this block is a Text Block, not a ROLL UP like the block above.
If you go to the SEC Interactive Data Viewer and look at the report, you will recognize that there is yet another block which has this same information. This third block is the Level 1 Note level Text Blockand is represented by the concept "us-gaap:InventoryDisclosureTextBlock". That block looks exactly the same as the block above, but note that the block above uses the concept "us-gaap:ScheduleOfInventoryCurrentTableTextBlock" which is a Level 3 text block whereas the concept "us-gaap:InventoryDisclosureTextBlock" is a Level 1 text block.
Now, ALL THREE OF THESE BLOCKS REPRESENT THE SAME INFORMATION!!! The Level 1 Note level text block is the presentation of the information within a note. But the Level 3 text block and the Level 4 detail both represent the same disclosure.
Here is that disclosure. I gave the disclosure a name, I called it InventoryNetRollUp. There are lots of other economic entities that report that same disclosure, here is a partial list. I call other examples of the same disclosure by the name Exemplars.
If you look at the blocks of the economic entity above and the Exemplars, you see some patterns. For example, every one of these uses the same text block concept "us-gaap:ScheduleOfInventoryCurrentTableTextBlock" and the same total concept "us-gaap:InventoryNet". For all of these disclosures, the concept arrangement pattern is that of a ROLL UP. You can see that information represented in human readable terms here:
It is harder for humans to read, but you can see that same information here in machine-readable XBRL. Or, if you go back to this page and look toward the bottom under the heading "Business Rules for Disclosure" you can see another human-readable representation of rules that each and every disclosure of "Inventory, Net (Current), Roll Up" follow.
Now, the dislosure "Inventory, Net (Current), Roll Up" is a DIFFERENT DISCLOSURE from "Inventory, Net (NONCURRENT), Roll Up". And there are lots of other inventory related disclosures. And there are other disclosures related to other topics.
In fact, here is a lost of many of those other disclosures. I have 959 different disclosures. Each of these disclosures works in the exact same mechanical way. Now, I am NOT SAYING that I have 100% of all the disclsoures that public companies report. And I am NOT SAYING that I have 100% of this metadata perfected. I am saying is that I have a lot of metadata and this seems to work over, and over, and over in SEC filing after SEC filing after SEC filing.
Besides, if you think about it; how many roll ups of inventory would you expect to actually roll up, have the required XBRL calculation relations, use the concept "us-gaap:InventoryNet", and use the same Level 3 Text Block to represent the required Level 3 text block disclosure that is required and perhaps even the Level 1 Text block that is required for the note? How about 100%!
And why would you expect some disclosures to not have these same mechanics? Logically, all of this makes sense. And so what about the public companies that do not follow these disclosure mechanics? Well, either: (a) I have my disclosure rules wrong and they need to be fixed or (b) the filers are creating their filings inconsistently and they need to be fixed.
But wait, there is more! If a public company has a inventory disclosure; what do you think the probability is that they have the line item inventory on their balance sheet? And if the public company has the inventory disclosure and the line item inventory on their balance sheet; what is the probability that they have an inventory policy reported? This is the sort of thing I am talking about when I say Automating Accounting and Reporting Checklists. Accountants check all these things today, but they tend to do it manually using memory joggers rather than machine-readable business rules.
You can articulate these rules in a machine-readable form. Here you go. Each of those rules are articulated using the global standard XBRL format. Here are proprietary relations that I createdto represent this knowledge in machine-readable form. Why are they proprietary? Because I have not been able to convince XBRL International to put the relations into the XBRL International Link Role Registry(LRR). But I am working on it.
And that is an overview of the mechanical rules of disclosures. Stay tuned for more information should you be interested.