Saturday, March 20, 2004

Bookeeping system 

In a book keeping system its standard to have an assertion or constraint for transactions. The assertion is that the sum of all entries is zero. (Given that a transaction is for one product). In other words there is conservation of product.

I think this isn't the whole story. In practice, there are accounting rules such as assets = liabilities + equity. If we consider double entry only then there are 6 possible postings. The debit and credit go into

asset and liability
asset and equity
liability and equity

The next three are

asset and asset
liability and liability
equity and equity

There are no other possibilities. If the accounting rule is enforced then by default so is the conservation rule. The exception being the accounting rule is incorrectly specfiied. Its the last point that means its still a good idea to keep the conservation assertion.

All posting rules must conform to accounting rules. The problem is when they don't. Personal experience tells me it is very hard to work out posting rules. It would be considerably easier if posting rules can be symbolically checked against accounting rules so that they can be run in the knowledge that the books were not going to be corrupted.

The rules need to be enforced against the chart of accounts.