A digital financial report is a finite set of structural "things" or "entities" and relations between those things/entities. To be clear let me say that I am talking about the mechanical aspects of a digital financial report. These mechanical aspects are distinct from the subjective or judgmental aspects of a financial report. These subjective/judgmental aspects have to do with which things or entities exist in the report, some aspects of the values of those things/entities, how the values are measured, and so forth.
Global standard languages, such as XBRL, describe these things/entities. XBRL is not the only global standard which can be used. OWL 2 DL is also a global standard which can describe these things/entities and relations between them. If you want to get a feel for the issues involved with describing these things/entities and relations between them, see this excellent document.
There are many global standard languages for describing such things/entities and the relations between them. There are two things that all of these global standards have: some syntax for expressing such information and some set of semantics which provides the expressive power of the global standard language.
First-order logic can be used to express a theory which fully and categorically describes structures of a finite domain (problem domain). This is achieved by specifying the things of the problem domain and the relations between those things. A theory is simply a system of ideas which is intended to explain something. For example, Financial Report Semantics and Dynamics Theory is a theory that explains how a financial report works. A theory is simply a communications tool.
No first-order theory has the strength to describe an infinite domain. Essentially what this means is that the things and the relations between things which make up a problem domain must have distinct boundaries.
This is not to say that such a system cannot be flexible. For example, a form is not flexible. A financial report is not a form. This is not to say, however, that a financial report cannot be finite.
While a form is finite but inflexible, a financial report is finite and flexible. The difference is the notion of a "slot" or "opening".
A slot is simply an allotted place in an arrangement where something can be logically and sensibly placed.
For example, suppose you wanted to add something to a roll up of property, plant and equipment as shown below:
- Land 1000
- Buildings 2000
- Furniture 500
- Total PPE 3500
You cannot add a second total to a roll up as a roll up only has one total. What makes sense is to add another line item to the total of the roll up, somewhere in the list of existing line items. One slot is adding a line item between "Buildings" and "Furniture". Another slot is adding a line item before the first item "Land" or after the last item "Furniture".
Further, whatyou add to the list is also constrained. For example, what you add needs to be a number as a roll up involves showing how some list of numbers roll up. You would not add text. And it cannot be just any number, it needs to be an "as of" type number (as contrast to a "for the period" number from, say, the income statement). Why? Because all of the other numbers in the list are "as of" some balance sheet date, not "for the period" of some income statement or cash flow statement period.
A financial report is finite in the sense that it is made up of exactly the following structural pieces or things (which can be referred to as classes) which have different types of slots:
- Economic/accounting entity which creates report
- Report which contain a set of components
- Component which contains or group sets of facts
- Characteristics which describe and distinguish facts contained within a component
- Blocks which are parts of a component (sub-groups of facts, for example, the disclosure Funding Status of Defined Benefit Plans is made up of two roll forwards, a roll up, and a hierarchy each of which is a block of the component)
- Relations pattern which can be either a "whole-part" type relation, an "is-a" type relation, a concept arrangement pattern, or a business rule which describes relations
- Concept characteristic-type relations which can be a "roll up", a "roll forward", an "adjustment", or a "hierarchy"
- Properties of an economic/accounting entity, report, component, block, fact, characteristic, or relation pattern
The structural pieces or things/entities of a financial report can be grouped into classes. No new classes can be added. Classes may never be redefined. However, subclasses can be added and identified as being associated with one of those existing classes of things/entities. But added subclasses can only be added as specified by the system, for example XBRL-based financial filings. For example,
- Adding new economic/accounting entities: An economic/accounting or reporting entity is created by creating a new instance of identifier, the CIK number of a public company.
- Adding new report: A new report is created by creating a new report instance.
- Adding a new characteristic: A new characteristic can be added, if a system allows, but the characteristic MUST be distinguished as being either a "whole-part" or "is-a" type of relation or some existing subclass of existing relations (which must be one of those two).
- Adding new concept characteristic: A new concept can be added to a balance sheet such as "Ultra-tangible asset", however it MUST NOT break the rules of a "roll up" because a balance sheet is a roll up. When the new concept is added, it MUST be identified as a subclass of something that exists on a balance sheet which can contain ONLY assets, liabilities, or equity.
- Adding new disclosure (component or block): A disclosure is in essence a set of facts which must be disclosed. A set of facts is represented as a component. To add a new disclosure, a reporting entity simply creates a new component and/or block. The added component MUST be one of the existing relations patterns (i.e. no new patterns can be added). That newly created component is identified as a subclass of an existing disclosure if that is appropriate, or creates a totally new root disclosure class by creating a subclass of the class "component". A reporting scheme may, or may not allow the addition of completely new disclosures; rather some schemes might require a disclosure to be a subclass of some existing disclosure for one reason or another.
- Adding new properties: New properties MUST NOT be added, XBRL-based financial filings to the SEC does not allow the addition of new properties, there is no "slot" available.
Different systems can have different rules for allowing new classes, subclasses, relations between classes, or properties. System boundaries can be extended by adding new relation patterns. New relation patterns must be consciously and formally added in a controlled and coordinated manner only by system implementers before they are allowed to be used. System boundaries can be extended by adding new classes or properties. New classes and new properties must be consciously and formally added in a controlled and coordinated manner only.
As an example, consider these report frames. Every public company can be grouped into one of 95 report frames. Are some of those report frames illegal? If so, take the report frame off the list. Does some public company have a report frame which is not on the list? Then add the report frame and instead of having 95, there are 96 report frames.
Every other class works precisely the same way. And so, the system is finite, the system has boundaries, but the system is flexible but only where specific flexiblity is exposed.
That is a slot.