18.3 Chart of Accounts

The Chart of Accounts or CoA defines how financial reports are organized and summarized. This section describes the various configuration options available when creating or editing the CoA.

18.3.1 Predefined Chart of Accounts

LedgerSMB provides predefined Chart of Accounts that can be used out of the box for many businesses. Most new LedgerSMB setups start with one of the predefined Charts of Accounts and add or delete as necessary to customize it for their business.

There is also an option to import a Chart of Accounts. Importing is described in Section 18.3.5 on page 18.3.5.

The predefined CoA files are Extensible Markup Language (XML) format files.

LedgerSMB provides an XML Schema Definition (XSD) file, which might help in developing a custom CoA XML file, located at https://github.com/ledgersmb/LedgerSMB/blob/master/doc/company-setup/configuration.xsd.

To use a custom CoA XML file, it will need to be placed in the correct directory prior to running setup.pl. The correct directory will be one of the locale sub-directories in locale/coa.

The predefined Chart of Accounts are organized by country and localized. For the United States the following predefined Chart of Accounts are available:

  • General.xml

  • GeneralHierarchical.xml

  • Manufacturing.xml

  • Service.xml

  • UCOA-Form990.xml

  • UCOA-Form990EZ.xml

Similar predefined Charts of Accounts are available for other countries and languages.

See Section 5.1.3 on page 5.1.3 for instructions on using these predefined accounts.

The following examples use the GeneralHierarchical.xml account structure. This file can be found at https://github.com/ledgersmb/LedgerSMB/blob/master/locale/coa/us/GeneralHierarchical.xml.

18.3.2 Account structure

The system allows ordering accounts into groups by assigning accounts to headers. Headers can themselves be assigned to other headers resulting in hierarchies of account groups.11 1 Although the database structure supports this type of account hierarchy from 1.3, it was not fully in use in reports until 1.4.17. In 1.3 accounts can be assigned a header, but headers can’t be assigned to headers themselves.

There are multiple reasons for wanting to use hierarchies. One of those reasons is that expense accounts in prior versions were listed as one long list under Expenses while income accounts are listed as a -usually shorter- list under Income. Personnel expenses are usually spread across multiple expense accounts. With lots of other expense accounts also listed, what’s the total expense on personnel?

Another use-case for using hierarchies might be because you’re running a ”margin business”. That is, you’re only buying what you’re selling and the cost of goods sold is the largest part of your expenses. In cases like this it can be a good idea to use a different setup of the income statement: one where cost of goods sold is immediately subtracted from income, leaving gross margin to cover all other expenses in the company.

In order to set a heading’s parent, go to the General Journal Chart of Accounts. Click on the account number. If the account is a heading account that has a parent heading, the resulting screen shown in Figure 18.1 on page 18.1.

Refer to caption
Figure 18.1: Configure Account Hierarchy

If the account is a not a heading account, but has a parent heading, then the result is shown in Figure 18.2 on page 18.2.

Refer to caption
Figure 18.2: Account Setup

If the ”Current Earnings” account has been set in System Defaults, see Figure 18.4 on page 18.4, it is possible to select either the full or non hierarchical (labeled ”Account category”) account layouts when generating the ”Balance Sheet” or ”Income Statement” reports.

For example, Reports Income Statement as shown in Figure 18.3 on page 18.3.

Refer to caption
Figure 18.3: Report Using Hierarchy

18.3.3 Account setup

Headers don’t have any configuration, other than their number and description.

Accounts also have a number and description, but require additional configuration for the application to work correctly.

The settings, which are shown in Figure 18.2 on page 18.2 are described in the following paragraphs.

The main setup consists of the following:

Account Number

Income statements and balance sheets reports are ordered by account number. Traditionally, account numbers are 4 digits with accounts being grouped by the first digit, but this type of grouping is not enforced by LedgerSMB. Grouping is handled using headings as explained in Section 18.3.2 on page 18.3.2.

Description

Should be a relative short, easy to understand description of what the account is used for.

Account Type

Asset, Liability, Equity, Equity temporary, Income or Expense.

Heading

Optional entry. Used if this account is a child of a heading account.

Negative balance heading

Balance sheet account balances should - generally - not be reported as negative amounts22 2 Notable exception here are ”cumulative depreciation” accounts in fixed asset accounting, but these are usually marked as ”Contra” – causing them to be reported as positive numbers..: a negative asset is in fact a liability. This functionality reports the given account under the primary header as long as the asset/liability is positive and reports it under the ”negative balance heading” as soon as the asset/liability turns negative (the expectation is that the alternative header is a liability/asset header instead of an asset/liability header).

Account configuration

The items in the configuration box as shown in Figure 18.2 on page 18.2 are used to configure the account for use in LedgerSMB.

There are currently three types of optional summary accounts:

AR

Marking an account as a summary account for AR means that all outstanding receivable amounts will be posted to this account. The Accounts Receivable administration will contain the details of which amount is owed by which customer.

AP

Same as the AR account, except for amounts owed to vendors.

Inventory

This account holds the monetary value equal to the items on stock.

Each account may have zero, one or more of the following options selected.

Contra

