BLOG: Digital Financial Reporting
This is a blog for information relating to digital financial reporting. This blog is basically my "lab notebook" for experimenting and learning about XBRL-based digital financial reporting. This is my brain storming platform. This is where I think out loud (i.e. publicly) about digital financial reporting. This information is for innovators and early adopters who are ushering in a new era of accounting, reporting, auditing, and analysis in a digital environment.
Much of the information contained in this blog is synthasized, summarized, condensed, better organized and articulated in my book XBRL for Dummies and in the chapters of Intelligent XBRL-based Digital Financial Reporting. If you have any questions, feel free to contact me.
Entries from May 1, 2019 - May 31, 2019
Achieving High Expressiveness on the Ontology Spectrum with XBRL
I have mentioned the ontology spectrum. I have mentioned that "AI is taxonomies and ontologies coming to life", meaning that artificial intelligence will only work to the extent that you have high-quality and extensive set of metadata. For example, this framework.
But, can you provide this high-quality and extensive set of metadata using XBRL? If so, how the heck do you do that? Well, here is the answer to this question: Yes you can and here is how you do it.
First, have a look a this graphic. In particular, look at the gray boxes at the bottom. I will show you how to achieve each of those items on the ontology spectrum using XBRL by providing an existing example that works. (I am going to take as many examples as possible from my IPSAS prototype.)
- Define terms: Terms are defined in XBRL using XML Schema. This is refered to as an XBRL taxonomy schema. Here is an example XBRL taxonomy schema. In addition to defining terms you can supplement the definitions with an XLink linkbase:
- Labels (any number of labels, identifiable with specific roles, in any language)
- Documentation (this is just a label linkbase with the label having a specific role, http://www.xbrl.org/2003/role/documentation)
- Commentary (again, a label linkbase with the role http://www.xbrl.org/2003/role/commentary)
- References to authitative and other literature
- Define narrower/broader term relations: These relations are defined using XBRL definition relations using the "general-special" arcrole. Or, you can use the "wider-narrower" arcrole defined by the XBRL International Link Role Registry. You can also define two terms as being equivalent using "essence-alias". But generally I avoid these, see "Defining formal relations".
- Define informal relations: One type of informal relations is XBRL presentation relations. They are informal in that they use exclusively the "parent-child" arcrole to define relations. Here is an example. The intent of the XBRL presentation relations is to define the structural relations that are used to generate renderings of information. Because many business professionals tend to be overly presentation focused, they tend to imply informal information to the XBRL presentation relations. This approach should be avoided in favor of "Define formal relations".
- Define formal relations: Formal relations are defined using the XBRL definition linkbase using specificly defined arcroles, preferably from the XBRL International Link Role Registry. Alternatively, you can define your own arcroles, here is an example of some arcroles I created. An excellent example of using formally defined relations are XBRL Dimensions relations. Here is an example. Another example of formal relations are my disclosure mechanics rules. This includes class-subclass (a.k.a. is-a). Here is an example of class relations.
- Define formal instance: Formal instances are defined by XBRL. Here is an example. Alternatively, an instance can be formally defined essentially within an XHTML document using Inline XBRL. Here is an Inline XBRL example of a formal instance (best viewed using Google Chrome).
- Define properties and dimensions: XBRL defines core properties by extending XML Schema. Dimensions are defined using XBRL Dimensions. Additional properties can be defined using an XML Schema. Here is an example of defining properties. Here is how you express that a concept has a property. Note that you can add labels, documentation, comentary, and references to properties that are defined to further explain the properties.
- Define value restrictions: Value restrictions are defined using XML Schema Part 2: Data Types. Data Types are assigned to concepts within an XBRL Taxonomy Schema. See the type attribute in this example. Cardinality can be defined in XBRL using tuples. Tuples are generally not used for financial reporting. Another approach to defining cardinality is using XBRL Dimensions. (I may not be understanding cardinality 100% here.) Note that units can be defined and used from the XBRL International Units Registry or you can define your own units as necessary.
- Define disjointedness, transitive and other relations: Disjointedness, transitive, has-a, part-of (meronymy) (a.k.a mereology) and other relations can be defined using arcroles. Here is an example of defining a disjointed relation. Here are reporting checklist rules which use these ideas. Disclosure mechanics rules also use these ideas and provide an example. Also note that the notions of "disjointedness" and "transitive" and "inverse" can be imbedded in the defintion of specific arcroles so that basically the defnitions are composite rather than using each notion separately.
- Define mathematical and logical rules: Simple mathematical roll up relations can be defined using XBRL Calculation relations. Here is an example. More complex mathematical and other logical relations can be defined using XBRL Formula or XBRL definition relations. Here is an example of XBRL Formula mathematical relations. Here are additional logical rules. The structural relations defined by XBRL Dimensions also seem to be logical rules.
If you cannot express what you need to express using the basic parts of XBRL 2.1, XBRL Dimensions, and XBRL Formula; there is one additional option. That option is XBRL Generic Links. With XBRL Generic Links you can define pretty much anything you want. Generic Links, like XBRL itself, uses XLink to define functionality.
Also, I would point out that XBRL complies with ISO Standards since XBRL is based on the W3C XML 1.0 technical syntax and XML is SGML: (ISO 8879:1986 Information processing -- Text and office systems -- Standard Generalized Markup Language (SGML)
Further, XBRL is complies with W3C standards because XBRL uses the W3C standards: XML, XML Schema, XLink, XPath, XPointer, XML Base, and XML Names.




Digital Maturity
In their book The Technology Fallacy, authors Gerald C. Kane, Anh Nguyen Phillips, Jonathan R. Copulsky, and Garth R. Andrus dispel the myth that technology is behind digital transformation and shows how people are the real key. The authors define digital maturity:
Digital maturity is primarily about people and the realization that effective digital transformation involves changes to organizational dynamics and how work gets done.
Everyone is creating their buzz words so you know things are starting to get serious. PWC packages these changes as 4IR (i.e. the fourth industrial revolution). KPMG calls it Industry 4.0. EY is onboard with the Fourth Industrial Revolution. Deloitte calls it Industry 4.0 also. EY points out four things you need to know about the fourth industrial revolution.
As I have pointed out in the past, XBRL has a role in the fourth industrial revolution. That role is getting clearer and clearer. On slide 12 of this presentation, Carol Smith points out that "AI is taxonomies and ontologies coming to life (NOT like humans learn)". The ontology spectrum explains what is necessary to create expressive taxonomies/ontologies.
If you still don't understand this stuff, if you want to increase your digital maturity; consider reading the information I have collected over the past 10 years and summarized in the document Computer Empathy.
Here is my ontology. A financial report is not one big thing, it is made up of many pieces that are individually identifiable. Many pieces, highly expressive ontology, software that understands the pieces and the ontology, Lean Six Sigma process measurement and control philosophies and techiques. Think about that.




Machine Learning Problem
This blog post summarizes information about a machine learning problem that a group of us is solving. If you want to find out more or participate, please contact me.
PROBLEM: The problem is that XBRL-based financial reports submitted to the SEC using US GAAP or IFRS do not have explicit identifiers in them to allow you to easily extract information from the report. For example, you cannot simply say "give me the balance sheet" or "give me the reconciliation of income taxes between expected statutory rates and actual rates." You have to provided more detailed rules to overcome the missing unique identifiers.
SOLUTION: The solution is to use prototype theory to identify the pieces that make up the specific disclosure within an XBRL-based financial report and then use that information to identify each specific disclosure so you can extract that information. To do this you need:
- Disclosure names: A machine readable list of financial disclosures (which I happen to have for US GAAP).
- Identification rules: The rules that are used to describe the components of a disclosure (which I also happen to have for about 70 disclosures; here is an example for one disclosure.)
- Reports: A list of reports that you want to figure out what each disclosure is (here is a starter set of 10; this will grow to the complete set of 5,734)
- Software to run process: A supervised AI that does machine learning and uses clustering to figure out the similarities or clusters within reports, then a human uses that information to assign the correct name from the list of disclosures (i.e. the first bullet point above).
TECHNIQUE: The objective is to get every disclosure and the rules to identify that disclosure in XBRL-based financial reports.
- Starter list of companies: Here is a list of US GAAP XBRL-based financial rerports, all 10-Ks in machine readable RSS. We will add companies to that list as the process gets dialed in.
- Start with one rule for a common disclosure: Start with this first rule which 100% of companies have this "document information" disclosure.
- Read XBRL presentation relations: If you iterate through each of the reports in the list (#1) and change the name from "*.xml" to *_pre.xml", so the Microsoft 10-K XBRL instance, you get the company XBRL taxonomy XBRL presentation relations that supports that Microsoft 10-K, this will give you a sense for the task.
- Read XBRL calculation relations: Changing the XBRL instance from "*.xml" to "*_cal.xml" will give you the XBRL calculation relations. Those have roll up information that is very helpful in identifying disclosures that are roll ups.
- Use information in rules to find disclosure: Use a disclosure rule to find the network that contains the disclosure that matches that disclosure rule. Mark the network indicating that what is represented by the network (i.e. which disclosure). Once you discover what a network represents, you don't ever need to read that network again.
- Repeat: Repeat this process for every report and every disclosure. Ultimately, we will add more reports and more disclosures.
- Back into new rules using machine learning (likely clustering): Steps 1 through 6 are just a mechanical process, but it helps you truly understand the task. Once all the disclosures for which there are rules have been identified (this is is the result); the task is to get the machine learning AI to use this information to find smilar pattrens using clustering.
- Name and tweak machine learning results: The AI will likely be able to find disclosure patterns, but it will not be able to give that pattern a name. Humans will do that. The named disclosure gets added to the list along with the rules to discover the disclosure.
So that is the initial process. Once this process is understood, we will build on that process. The networks that contain the presentation relations will work to a degree and is a good starting point; but using the network level will fall apart. Why? Because sometimes networks contain multiple disclosures. The solution? Use the "fact set" level.
Eventually, we will want to tune this further by separating the reporting entities into different lists. For example, banks have different disclosures that software companies. Insurance companies are unique from banks and software companies. Understanding these uniquenesses helps one understand how this information will be used.
Once we get all this working for US GAAP reports; we will repeat this process for IFRS reports.




AGA: Building Momentum: Preparing for XBRL in Government
The AGA (Association of Government Accountants), in their spring issue of Journal of Government Financial Management, published the article Building Momentum: Preparing for XBRL in Governmentwritten by Jacqueline Reck, Ph.D., CPA; Shannon N. Sohl, Ph.D., CPA; and Tammy R. Waymire, Ph.D., CPA.
The article is very accurate and realistic; it is worth reading.



