Over the years in trying to build XBRL taxonomies and testing XBRL I have bounced around between having about 30 different "patterns" that business reports followed to a point where I believed that I have distilled those 30 down into 3 unique metapatterns.
Well, I have settled on 9 metapatterns. I have documented those metapatterns, provided examples for each one, reconciled them to the terms used by the US GAAP/SEC XBRL financial reporting logical model, and here they are:
- Hierarchy: A hierarchy information model denotes a hierarchy of concepts with no numeric relations. If no numeric relations exist, then the information model of the component is a hierarchy. Basically, anything can be modelled as a hierarchy. It is the addition of additional relations, typically computations, which turns a hierarchy into some other metapattern.
- Roll Up: A roll up information model computes a total from a set of other concepts. This information model is commonly referred to a "roll up", or the equation A + B = C. All concepts involved in this information model have the same set of characteristics and all must be numeric.
- Roll Forward: A roll forward information model reconciles the balance of a concept between two points in time. This information model is commonly referred to a "roll forward" or "movement analysis" or the equation: beginning balance + changes = ending balance. In this equation period [Axis] is as of two different points in time and the changes occur during the period between those two points in time.
- Compound Fact: A compound fact information model is characterized by the fact that some set of other concepts or some other information model exists for a set of characteristics expressed by one or more [Axis]. For example, the salary information for the directors of an entity is a compound fact. The salary information is made up of salary, bonuses, director fees which roll up into total salary and this set of compound facts can be expressed for any number of directors, the director being the characteristic or axis of the compound fact.
- Adjustment: An adjustment information model reconciles an originally stated balance to a restated balance, the adjustment being the total change, between two different report dates. An adjustment is similar to a roll forward in that it is a reconciliation, however rather than the period [Axis] changing; it is the Report Date [Axis] which changes: originally reported balance + adjustment = restated balance.
- Variance: A variance information model reconciles some reporting scenario with another reporting scenario, the variance between reporting scenarios being the variance or changes. For example, a sales analysis which reconciles the concept sales for the reporting scenarios of actual and budgeted is a variance. The equation is: actual - budget = variance.
- Complex Computation: A complex computation information model can be thought of as a hierarchy plus a set of commutations between different concepts within that hierarchy which are challenging to model as the parent/child relations of a graph. The type of computations can vary significantly, thus the challenging in modelling. For example, the computation of earnings per share is a complex computation.
- Text Block: A text block information model is an information model which contains, by definition, only one concept and that concept expresses what amounts to a narrative or prose as escaped HTML within that one concept. For example, the narrative associated with a set of accounting policies expressed as a list or a table presentation format is a text block. As there is only one concept, there can be no relations within the information model.
- Grid: A grid information model is a pseudo metapattern which uses the presentation characteristics of the columns and rows of a table to model information. Because the grid models presentation information and not business semantics, it cannot be considered a metapattern. However, the grid is included in this list because the US GAAP Taxonomy uses a grid information model to model the statement of changes in equity.
These 9 metapatterns are hard to dispute. Each is unique and each models some business oriented characteristic of a business report. There may be more yet undiscovered metapatterns. Fine, they can be added.
But these metapatterns are basic, fundamental building blocks which every business user should know. If you can understand the differences between these metapatterns, that information will take you a long way.