Jump to content


Compiere supports parallel accounting standards for any combination of the following:

  • Accrual and Cash-based Accounting
  • Different accounting standards (e.g., US GAAP, UK SAP, German HGB)
  • Different inventory costing methods (e.g., Standard, Average, FIFO)
  • Different currencies

Usually, a "Set of Books" is defined as a set of transactions with the same Chart of Accounts, Calendar, Accounting Currency, Accounting Standard and Costing Method. There are situations, where this is not sufficient such as:

  • Unacceptable rounding and conversion differences
  • High manual effort to convert
  • Missing audit trail
  • Unacceptable time delay of availability of results
  • Inability to convert as detail information is missing

Compiere supports multiple accounting through the concept of an Accounting Schema. An Accounting Schema is any combination of the following:

  • Chart of Accounts
  • Accrual or Cash-based accounting
  • Accounting standard
  • Costing method
  • Accounting currency

Note, that in contrast to Set of Books, Calendar is not directly part of an Accounting Scheme, as you may have multiple calendars per accounting schema. The calendar is reduced to transaction support functions (open/close periods, summary postings, allocation definition ease of entry).

An important design advantage in Compiere for parallel accounting is that Compiere differentiates between the transaction details and the resulting accounting consequences. Separating transaction detail from accounting consequences has the following benefits:

  • Transaction data is not replicated
  • You can add or discontinue an accounting scheme anytime
  • You can generate accounting information for historical transactions
  • You can modify or replace any attribute (and optionally regenerate the accounting)
  • Its easy to extend and to maintain your parallel accounting practices

Transactions such as inventory updates and invoice payments, for example; complete immediately with high priority while the accounting complete asynchronously with lower priority and depending on system load.