BLOG: Digital Financial Reporting
This is a blog for information relating to digital financial reporting. It is for innovators and early adopters who are ushering in a new era of digital financial reporting.
Much of the information contained in this blog is summarized, condensed, better organized and articulated in my book XBRL for Dummies and in the three documents on this digital financial reporting page.
The rules are freely available and can be accessed on the XBRL US web site or through certain XBRL service providers. When the rules identify a potential error, they provide detailed information on the potential error with guidance on how to correct it. In addition, an explanation of each rule’s function is available on the XBRL US website in a downloadable PDF file. Software providers can have their implementation of the rules approved by the XBRL US Center for Data Quality.
If you hare having trouble understanding what can be achieved using expert systems, go test drive a Tesla Model X. Try the feature where the car parallel parks itself. Try the feature where the car backs into a parking spot. Try the feature where the car "drives itself", literally; you take your hands off the wheel and the vehicle stays in its lane, does not get too close to cars in front, etc.
Some people make the mistake of under estimating what a technology can offer. Others make the mistake of setting expectations incorrectly, thinking such things as "if you cannot have a fully automated car for 100% of circumstances then the technology is a failure". Both under-estimating and over-estimating the capabilities of a technology is a mistake. The media publishing misleading headlines like "Tesla's Cars Drive Themselves, Kinda" which completely miss, push some sort of agenda that they have and mislead consumers in the process are not really that helpful. But this type of misinformation is unfortunately not uncommon which puts people trying to understand where the technology really is can be challenging.
In this blog post I want to spell out the general benefits of an expert system without over-stating or under-stating those benefits. The benefits from the use of expert systems include:
- Automation: elimination of routine, boring, repetitive, mundane, mechanical tasks that can be automate
- Consistency: computers are good at performing repetitive, mechanical tasks whereas humans are not; computers do not make mistakes and are good at repeating exactly the same thing each time
- Diligence and tenacity: computers excel at paying attention to detail; they never get bored or overwhelmed and they are always available and will keep doing their job until the task is complete with the same attention to detail
- Reduced down-time: computer based expert systems are tireless and do not get distracted
- Availability: such computer based expert systems are always available simultaneously in multiple places at one time; you get quick response times and can replace absent or scarce experts
- Training: the best practices of the best practitioners can be available to those that are new to and learning about a domain of knowledge
- Longevity and persistence: computer based expert systems do not change jobs or retire so knowledge gathered by an organization can remain within that organization
- Productivity: computer based expert systems are cheaper that hiring experts and costs can be reduced a the same time that quality increases resulting in increased productivity
- Multiple opinions: Systems can integrate the view of multiple experts within a system and choose between the preferred view of multiple expert opinions in the same system
- Objectivity: computers apply the same inductive and deductive logic consistently; emotion and personal preferences can be eliminated where they should be eliminated
Nothing earth-shattering there, or at least so it might seem. But really think about it. What would the benefit be to professional accountants if productivity could be improved and the time it took for the month-end closing process could be reduced? What would it mean if you had an expert available to you to answer, say 50% of your questions related to the best approach to reporting some specific disclosure? How would training be different if expert systems existed?
There could be at least two different views as to whether expert systems are "good" or "bad". If all you know how to do is routine, mechanical, boring, repetitive tasks; expert systems might be considered a threat to your job.
But, if you are a knowledgeable expert which finds that they have to waste their time doing less productive routine, boring, repetitive tasks and expert systems would free you to perform work that has more value-add; then you might welcome expert systems.
How exactly will all this turn out? Hard to say. Wired speculates in their article, Will Machines Replace Us or Work With Us? Personally, I think machines will be useful teammates. As this article points out, computers cannot replicate: intuition, creativity, innovation, compassion, imagination, and so on.
One thing is for certain. If you don't understand what the true capabilities of computer are, you can mis-judge what aspects of your job computers might replace. That could put you at risk. Do what is necessary to remain relevant. Stay tuned and stay ahead of the game.
I'm still trying to figure out the best processing approach for the fundamental accounting concept relations and other business rules to best take advantage of the power XBRL has to express business rules. One part of that question is whether a forward chaining or backward chaining approach is best.
The blog post Forward and Backward Chaining: Part 2, by Charles Forgy, PhD, provided the best answer to that question. In a nutshell, here is Dr. Forgy's answer: use both if possible:
In conclusion, forward and backward chaining systems both use subgoals to control the operation of a rule base. Pure forward chaining systems are more powerful than pure backward chaining systems, but pure forward chaining systems require the developer to write all the subgoaling rules. Modern forward chaining systems such as the RulesPower system integrate automatic backward chaining with forward chaining. These systems combine the best features of both forward and backward chaining.
Dr. Forgy distills the difference between forward and backward chaining down to the following two salient points:
- Rule firing:
- Forward-chaining systems fire rules whenever the rules’ If parts are satisfied.
- Backward-chaining systems attempt to fire rules only when those rules can potentially satisfy a goal.
- Subgoal creation:
- Backward-chaining systems automatically create new subgoals when more information is needed to determine whether a given rule is satisfied.
- Forward-chaining systems do not automatically create subgoals.
Dr. Forgy explains why you would want to use forward-chaining when backward-chaining automatically creates new subgoals but forward-chaining does not:
You might ask why you would want to use a forward chaining system if you have to write rules to manage subgoals. After all, backward chaining systems automatically manage the subgoals. There answer is very simple: Backward chaining systems are more limited than forward chaining systems. There are many kinds of tasks that can be handled easily with a forward chaining system that are either difficult or impossible with a backward chaining system. Backward chaining systems are good for diagnostic and classification tasks, but they are not good for planning, design, process monitoring, and quite a few other tasks. Forward chaining systems can handle all these tasks.
So there seems to be a tradeoff. You can use forward-chaining and satisfy all your needs, but the price you pay is having to create subgoals.
Alternatively, you could use a system that supports forward-chaining which automatically swithes to a backward-chaining mode when needed.
If you want to understand more details about forward an backward chaining, Dr. Forgy first part in this series, Forward and Backward Chaining Part 1, is worth reading. This Wikipedia article on business rules engine types is also useful.
But man, why can't this be easy! Note this statement in the last paragraph on the Wikipedia article about business rule engine types:
A fourth class of rules engine might be called a deterministic engine. These rules engines may forgo both forward chaining and backward chaining, and instead utilize domain-specific language approaches to better describe policy. This approach is often easier to implement and maintain, and provides performance advantages over forward or backward chaining systems.
"Easier to implement and maintain", "performance advantage". Huh. Interesting.
This blog post walks you through using the business use cases by providing a walk through of one of the business use cases.
First, an overview of the business use cases. The business use cases is a set of 33 examples of business information represented using XBRL. Here is a summary of the helpful view of this information:
- Basic list of use cases
- Another basic list in a little different format
- Visual summary of use cases
- Machine-readable list of business use cases (good for running tests)
For EACH business use case you can get the following: (I am using the last business use case, nonfinancial information, as an example)
- Index page for the business use case
- XBRL instance (Human readable)
- XBRL taxonomy used by the XBRL instance (Human readable)
- XBRL Formulas (Human readable)
- XML Infoset for Model Structure (Human readable)
- XML Infoset for Fact Table (Human readable)
- Human readable information for business use case
- ZIP file you can use to DOWNLOAD all the information above
To understand the model of the information (the fact tables), read this blog post. (multidimensional model)
If you want a more comprehensive example, use this reference implementation.
In a prior blog post I briefly described expert systems. I provided a couple of definitions of an expert system. I am still synthesizing and summarizing information to improve the description of an expert system. Here is my best description as of this point:
Expert systems are computer programs that are built to mimic human behavior and knowledge. The computer program performs tasks that would otherwise be performed by a human expert. A model of the expertise of a domain of knowledge of the best practitioners or experts is put into machine-readable form and the expert system reaches conclusions or takes actions based on that information.
So how does an expert system "mimic human behavior"? How is knowledge "put into machine-readable form"? How can tasks be performed by a computer that represents knowlege of "best practitioners or experts"? This is how that is achieved.
A software based expert system has four primary components:
- Knowledge base: A knowledge base is a set of universally applicable rules created based on the experience and knowledge of a domain expert generally articulated in the form of IF…THEN statements or a form that can be converted to an IF...THEN form. A knowledge base is "fixed" in that its rules are universally relevant to all situations covered by the knowledge base. Not all rules are relevant to every situation. But where a rule is applicable it is universally applicable. All knowledge base information is machine-readable.
- Database of facts: A database of facts is a set of observations about some current situation or instance. The database of facts is "flexible" in that they apply to the current situation. The database of facts is machine-readable.
- Inference engine: An inference engine takes existing information in the knowledge base and the database of facts and is used to reach conclusions or take actions. The inference engine is the machine that processes the information.
- Explanation mechanism: The explanation mechanism explains and justifies how a conclusion or conclusions are reached. It walks you through which facts and which rules were used to reach a conclusion. The explanation mechanism is the results of processing the information using the inference engine and justifies why the conclusion was reached.
The four primary components of an expert system are generally wrapped within some graphical user interface that presents the expert system to the user of the software based system.
How does all this relate to XBRL?
XBRL is a global-standard syntax that can be used to structure information which can then be used by expert systems. In the XBRL world, the set of XBRL taxonomies including the relations expressed in XBRL calculations, XBRL definition relations, and XBRL Formula makes up the knowledge base. The XBRL instance is the database of facts. An XBRL processor plus the XBRL Formula processor performs the role of the inference engine. Reports generated by the XBRL and XBRL Formula processor and other such computer software tools provide the explanation/justification mechanism.
So why don't XBRL-based reports and software seem to act like expert systems these days? That is simply because pieces are missing from systems that have been implemented. Primarily there are two missing pieces:
- Missing machine-readable rules from the XBRL taxonomy that makes up the knowledge base and
- Missing processing from the XBRL Formula processor.
Very few XBRL implementations these days provide adequate machine-readable business rules using XBRL Formula and XBRL definition relations. Software generally does not provide a complete XBRL processor, let alone an XBRL Formula processor or inference engine capabilities. Current XBRL processors generally do not support chaining because XBRL provides no standard chaining model. Further, most software developers creating software are not using the techniques offered by artificial intelligence technologies for creating their software.
What does this mean? It means XBRL-based reports that are filled with errors. It means that there is a lot of upside potential as software engineers/architects understand and correct the mistakes they have made. Ultimately, I believe, that it means the future of digital financial reporting and digital business reporting will be bright.
Imagine having "Legos" that can be used to construct your own expert system. The complexity of such systems hidden from users of the software. What I believe is going to happen is that software tools will become available that make it so the cost of creating and the knowledge required to create an expert system will both drop exponentially. This will put powerful expert systems into the hands of business professionals.
Why can this happen? Well, first because in the past such expert systems were created the way most things were manufactured prior to Eli Whitney introduced the notion of interchangeable parts. Global standard specifications such as XBRL help make standardization possible. Standards allow for interchangable parts to be created. Second, because usage patterns can be turned into "Legos" that make it possible for business professionals to perform the knowledge engineering tasks necessary to create such systems. The strict multidimensional model which defines things like "fact" of the information processed makes this possible. Third, because more and more information is structured there are more and more opportunities to apply expert systems will appear. Finally, because of the connectivity offered by the internet models and other metadata can be easily shared and used by such systems. Digital machine-readable knowledge is collateral in today's increasingly digital world.
What do you think?