Nominal codes (also called account codes or nominal ledger codes) are the numbered identifiers assigned to each account in a business’s general ledger. Every transaction recorded in the books is posted to a nominal code, which determines where it appears in the financial statements. A well-structured set of nominal codes makes bookkeeping more efficient, financial reporting more accurate and tax compliance more straightforward.

Nominal codes form the backbone of the chart of accounts , which is the master list of every account a business uses. For an introduction to the broader principles, see our guide to bookkeeping .

How nominal codes work

Each nominal code represents a specific category of financial transaction. When a bookkeeper records a purchase of office stationery, for example, the expense is posted to the nominal code for office stationery. When a customer pays an invoice, the payment is posted to the bank nominal code and the trade debtors code.

The codes are typically four-digit numbers grouped into ranges that correspond to the main sections of the financial statements.

Standard UK nominal code ranges

Most UK accounting software uses a default code structure similar to the following:

Code rangeCategoryFinancial statement
0001-0999Non-current (fixed) assetsBalance sheet
1001-1999Current assetsBalance sheet
2001-2999Current liabilitiesBalance sheet
3001-3999Long-term liabilities and equityBalance sheet
4001-4999Sales and revenueIncome statement
5001-5999Direct costs / cost of salesIncome statement
6001-6999Overheads and expensesIncome statement
7001-7999Other income and expensesIncome statement
8001-8999Depreciation and amortisationIncome statement
9001-9999Suspense, control and adjustment accountsVarious

The exact ranges and code numbers vary between software packages. Sage, Xero, QuickBooks and FreeAgent all have their own default structures, but the general grouping principle is consistent.

Common nominal codes in UK businesses

Balance sheet codes

CodeAccount nameType
0010Freehold propertyFixed asset
0020Plant and machineryFixed asset
0030Office equipmentFixed asset
0040Motor vehiclesFixed asset
0050Computer equipmentFixed asset
1001Stock / inventoryCurrent asset
1100Trade debtorsCurrent asset
1200Bank current accountCurrent asset
1210Bank deposit accountCurrent asset
1230Petty cashCurrent asset
2100Trade creditorsCurrent liability
2200VAT control accountCurrent liability
2210PAYE / NIC liabilityCurrent liability
2300Bank loanNon-current liability
3000Share capitalEquity
3100Retained earningsEquity

Income statement codes

CodeAccount nameType
4000Sales – productRevenue
4001Sales – servicesRevenue
4009Discounts allowedRevenue (contra)
5000Cost of sales – materialsDirect cost
5001Cost of sales – labourDirect cost
5002Cost of sales – subcontractorsDirect cost
6000RentOverhead
6001Business ratesOverhead
6002Light and heatOverhead
6003InsuranceOverhead
6010Telephone and internetOverhead
6011Postage and stationeryOverhead
6020Motor expensesOverhead
6030Travel and subsistenceOverhead
6040Advertising and marketingOverhead
6050Accountancy feesOverhead
6060Legal and professional feesOverhead
6100Wages and salariesOverhead
6110Employer NICOverhead
6120Employer pension contributionsOverhead
7100Bank interest receivedOther income
7200Bank interest paidOther expense
7300Bad debts written offOther expense
8000DepreciationIncome statement
8100AmortisationIncome statement

Setting up nominal codes

Step 1: Start with your software defaults

Every UK accounting package comes with a default chart of accounts pre-loaded with standard nominal codes. These defaults are designed for general-purpose businesses and will cover the majority of transactions.

Step 2: Customise for your business

Review the defaults and add, remove or rename codes to match your business activities:

  • A retail business might add codes for different product categories under sales and cost of sales
  • A construction company might add codes for different types of subcontractor costs
  • A professional services firm might add codes for different revenue streams (consulting, training, licensing)

Step 3: Keep the structure logical

Good practice is to:

  • Use consistent numbering within ranges (all motor-related expenses in a block, all property costs in another)
  • Avoid creating codes that are too granular – excessive detail makes bookkeeping slower without adding useful information
  • Avoid codes that are too broad – lumping all expenses into one code makes analysis impossible
  • Number sequentially within groups, leaving gaps for future additions (e.g. 6000, 6010, 6020 rather than 6000, 6001, 6002)

Step 4: Document the chart

Maintain a written list of all nominal codes and their descriptions. This is particularly important if more than one person records transactions, as it prevents different people from using different codes for the same type of expense.

Nominal codes and VAT

In the UK, VAT treatment is typically managed separately from the nominal code. Most accounting software allows each transaction to carry both a nominal code and a VAT code (e.g. standard rate, reduced rate, exempt, zero-rated, outside the scope).

However, some businesses create separate nominal codes for items with different VAT treatments to simplify VAT reporting. For example:

CodeAccount nameVAT treatment
6002Utilities – gas and electricity5% reduced rate
6003InsuranceExempt
6010Telephone20% standard rate

Nominal codes and management reporting

A well-structured nominal code system directly improves the quality of management reports. When codes are set up logically:

  • The profit and loss account breaks down revenue and costs into meaningful categories
  • Departmental reporting can be achieved by assigning codes to cost centres or departments
  • Budget vs actual comparisons are straightforward because budget lines map to specific codes
  • Trend analysis is reliable because each type of transaction is consistently coded

Poor coding – where transactions are dumped into catch-all categories or miscoded – makes management information unreliable and can lead to poor decision-making.

Nominal codes and tax compliance

Accurate coding supports tax compliance in several ways:

  • Corporation tax: expenses must be correctly categorised as allowable deductions, disallowable items or capital expenditure
  • VAT returns: transactions must be correctly coded to identify input tax, output tax and exempt supplies
  • PAYE: payroll costs must be separated from other expenses for tax and NIC purposes
  • Capital allowances: capital expenditure must be coded to asset accounts (not expense accounts) to claim the correct allowances

If an expense is coded to the wrong nominal account, it may not be identified correctly for tax purposes, potentially resulting in an incorrect tax return.

Common mistakes

  • Using suspense accounts permanently – suspense accounts exist for transactions that cannot be immediately classified and should be cleared promptly
  • Creating too many codes – a sole trader with simple activities does not need 200 codes; start simple and add only when the detail provides genuine value
  • Inconsistent coding – if one person codes courier costs to “postage” and another to “travel”, the expense analysis is meaningless
  • Not reviewing the chart of accounts – business activities change over time; review annually and archive unused codes