Balance Sheet, Income Statement, Trial Balance and Cash Flow for any chart of accounts: prototype module, testers wanted

Hi all,

The problem. Every country’s chart of accounts is different: different numbering, different groupings, and different expectations for how a Balance Sheet and Income Statement are laid out. Dolibarr’s built-in financial reports rely on account groups that come predefined for only a few charts; for everyone else, the reports are empty or wrong until you build the groups and formulas yourself, and accounts that change sides (a bank account that goes into overdraft, GST/VAT accounts) or reduce another account (accumulated depreciation) are hard to get right. See issue #31760.

My approach. I’ve built a prototype external module that tries a different design, and I’d like it tested on as many different charts as possible before proposing anything for core. I’m in Australia, and the Australian chart of accounts is the one I’ve tested it on so far, so other countries’ charts are exactly what I need feedback on.

The idea: every account gets a nature (Asset, Liability, Equity, Income, Expense, Clearing, Excluded), and the reports are built from natures instead of account numbers. Two optional extras per account handle the awkward cases: an alternate nature (e.g. a bank account that becomes a liability when overdrawn) and a contra flag (e.g. accumulated depreciation). Natures are suggested automatically from your country and chart; a classification check lists anything unclassified or on the wrong side.

Reports (all read-only, CSV and PDF export):

  • Balance Sheet: checks Assets = Liabilities + Equity and explains any difference; columns for month/quarter/year-ends or comparison with a previous date
  • Income Statement: columns by month/quarter/fiscal year or comparison with the previous period / same period last year
  • Trial Balance: opening, debits, credits, closing; by account or grouped by nature
  • Cash Flow (indirect method)
  • Aged receivables / payables
  • Works with accrual or cash accounting

It changes nothing in your accounting: it only reads the ledger and keeps its settings in its own tables. Requires Dolibarr 23+ and the double-entry Accounting module.

Download: GitHub - mike-wallis/dolibarr-anychartlab: Any-Chart Reports Lab: prototype Dolibarr module for testing account natures and chart-independent financial reports (Dolibarr issue #31760) · GitHub (zip in Releases, v0.2)

It’s a prototype: please try it on a test install or a copy of your database. What I’d most like to hear:

  • your country / chart of accounts, and whether the suggested natures were right
  • reports that don’t balance or look wrong for your chart
  • whether this approach would be acceptable in core

Feedback here, in the repository’s Issues, or on #31760. Thanks!

Update: v0.3, now called “Financial Reporting”

The prototype has been renamed Financial Reporting. The aim is now a free module on DoliStore, and later Dolibarr core (#31760). Download: Release Financial Reporting v0.3 · mike-wallis/dolibarr-anychartlab · GitHub

New in v0.3

  • Getting started wizard: enable the module, click its settings icon, and it walks you through setup. It starts with a short explanation of why charts of accounts need this, using real examples from the charts Dolibarr ships. The reports show what’s missing until setup is complete.
  • Account classes: besides its nature (asset, liability…), each account now gets one class: current / non-current / cash, revenue, cost of sales, employee costs, depreciation, and so on. You can rename them, hide the ones you don’t use, or add your own. The balance sheet is now split into current and non-current.
  • Report wizard: builds your income statement from a country template (generic, Australia, France) as a normal Dolibarr personalised report.
  • Rule sets page: see the rules that suggest natures and classes, copy them, and write your own. If yours work well for your country, please share them!
  • Dolibarr’s own bank transfer and suspense accounts are recognised automatically as clearing accounts.

Upgrading from v0.1 / v0.2: the folder was renamed, so export your natures (CSV) from the old module, remove it, install v0.3 and import the file.

It’s still a development version, so please try it on a test install or a copy of your database. Feedback on your country’s chart is still the most useful thing. Thanks!