Finance Operations and Controls

Chart of Accounts Explained: Structure and Best Practices

A chart of accounts is the list of buckets every naira is sorted into. How to structure one, number it, decide the right level of detail, and avoid the mistakes that make reports useless.

Illustrative example with fictional data.

A chart of accounts is the list of every account your business records money against: bank, receivables, VAT payable, revenue, fuel, salaries. It decides what your reports can tell you. Get it right and a monthly profit and loss answers real questions; get it wrong and every report needs a spreadsheet beside it to explain what the numbers mean.

What a chart of accounts actually is

Think of it as a filing system for money. Every transaction lands in at least two accounts (that's double entry, covered in our plain-English guide to the general ledger), and the chart of accounts is the full list of places it can land.

Each account has three things:

  • A code, such as 4000, so it sorts and searches predictably.
  • A name, such as Haulage revenue, that a non-accountant can read.
  • A type, which decides which report it appears on and whether increases are debits or credits.

The five account types

Every account belongs to one of five types. The first three make up the balance sheet; the last two make up the profit and loss.

Type What it holds Normal balance Example
Asset What the business owns or is owed Debit Cash at bank · GTBank
Liability What the business owes Credit VAT payable
Equity The owners' stake Credit Retained earnings
Income What the business earns Credit Haulage revenue
Expense What it costs to run Debit Fuel and diesel

If you remember one rule, make it this: the type is more important than the name. An account called "Advance to Tunde" means nothing to a report until it's typed as an asset (money owed to you) rather than an expense.

A numbering scheme that survives growth

Use ranges by type, and leave gaps. A common pattern:

Range Type
1000–1999 Assets
2000–2999 Liabilities
3000–3999 Equity
4000–4999 Income
5000–5999 Cost of sales
6000–7999 Operating expenses

Within each range, number in tens or hundreds, not ones. If Cash at bank · GTBank is 1000 and Cash at bank · Access is 1010, you can add a third bank at 1020 without renumbering anything. Codes that are reused or reshuffled break comparisons with last year.

A worked example: a logistics business in Ikeja

Here is a compact chart for a company like Adebayo & Co. Logistics, a haulage and fleet services business with around 40 staff.

Code Account Type
1000 Cash at bank · GTBank Asset
1010 Cash at bank · Access Asset
1200 Trade receivables Asset
1300 Staff loans and advances Asset
1400 WHT receivable (deducted by customers) Asset
1500 Vehicles Asset
2000 Trade payables Liability
2100 VAT payable Liability
2150 WHT payable (deducted from suppliers) Liability
2200 PAYE payable Liability
2210 Pension payable Liability
3000 Share capital Equity
3100 Retained earnings Equity
4000 Haulage revenue Income
4100 Fleet maintenance revenue Income
6100 Fuel and diesel Expense
6200 Salaries and wages Expense
6210 Employer pension Expense
6300 Vehicle repairs Expense
6400 Office rent Expense

Notice what the tax accounts do. When the company invoices ₦1,250,000 plus 7.5% VAT, ₦1,250,000 goes to Haulage revenue and ₦93,750 goes to VAT payable, because VAT isn't income: it's money held for the tax authority. Keeping it in its own liability account means the VAT return starts from a number you can trust. The same logic applies to WHT in both directions and to the statutory payroll deductions.

How much detail is enough

The test for adding an account is simple: will someone make a different decision because this number is separate?

  • Split Fuel and diesel from Vehicle repairs if you manage them differently. A logistics business does.
  • Don't create Fuel · Lekki route and Fuel · Garki route as accounts. Route or branch is a dimension, better handled by tagging transactions, not by multiplying accounts.
  • Merge accounts that never move. If Subscriptions · newspapers had two entries last year, it belongs in Office expenses.

A small services business usually works well with 40 to 80 accounts. Hundreds of accounts tend to mean the chart is doing a job that tags or departments should do.

Five mistakes that make reports useless

  1. A "Suspense" or "Miscellaneous" account that grows every month. It's where unclassified money goes to hide. Clear it at every month-end close.
  2. Income and VAT in one account. Revenue looks 7.5% higher than it is, and the VAT figure has to be rebuilt.
  3. Personal names as accounts. "Chiamaka imprest" should be Petty cash · Ikeja office, so the account survives staff changes.
  4. Renumbering mid-year. Comparisons break. Add new codes in the gaps instead.
  5. Each company in a group with its own scheme. If you run several companies, use the same codes for the same things in every one, so the group can be read side by side.

Changing an existing chart safely

Charts drift. When you tidy one, do it at the start of a period, map every old account to a new one in a simple two-column sheet, and keep the old codes inactive rather than deleting them, so history still reads. Agree the changes with your external accountant before you make them, since they'll prepare the year-end accounts from this structure.

How Flux helps

In Flux you can create your chart of accounts, import it from Excel, and export it again, so a structure agreed with your accountant goes in once rather than being typed line by line. Payments and vouchers already produce transaction records you can work from. The general ledger, journal entries, trial balance and period close that will sit on top of the chart are on the roadmap: see what's coming on the Finance & Accounting page and ask to be notified when it ships.

From the blog