Chart of Accounts
A chart of accounts is the structured list of every account against which a business records financial transactions.
Also called CoA · Account tree · Account master · Ledger structure
Why it exists
Because financial transactions only become information when they are grouped, and the grouping has to be decided before the transactions arrive rather than after.
What it means to the business
The chart of accounts decides which questions the financials can answer. Reporting can only slice along lines the chart already draws, so a chart designed around the transactions produces statements nobody can act on, while one designed around the reports produces both. It is the most consequential piece of accounting design in an implementation and the one most often inherited unexamined.
Designed. Structure agreed against the reports it must produce.
State 1 of 3
Chart of Accounts organises General Ledger.
Open General LedgerA chart with 800 accounts means nobody can find the right one, postings land in approximations, and the detail everyone paid for turns into noise. If a data-entry clerk cannot choose without asking, there are too many.
Rules that must hold
- Every postable account belongs to exactly one of asset, liability, equity, income or expense. That classification determines which statement it appears in and cannot be ambiguous.
- Group accounts organise; only leaf accounts receive postings. Posting to a group is a misconfiguration, not a shortcut.
- An account with transactions may be disabled but never deleted, and never repurposed — reusing a code makes every historical report about it ambiguous.
What commonly goes wrong
It gets copied from the previous system, because it worked there and rebuilding it feels like scope. Then the first time leadership asks for margin by product line, the answer is that the chart cannot produce it — and by then there are two years of transactions posted against a structure that would have to be restated to fix.
Edge cases
- Migrating from a flat chart, where a legacy code maps to two new accounts and the split needs a judgement per transaction.
- Multi-currency accounts, which hold a balance in both transaction and reporting currency and revalue independently.
- Control accounts for receivables and payables, which must reconcile to their sub-ledgers and should never be posted to directly.
- Charts inherited from an accountant's template that carry accounts for a business model this business does not have.
How ERPNext models it
| DocType | Note |
|---|---|
| Account | Tree-structured. `is_group` separates headings from postable accounts; `root_type` sets the statement classification. |
| Cost Center | The dimension axis. This is the answer to most 'we need more accounts' requests. |
| Company | Owns the tree. Each company gets its own, which is what keeps books separate under common ownership. |
Last reviewed 2026-08-14
Machine-readable versionWe implement this for a living — that’s where the mistakes above come from. See the service or request a discovery briefing