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.
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
- A "Suspense" or "Miscellaneous" account that grows every month. It's where unclassified money goes to hide. Clear it at every month-end close.
- Income and VAT in one account. Revenue looks 7.5% higher than it is, and the VAT figure has to be rebuilt.
- Personal names as accounts. "Chiamaka imprest" should be Petty cash · Ikeja office, so the account survives staff changes.
- Renumbering mid-year. Comparisons break. Add new codes in the gaps instead.
- 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.