Over the past several weeks I have reorganized approximately 57 networks in the US GAAP Taxonomy for a number of purposes. I want to explain what I have discovered.
As a reference point, let me point you to the a rendering of the official modeling of the US GAAP Taxonomy which you can get to here. This is a collection of the networks from most of the commercial and industrial companies entry point. I left a few out.
You can get to my reorganized version of the US GAAP Taxonomy here. The reorganized version is a select number of networks from the commercial and industrial companies entry point, about 57 networks. If you go through the taxonomy you will see:
- Everything is within an explicit table. Everything is modeled within an explicit [Table]. This does a number of things. First, in order to get the pieces to integrate correctly, you need to do that anyway. More on this in later blog posts. Second, it allows you to "eat the elephant in bite sized chunks." Basically, to me this seems far more manageable. Third, it give you "a list" of the things in the taxonomy. In fact, here is that list of [Table]s.
- Consistent, explicit information models. Everything within a [Table]'s set of [Line Items] is is modeled consistently and explicitly. In the official version, the [Roll Forward] is well identified. But, the use of [Abstract] is overloaded and could mean three things: [Hierarchy] to indicate a hierarchy with no numeric relations, [Roll Up] to indicate XBRL calculations, and [Abstract] to indicate that is simply upper level organization of the taxonomy. All the information models in the reorganized version are explicitly identified and consistently modeled.
Here are the benefits that I have observed;
- "The list". You have a list of things which you can easily pull from the taxonomy. Don't get confused here. Could you easily pull all the [Table]s from the US GAAP taxonomy in its original form? Sure you could. The point is you could not pull out everything else in a meaningful organization.
- Reorganize "the list". This list is fine, but this list is better. And this RSS feed is even better. I reorganized my own list easily, because all I had to do is put the tables inside some sort of organization. Besides, I have some list of things I can point to.
- Easier to read the taxonomy. The taxonomy is way, way easier to read and comprehend.
- Eat the elephant in bite size chunks. Because you have identifiable pieces, it is easier to manage the smaller pieces individually.
- Fit into one logical model. Because the taxonomy is consistent, It all fits into one logical model. Rather than having to deal with XBRL syntax, users can deal with logical model semantics. More on this later.
- Easy to see semantic flaws. It is easy to see some pretty easy to recognize semantic flaws. See this blog post and this document for more information. For example, why would balance sheet line items and things which could be balance sheet line items have different [Axis]? From a business semantics point of view this makes no sense.
Still to do
There is still a lot to do really. This was my first pass. I did not remodel everything, I only moved everything into [Table]s and made the [Line Items] consistent. It is my view that many of the [Table]s are still to big to be optimal for SEC XBRL filing creation or for analysis of the information, they could stand to be smaller. From what I am seeing there should be more like 750 [Table]s than the 244 that I have.
Also, I need to create the XBRL Formulas which express the financial integrity (i.e. business rules) within each [Table] and between the [Table]s.
Also, I have to totally remodel the Statement of Changes in Equity [Table]. That simply will not work. Not that hard, it is not a [Grid], it is simply a [Roll Forward] like all the other [Roll Forward]s.
And I need to synchronize my reference implementation to the reorganized taxonomy. I created this to prove what I thought would work would, in fact, work. I have to circle back on a few things.