Tuesday, September 9, 2008

Application tasks - the Nominal Ledger

Now lets look more at what we want our application to do. At the core of any accounting or book-keeping application is the nominal ledger. "The what now?" Exactly, its the bit of the application that should never be exposed to non-financial personnel, yet some software companies insist on using "Nominal" in the navigation of their application. Why? I have no idea but it won't happen here on my watch. 

Unfortunately for us developers, we have to deal with it along with all the other ledgers we will meet but don't bottle out yet - its actually a lot simpler concept than you might expect.

If we don't expose the nominal ledger to the user, then what is its purpose? It tracks all financial transactions made in the application in such a way as to make it easy to retrieve later on, either for legislative or managerial reasons. By financial transaction we mean the movement of values across accounts not just actual cash and cheque transactions. Agh! I hate trying to explain what a nominal ledger is so, for now, imagine its like having lots of bank accounts that you need to keep track of (it isn't I know but its a start).

the key to the Nominal Ledger is that it should always balance. Huh? Well imagine a pair of scales that weighs food, you know the old style ones with a tray hanging on either side. In order to get the scales to balance, you need exactly the same weight on each side. Similarly, the nominal ledger has a "Left" and a "Right". And in all cases the sum of the Left column should always, ALWAYS equal the sum of the Right column. In that way it is said to balance.

Strictly speaking, the Left is actually called the Debit and the Right is called the Credit. When we alter the values in the nominal ledger, we "Post" a transaction to it. That can be done via another transaction, like an invoice, or directly, via a journal entry. As a developer, just remember that both sides have to balance before and after each transaction.

No comments: