A good way to understand distributed extensibility is to contrast it to the more common term "extensibility". People throw that term "extensibility" around. But what does it really mean?
How do you really know if something is "extensible" or not? How do you know if the extensibility actually works? Extensibility of what? All good questions.
Consider this basic definition of extensibility as a starting point:
- Extensibility: You can add "stuff".
OK, you can add "stuff" what stuff? Well, if you are looking at XBRL, you might want to add one of the following: a Network, a Table (hypercube), an Axis (dimension), a Member, a Concept, or an Abstract. You might also add a new relation between, say, one Concept and another Concept such as a roll up relation. Or you might want to represent the parts of a whole. So, extensibility for XBRL is that you can add those sorts of things that exist within XBRL; "stuff" and "relations between stuff".
People sometimes use the terms "open taxonomy" and "closed taxonomy". I have used those terms myself. But those terms are not appropriate.
I corrected myself, realizing that taxonomies can have openings. The way that I see this now is that taxonomies MUST ALWAYS be "closed" or rather have conscious, known, understandable boundaries. Or more precisely, a taxonomy provides specific, conscious "openings" where those reporting against the taxonomy can consciously articulate specific information and therefore extend the taxonomy in conscious, known, specific ways ONLY.
US GAAP-based financial reporting is open. While US GAAP does prescribe many specific disclosures; a reporting entity can add additional disclosures as it sees fit. An entity must provide the minimum, but they can supplement what they disclosue with additional information. Also, some relations can be moved around to a degree. But, US GAAP based financial reporting is not a "form" that you fill in and it is also not "random".
So, when you employ XBRL-based digital financial reporting and you want to "extend" what might be reported, how you provide that extended information is not random or arbitrary. Recall the definitions of standard and arbitrary:
- Standard: used or accepted as normal or average; something established by authority, custom, or general consent as a model or example
- Arbitrary: based on random choice or personal whim, rather than any reason or system; depending on individual discretion (as of a judge) and not fixed by law
Consider that there is one SEC and that there are about 8,000 public companies and each of those public companies can "extend" the US GAAP XBRL Taxonomy. How is the extension of the US GAAP XBRL Taxonomy coordinated by the SEC to each of the 8,000 reporting entities? Well, that is done through the use of standards, the XBRL standard (technical standard) and US GAAP (domain standard) and other forms of cooperation and coordination.
I would throw out these two different types of "extensibility" (this is influenced by but different from what is described in this video which I pointed out in an earlier blog post):
- Distributed extensibility: Extensibility that is not explicitly controlled and coordinated by one organization but rather using standard-based mechanisms and rules. For example, US GAAP-based financial reporting to the SEC is a type of distributed extensibility because while the entire system is controlled by some standard set of rules, each reporting entity has control and can extend the system; but they must stay within a set of rules which coordinates the extensibility.
- Local extensibility: Extensibility that is "inside the walls" of one organization and all extensibility is explicitly coordinated and controlled within and by one organization. For example, a chart of accounts of an organization is an example of local extensibility.
Local extensibility is far, far easier to implement because there is less coordination necessary. And generally local extensibility was all that was needed until the internet came along and interconnected everyone. The interconnectedness blurs system boundaries. What does "internal" mean for say the SEC EDGAR system. Is only the SEC "internal" or are each of the entities that report to the SEC "internal" to the system also?
Coordinating and controlling a system when users of the system are allowed to change the system is very powerful functionality. Not change the system in random or arbitrary ways. But rather change the system in standard and agreed upon ways.
These "agreed upon ways" are the rules of system extensibility. They explain exactly how the system can be extended. This agreement is achieved by using appropriate rules. I will repeat my mantra for anyone who might have missed it:
The only way a meaningful exchange of information can occur is the prior existence of agreed upon technical syntax rules, domain semantics rules, and workflow/process rules.
It is the rules which provide to control and coordination which makes the distributed extensibility work effectively. It is the rules which turn the guessing game into a reliable, predictable, repeatable and therefore useful distributed, yet coordinated, system. It is the rules that form the agreement in a distributed environment. It is the rules which are a cooperation tool.
As I said in my book XBRL for Dummies, "Agreement is an important element that acts as the invisible glue to make XBRL really work." Agreement does all sorts of powerful things.
Business professionals are taught a basic idea in business school, "If you cannot measure it, you cannot control it." H. James Harrington puts it this way:
Measurement is the first step that leads to control and eventually to improvement. If you can’t measure something, you can’t understand it. If you can’t understand it, you can’t control it. If you can’t control it, you can’t improve it.
My disclosure analysis of the Fortune 100 is an example of measurement. Control is trying to get all the cells in the matrix GREEN which means that all parties agree.
The XBRL-based public company financial filings in the SEC's EDGAR system is an example of distributed extensibility almost done right. Based on my measurements, the system appears to be about 90% correct. With just a little more coordination and cooperation in the area of defining classes and relations between classes, we will dial in the remaining 10%.
That, in my view, is an example of the utility of XBRL toward achieving distributed extensibility.