Declarative Accounting

Traditional accounting systems are imperative in nature.  Effectively, what this means that you tell the accounting system what to do step-by-step.

But what if an accounting system were declarative in nature?  Declarative accounting is a way of setting up accounting systems where you focus on what you want the system to do, rather than how the accounting system should do the work.

You can understand the difference between imperative and declarative by, say, thinking of how a self driving car might work.  There are perhaps two approaches to giving instructions to a self driving car to, say, get to the airport:

  • Using an imperative approach you're telling the car "Turn right at the next light, then go straight for two miles, then turn left..." You're giving step-by-step instructions to get from where you are to the airport.
  • Using a declarative approach you're telling the car "Take me to the airport." The car figures out the best route, handles the turns, and gets you there.

In declarative accounting, you define the rules and relationships between different aspects of your accounting information (like assets, liabilities, income, and expenses). The system then uses those rules, which are represented in machine readable form, to automatically assure compliance with the rules, generate reports, perform calculations, and ensure accuracy.

Here's a simple example: Instead of manually entering debits and credits for every transaction, you might define a rule such as, "Whenever a sale is recorded, increase revenue and increase accounts receivable."

The system then automatically applies this rule whenever a sale happens, without you having to manually input the accounting entries for this category of common business event, a "sale".

Declarative accounting has some significant benefits over imperative accounting including:

  • Enables automation  which reduces manual work and the associated risk of human error when work is performed by humans.
  • Declarative accounting systems are smarter so those using the system can have less accounting skills and experience.
  • Flexibility in terms of adapting to changes in accounting standards or business needs throughout all your processes.
  • Ensures that accounting rules are applied consistently across the organization.
  • Speeds up accounting processes and frees up time for accountants to perform higher value add activities such as analysis and decision-making.

In essence, declarative accounting is about building smarter accounting systems that can handle more of the work automatically, allowing accountants to focus on higher-level tasks.

The idea of declarative accounting is not new.  The 1981 paper, Declarative and Procedural Features of a CODASYL Accounting System, mentions declarative accounting.

Digital distributed ledger technology such as blockchain has the potential to enable fully declarative accounting systems by providing a shared, immutable ledger and using smart contracts to automate accounting processes.  Declarative rules can be published for specific industries, specific company accounting policies, etc.  Declarative accounting systems have interesting audit ramifications in terms of setting up internal controls.

Keep in mind that the degree of "declarativeness" can vary significantly between different declarative accounting systems. Some may offer more flexibility and control over defining rules, while others may have more pre-defined functionality.  These are choices you need to make.

Choosing a declarative accounting system often depends on the specific needs and technical expertise of the organization. Plain text accounting tools may be suitable for individuals or small businesses with technical skills, while larger organizations may prefer the more comprehensive features of ERP systems.

Additional Information:

Comments

Popular posts from this blog

Getting Started with Auditchain Luca (now called Luca Suite)

Relational Knowledge Graph System (RKGS)

Professional System for Creating Financial Reports Leveraging Knowledge Graphs