Accounting System


FreeMoney 1.0 is a GPL-licensed integrated small business double-entry accounting system for Linux using PostgreSQL. To facilitate maximum code reuse, customizability and extensibility, FreeMoney is modularly designed using the object-oriented facilities of Perl5.

FreeMoney 1.0 supports the accounting requirements of both services and resellers with the following business capabilities:

A wide range of selectable user preferences make FreeMoney a suitable accounting choice for many different kinds of businesses in many different countries.

Choice of the widely supported Perl language for development makes FreeMoney an especially attractive choice for the accounting needs of businesses engaged in internet commerce and those who require cross-platform solutions.

FreeMoney 1.0 supports both character-based and X user interfaces. Later releases of FreeMoney will support browser interfaces.


A integrated computerized accounting system is a modular collection of interactive programs that keeps a detailed record of money as it enters, leaves and is retained in a business entity. "Integrated" means that data from one functional module is posted to the other modules so that it only needs to be entered once.

Transactions may enter the system in three ways:

  1. Keyboard entry -- posted by the business owner, bookkeeper or entry clerk

  2. Electronically -- posted by Web stores

  3. Periodically -- posted by the accounting program configured to record periodic and service charges

Transactions are stored in a database file. Information ancillary to money transactions is also stored in database files. The most important of this information is of three types:

  1. Customer records--the Customer File

  2. Vendor records--The Vendor File

  3. Inventory records--The Inventory File

The accounting system produces automatically and on request a large variety of reports used for the operation of the business.



The General Ledger is the heart of every accounting system. Every business transaction which has a money value is recorded here either for itself or in summary form.

The general ledger is a database file consisting of a number of records called Accounts. There are two kinds of accounts: Debit Accounts and Credit Accounts. The Chart of Accounts report shows the characteristics of each account in the general ledger. Physically, the Chart of Accounts is just a listing of the records in the general ledger. See Figure 1.

The account records in the general ledger are based on the fundamental equation of accounting, i.e.,


This is the basis for the fundamental report known as the Balance Sheet. See Figure 2.

There are groups of accounts corresponding to each category defined by the fundamental equation of accounting.

Asset Accounts are Debit Accounts into which the wealth of a business is entered.

Liability Accounts are Credit Accounts into which the debts of a business are entered.

Earnings Accounts are Credit Accounts for recording the excess of Assets over Liabilities.

There is another division of the general ledger consisting of three new kinds of accounts defined by the equation:


This is the basis for a second fundamental report known as the Income Statement. See Figure 3.

Revenue Accounts are Credit Accounts into which the money received by a business is entered.

Expense Accounts are Debit Accounts into which the money payed out by a business is entered.

Earnings Accounts are Credit Accounts into which the excess of Revenues over Expenses are entered.

An entry into an account adds to the value already present. Accounts can also receive negative entries. Making an entry is called posting.

At periodic times, for example annually, the books are closed. This means that certain once each period entries are made into the general ledger and a final income statement is printed. The Earnings are posted to Retained Earnings where they subsequently appear on the Balance Sheet. All Revenue and Expense accounts are zeroed out.


Entries to the general ledger are not entered directly but into a preliminary database file known as the General Journal. Entries into the general journal are appropriately called journal entries. There are a number of different kinds of journals which pass through the general journal. Each of these has its own name such as Sales Journal and Cash Journal.

The rules of double-entry bookkeeping mandate that every item posted have not one but two entries affecting two different ledger accounts.

As an example, let us suppose that to get working capital for your business you borrow $50,000 from uncle. To represent this debt, you create the credit account 201000 in the liabilities section of your general ledger. You receive the money and deposit it in your 101000 debit bank account (in the assets section).

To reflect this transaction in FreeMoney, you would make the following journal entry in the general journal:


101000 CASH IN BANK GJ 50000.00

201000 LOAN FROM UNCLE GJ 50000.00

When this journal entry is posted to the general ledger, $50,000.00 will be posted to the CASH IN BANK Asset Account and $50,000.00 will be posted to the LOAN FROM UNCLE Liabilities Account thus preserving the fundamental equation of accounting.

This same journal may contain other journal entries. When all the journal entries have been made, we print the general journal. See Figure 4. Notice that one essential feature of the journal entry process is that debits and credits always balance. This circumstance is dictated by the fundamental equation of accounting.

Next, we post the general journal. This means we move the data entries from the general journal file to the Journal Transactions File. Finally, we clear the general journal file for use on a new journal.


The activities of maintaining a general ledger are periodic. Generally, the two periods are monthly and yearly. As journals are posted into the Journal Transactions File, it becomes possible to look at the effect they will have on account balances in the general ledger. This is the job of the Trial Balance. See Figure 4. The Trial Balance report shows the starting balance for each account, lists all the journal entries posting to that account and gives the ending balances after the journal entries have been posted. The trial balance is a very important report, because it organizes all the details of the bookkeeping activity making it easy to see and correct errors. Errors are corrected by posting correcting journals through the general journal.


Once all the journal entries have been made for the month and corrected, it is time to print the Income Statement and Balance Sheet. See Figures 1 and 2.

The Income Statement and Balance Sheet are the main financial decision-making tools used by the business manager.The FreeMoney 1.0 income statement and balance sheet are single-level reports. Later versions of FreeMoney will support subsidiary schedules and the capability to design custom reports.

The business manager may see problems in the income statement and balance sheet requiring a further round of journal entries and trial balance.


Journals for all of the month's business have now been posted. It is time to update the general ledger balances with the month's work. FreeMoney 1.0 does this with POST MONTH and CLEAR MONTH.

This area is intended to be frequently updated. Last updated November 10, 1997

For more information, please write to us, or you can join the FreeMoney mailing list at

Copyright ©1997 by Dwight Johnson