I held a class for CPAs in Seattle last week and during the class one of the participants made the following statement:
"ERP systems don't have all of the information in them that you need to create a financial report."
The comment led to me creating the diagram below which shows the problem and the solution to the problem:
Today information is stored in ERP systems, accounting systems, other relational database based systems, Excel spreadsheets, Word documents, and other structured, semi-structured, and unstructured formats. To create something like an external financial report; humans go to all these different information storage devices, gather what they need, and piece the information together into the report they desire and in the form of a PDF, HTML, Word document or Excel spreadsheet.
Then, they hand that document or spreadsheet over to someone else and the process starts over again with those documents being the inputs for some other system. For example, a financial report created by a public company is an output from the reporting entity's perspective; but that report is an imput from the perspective of the SEC or an analyst.
Some of the information is obtained using efficient database queries. Other information is entered using "copy/paste". Other information is simply rekeyed.
Managing and controlling this process is a monumental task. Sarbanes-Oxley requires companies to have a very good handle on this process if the process relates to external financial reporting. Other rules impose a level of rigor and dicipline for other reporting schemes in other domains. Internal processes have unspecified levels of rigor/dicipline.
Research papers by both Ventana and Gartner describe this process for external financial reporting. Gartner estimated that the average Fortune 1000 company used more than 800 spreadsheets to prepare its financial statements for regulatory reporting.
What tools do business users such as accountants have for keeping tabs on this process and making it efficient? They use things like the linking mechanisms provided in Excel. The tools are presentation oriented and know nothing about the information contained in the application other than how to present the information in a document or spreadsheet.
Weaving these things together is like trying to build something and trying to hold it together with bailing wire and band-aids. If bridges, buildings, or airplanes were engineered in this manner; lots of bridges and buildings would be falling down and air travel would not be very safe.
In the future the problem will be the same and likely get even more complicated and complex because things always seem to get more complicated and complex. However, the solution will be different.
Think of an accounting system. That system is made up of modules: general ledger, accounts receivable, accounts payable, payroll, fixed assets, and so forth.
But there are no "modules" for things like subsequent events, commitments and contingencies, line of credit facilities, and hundreds of other disclosures. But what if there were?
What if business users could create their own modules. Those modules could be integrated with other modules. The modules were "smart" and had accounting and financial reporting knowledge built in which controlled the module.
That is what a semantic spreadsheet is: a module. A disclosure management application is a module manager or a semantic spreadsheet manager. A reporting template is basically a module for a specific type of disclosure. I call all the spreadsheets which I used to create a financial statement my closing book. That closing book had all the supporting information for the financial statement.
In the future semantic spreadsheets will be used to capture and manage all this information which comes from all sorts of different systems which hold the information which ends up being reported in an external financial report or other business report.
Rather than linking information together based on its physical location, information will be held together using business rules which make sure the information is correct, complete, accurate, and consistent. Disclosure checklists will not be used by accountants to manually check a financial report after it is created; a disclosure checklist will serve as a guide to software which will make sure that you don't ever create a report incorrectly. These guides will be used during the creation process, not after the fact.
Validation and verification that information follows specified business rules will be done using both automated processes and manual processes where a process cannot be automated. When a rule is violated or something in the process breaks, the exception will be obvious.
Making the system work
What does it take to make something like what I am describing above actually work? What does "work" really mean?
- Meaningful exchange of information: First off, there needs to be a meaningful exchange of information between these different business systems. If that cannot occur, this system simply will not work correctly. It is pretty simple: garbage in, garbage out.
- Controlled by business users: Business users need to be at the controls. Business users cannot be running to the IT department at every step. This is sophisticated stuff, but it is what IT people do. IT people builds systems like this all the time. Really think about what happens when you book an airline ticket online. For what I am describing, business people need to weave things together. IT people help by burying the complexity and sophistication deeply within software.
- Queries of structured, semi-structured, unstructured information: If we could rip out all legacy systems, throw them away, and start over all this would be easier. But we can't. The reality is that there are a lot of different systems out there. They will be there for a long time. Software needs to make working with these different systems appear seamless. Systems need to be polyglot, but business users should be able to use their language of choice.
- No artificial boundaries between internal and external systems: The system is a collaboration of business users internal and external to an organization. There is a workflow/process which business users follow. That workflow/process must be followed, what software application you use should not be a barrier, were your physical location should not be a barrier.
- System has to work: In order for all this to be used, it has to be useful. The system needs to be easy to use by a business user, cost effective, predictable, repeatable, and reliable. There needs to an appropriate audit trail when necessary. Clearly security needs to be managed appropriately.
I have called this a "radically taylorable tool". Another term for that is controlled flexibility. Other software has aspects of what I am talking about for working with other things. GoAnimate is one example. Scratch is another example. Think "Legos".
One day you won't need to use your imagination to understand what computer software can do to help business reporting and financial reporting. One day you may believe what I am saying because you will see the software in action.
Am I nuts or will this grand vision be realized? Time will provide the answer.