Chart of Accounts examples, by business type
A chart of accounts (COA) is the backbone of your books — every transaction eventually lands on one of its accounts. This guide walks through what a COA is, how account numbering works, and three concrete examples you can steal for a SaaS company, a retail store, or a professional services firm.
What is a chart of accounts?
A chart of accounts is a structured list of every ledger account your business uses to record activity. Each account belongs to one of five categories — Assets, Liabilities, Equity, Revenue, and Expenses — and every journal entry in your general ledger references at least two of them (that's the "double entry" part). A well-designed COA makes your financial statements readable without customization: the P&L rolls up from Revenue and Expense accounts, and the Balance Sheet rolls up from Assets, Liabilities, and Equity.
Account numbering that scales
Most operators use a four-digit numbering scheme organized by category. It leaves room to insert new accounts without renumbering, and it sorts naturally on every report.
- 1000–1999 — Assets (cash, AR, inventory, fixed assets)
- 2000–2999 — Liabilities (AP, taxes, deferred revenue, loans)
- 3000–3999 — Equity (common stock, retained earnings)
- 4000–4999 — Revenue
- 5000–5999 — Cost of Goods Sold
- 6000–9999 — Operating & other expenses
Example 1 — SaaS company
A subscription business needs deferred revenue for prepaid contracts, hosting costs isolated as COGS so gross margin is legible, and MRR revenue split from one-time professional services.
| Code | Account Name | Type |
|---|---|---|
| 1000 | Cash — Operating | Asset |
| 1200 | Accounts Receivable | Asset |
| 1250 | Deferred Contract Costs | Asset |
| 1500 | Capitalized Software | Asset |
| 2000 | Accounts Payable | Liability |
| 2200 | Deferred Revenue — Subscriptions | Liability |
| 3000 | Common Stock | Equity |
| 3100 | Retained Earnings | Equity |
| 4000 | Subscription Revenue — MRR | Revenue |
| 4100 | Professional Services Revenue | Revenue |
| 5000 | Hosting & Infrastructure (COGS) | COGS |
| 5100 | Third-Party API Costs (COGS) | COGS |
| 6000 | Salaries — Engineering | Operating Expense |
| 6200 | Sales & Marketing | Operating Expense |
Example 2 — Retail / e-commerce
Physical goods businesses need inventory tracked as an asset, sales tax as a liability (money you owe, not revenue), a returns contra-revenue account, and merchant processing fees called out separately from COGS.
| Code | Account Name | Type |
|---|---|---|
| 1000 | Cash — Merchant Account | Asset |
| 1200 | Accounts Receivable | Asset |
| 1300 | Inventory — Finished Goods | Asset |
| 1310 | Inventory — Raw Materials | Asset |
| 2000 | Accounts Payable | Liability |
| 2100 | Sales Tax Payable | Liability |
| 2300 | Gift Card Liability | Liability |
| 3100 | Retained Earnings | Equity |
| 4000 | Product Sales | Revenue |
| 4900 | Returns & Allowances (contra) | Revenue |
| 5000 | Cost of Goods Sold | COGS |
| 5100 | Inbound Freight | COGS |
| 5200 | Merchant Processing Fees | COGS |
| 6000 | Rent — Storefront | Operating Expense |
Example 3 — Professional services
Services firms often bill retainers upfront (a liability until earned), carry in-flight work as WIP, and pass through reimbursable expenses as a distinct revenue line so gross-margin math stays clean.
| Code | Account Name | Type |
|---|---|---|
| 1000 | Cash — Operating | Asset |
| 1150 | Undeposited Funds | Asset |
| 1200 | Accounts Receivable | Asset |
| 1400 | Work in Progress (WIP) | Asset |
| 2000 | Accounts Payable | Liability |
| 2100 | Client Retainers (unearned) | Liability |
| 2200 | Payroll Liabilities | Liability |
| 3100 | Retained Earnings | Equity |
| 4000 | Consulting Revenue | Revenue |
| 4100 | Reimbursable Expenses Revenue | Revenue |
| 5000 | Subcontractor Costs (COGS) | COGS |
| 6000 | Salaries — Delivery Team | Operating Expense |
| 6300 | Software Subscriptions | Operating Expense |
Hierarchy and multi-currency
AnanOS stores accounts as a hierarchy — parent accounts roll up child balances automatically on the Trial Balance and P&L, so you can have "6000 — Salaries" as a parent with "6010 — Engineering", "6020 — Sales", and "6030 — G&A" as children without duplicating logic in every report. Each account can also carry its own base currency; foreign-denominated activity posts at the transaction rate, and revaluation entries adjust the closing balance to your reporting currency.
Set this up in AnanOS
Every new AnanOS workspace ships with a starter chart of accounts you can customize. Add accounts, nest them into parents, and start posting journal entries against a live ledger in minutes.