Classic Transactions and Canonical Representations of Business Events

Why do we "post transactions to an accounting system"? Why can't the information from a business event be turned into a transaction information and the information then just end up in the right financial statement accounts?

For probably 10 years, I have been trying to figure out how to get information into an accounting system correctly even if you are not a trained bookkeeper or accountant.  During that time I have run across several clues.  Those clues include:

  • The Resource-Event-Agent (REA) model is an approach to conceptualizing the semantics of economic exchanges and conversions such as accounting transactions or business events. REA is an ISO standard.  For more information about REA, please see this blog post.
  • Algorithmic Contract Types Unified Standard (ACTUS) has the same idea that I have for financial contracts that I have for business events.  ACTUS uses the notion of machine readable smart contracts to represent financial contracts.
  • The book The Joy of Accounting by Peter Frampton and Mark Robilliard in PART 2 discusses the notion of "Classic Transactions" and the book provides a list of about 15 such classic transactions.
  • Workday has this notion of "work tags". Worktags are keywords or "tags" assigned to business events.  That is an informal approach that I am leveraging more formally.
What I am noticing from REA, ACTUS, and notion of "Classic Transactions" is the notion of patterns and how patterns can be used to simplify things.

What all these approaches are doing is defining canonical or prototypical business events and how each of those business events is represented within an accounting system and where the information ends up in a financial report.

Accounting already has this idea.  Think of, say, the accounts receivable subsidiary ledger.  That is a "special ledger" for sales on account.  Every transaction in the accounts receivable subsidiary ledger has the same pattern, that is what makes it "special".

By way of contrast, the "general ledger" is used for transactions that are not "special".  General ledgers do have patterns, but the pattern is more general.

It is easier to generate a properly created accounting transaction for the accounts receivable ledger because what goes on is more specific and reduced to the business events of selling something to a customer (invoice) or collecting a payment from a customer (depositing a check).

You can think of the accounts receivable subsidiary ledger as a "template", a pattern.  Payables, fixed assets, inventory, purchases, payroll all have their own "templates".

You can think of what I am observing as creating additional subledgers or "templates" for as many noticeable patterns of business events in order to minimize what a bookkeeper or accountant needs to flow through a general ledger which is harder to get right.

What is my point here?  My point is that if you can identify the patterns of classical transactions or business events that occur and you create machine readable rules that contain this information, then accounting systems can be more helpful to bookkeepers and accountants entering transactions into such systems, reducing the costs of transaction entry and increasing the quality of the transactions by reducing errors.


Remember the 1-10-100 rule.  Put simply, the 1-10-100 rule states that it costs exponentially more to identify and correct data entry errors than to fix a system to avoid making the error in the first place.  Also, if an error goes undetected it can cost exponentially more to deal with ramifications of the error.

Here is some earlier work related to this topic that I have put together.


Additional Resources:


Comments

Popular posts from this blog

Relational Knowledge Graph System (RKGS)

Graph Hairball

PLATINUM Business Use Cases, Test Cases, Conformance Suite