Accounting principles

Mathematically, an accounting system can be seen as an addition of bookings with a total of zero. These bookings are grouped into four groups: assets, liabilities, expenses and earnings. Since the overall total is zero, the difference of two groups must equal the negative difference of the two other groups.swiss replica watches In accounting terms, the difference is called “profit”, and bookings grouped as follows:

The server version includes logistics support. Inventory may be tracked in different locations, with average sales and purchase prices. The user may pick and ship from the inventory with drag and drop features.

(1)   + Assets                                      (3)   + Expenses
(2)   -  Liabilities                                (4)   -  Earnings

       =  Balance Profit                                  =  - Revenue Profit

Accounting systems use two different ways to make sure, that the total of all bookings will result to zero:

1 Debit/Credit bookings, like: hublot replica

> debit account, credit account, date, text, amount

In the reports, the booking line later is transformed into two bookings with a total of zero, like:

      > debit account, date, text,   amount
      > credit account, date, text, - amount

2 Batches with several bookings, like:


> debit account, credit account, date, text, amount

In the reports, the booking line later is transformed into two bookings with a total of zero, like:

      > account, date, text, amount1
      > account, date, text, amount2
      > account, date, text, amount3
         etc.

      whereas the sum (amount1, amount2, amount3 …) equals zero.


example with multiple bookings grouped to a batch with total of zero

Method (1) has the advantage, that the rule of zero totals will always be met. However, the booking line used violates the requirement of normalisation. A normalised data model would not accept a debit and a credit account on one record line. In Method (2) this normalisation requirement is fulfilled, with the disadvantage that in case of an error the total of the bookings might not result to zero.

Either method has its costs. Method (1) will be cheaper at the moment of data entry, but more expensive at the reporting level, since query statements will always have to ask for debit OR credit accounts. The use of the logical OR-operator is well known for slowing performance in SQL queries. Furthermore, since the bookings can’t be grouped into batches, the use of clearing accounts is very common. These clearing accounts should still give a total of zero, but the cleaning up does rather affect the accountant and his work and not the accounting system as such.

Method (2) is more expensive at the moment of data entry and will require a software system that assures a total of zero for each batch. The later use of the data in the reporting process however is straight forward. Redundancy can be kept at a minimal level and clearing accounts largely avoided. The rule of zero totals is not as critical as might be expected. Simple checking reports can easily identify and locate any system fault. Thus, data consistency is assured on the system as well as the application level.

sqlFinance booking record structure

Even though Method (1) is widely used in Europe, we decided to follow Method (2) for the sqlFinance accounting system. One main factor was the reduction of costs in the software development. The consistency management can be implemented in a simple way, transparent for the user. His supplementary work to assure zero totals in batches will be well compensated through reduced volumes in data entry and less work with clearing accounts, and the supplementary incentive of a more consistent and better accessible reporting system – one of the key assets of sqlFinance.

  

 

 

 

> System Architecture