This checkmark identifies the account as a contra account, which means that the account is going to hold the opposite of an account it’s associated with. A good example of this kind would be the depreciation account associated with a fixed asset account where the depreciation account contains the credit amount to be added to the original asset (debit) value to get the current asset value.

Recon

This checkmark identifies the account as one which needs reconciliation as described in Section 43.3 on page 43.3.

Tax

This checkmark identifies the account as a Tax (VAT/Sales) account. Tax accounts need

to be further configured. See Chapter 26 starting at page 26 for further discussion of the subject.

Obsolete

This checkmark identifies the account as not being usable going forward. The account cannot be deleted because it may contain data.

Receivables checkmarks

Income (AR_amount)

This check mark adds the account to the list of accounts in the transaction screens which are used to post income on.

Payment (AR_paid)

This check mark adds the account to the list of accounts to choose from in the Receipts (AR) and Payments (AP) screens as well as the payments lines on invoices and transactions. Additionally, it

adds the account to the part entry screen as described in Section 25.1.1 on page 25.1.1.

Tax (AR_tax)

This check mark makes the account show up as a check mark on the customer (AR) or vendor (AP) entry screen. See Chapter 26 starting at page 26 for further discussion.

Overpayment (AR_overpayment)

Adds the account to the receipts screen as discussed in Section 42.5 on page 42.5.

Discount (AR_discount)

Adds the account to the customer entry screen’s selection list for accounts to post payment term discounts on.

Payables checkmarks

The payables UI works the same way as the receivables described in the previous list. The difference is that the technical names of the configuration identifiers are prefixed by AP_ instead of AR_.

Tracking Items

The items on this line relate to stocked items, i.e. those tracked for inventory: parts and assemblies.

Income (IC_sale)

Adds the account to the selection list of income accounts on the part and assembly definition screens.

COGS (IC_cogs)

Adds the account to the selection list of COGS @@@ accounts on the part, assembly and overhead definition screen.

Tax (IC_taxpart)

Adds a check mark to the part and assembly definition screen for the applicable account. See Chapter 26 starting at page 26 for more details on how taxes work in LedgerSMB.

Returns (@@@ Need help here)

@@@

@@@ TODO Labor/Overhead, when part of an assembly, are capitalized in inventory and accounted for in COGS when the resulting assembly is sold. We should add an explanation to that extent somewhere in the book and refer to it from here.

@@@ TODO Labor sold isn’t ”inventory tracked”, so it is a service. Labor/Overhead used to manufacture assemblies is ”inventory tracked” and capitalized. We should explain somewhere that Labor sold immediately is a service instead.

Non-tracking items

The items on this line relate to untracked (non stocked) items, i.e. services.

Income (IC_income)

Adds the account to the income account selection list in the service definition screen.

Expense (IC_expense)

Adds the account to the expense account selection list in the service definition screen.

Tax (IC_taxservice)

Adds a check mark to the service definition screen for the applicable account. See Chapter 26 starting at page 26 for more details on how taxes work in LedgerSMB.

Fixed assets

Fixed asset (Fixed_Asset)

Marks the account as holding the original asset value for the fixed assets module, for some classes of fixed assets.

Depreciation (Asset_Dep)

Marks the account as holding the cumulative depreciation amount for the fixed assets module, for some classes of fixed assets.

Expense (asset_expense)

Adds the expense account to the selection list of the fixed assets accounting module. See Section 43.6 on page 43.6 for more details.

Gain (asset_gain)

Account to hold book value gain upon disposal of a fixed asset.

Loss (asset_loss)

Account to hold book value loss upon disposal of a fixed asset.

18.3.4 Special accounts

Special accounts are set by going to System Defaults and scrolling down to ”Default Accounts”.

As you can see, in Figure 18.4 on page 18.4 the heading ”3999 – NET MARGIN” has been selected and is the heading which is used as the highest level for the P&L and lowest level at which income and expenses are being reported in the balance sheet.

Refer to caption
Figure 18.4: System Default Accounts

The other special accounts are used as follows:

  • Current earnings - Used to summarize the P&L result as a single line on the Balance Sheet,

  • Inventory - Used to summarize the inventory value on the balance sheet.

  • Income - Used to summarize income on the Income Statement.

  • Cost of Goods Sold - Used to summarize the cost of goods on the Income Statement.

  • Foreign Exchange Gain - Accounts for the gain in value differences in foreign currencies when recording payments to invoices in foreign currencies. In case an invoice is issued at 1 EUR == 1 USD, but payments arrive when 1 EUR == 0.80 USD, the amount of USD paid is still the invoiced amount, but the EUR amount differs. The EUR difference ends up in the Foreign Exchange Gain or Foreign Exchange Loss accounts. See Section 42.8 on page 42.8 for more information.

  • Foreign Exchange Loss - Accounts for the loss in value differences in foreign currencies when recording payments to invoices in foreign currencies. See Section 42.8 on page 42.8 for more information.

18.3.5 Importing chart of accounts

A custom Chart of Accounts can be imported in CSV format by going to General Journal Import Chart and selecting the import file.

The import screen list the required fields. Field content definitions are explained above.