GUIDE · COA01

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.

CodeAccount NameType
1000Cash — OperatingAsset
1200Accounts ReceivableAsset
1250Deferred Contract CostsAsset
1500Capitalized SoftwareAsset
2000Accounts PayableLiability
2200Deferred Revenue — SubscriptionsLiability
3000Common StockEquity
3100Retained EarningsEquity
4000Subscription Revenue — MRRRevenue
4100Professional Services RevenueRevenue
5000Hosting & Infrastructure (COGS)COGS
5100Third-Party API Costs (COGS)COGS
6000Salaries — EngineeringOperating Expense
6200Sales & MarketingOperating 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.

CodeAccount NameType
1000Cash — Merchant AccountAsset
1200Accounts ReceivableAsset
1300Inventory — Finished GoodsAsset
1310Inventory — Raw MaterialsAsset
2000Accounts PayableLiability
2100Sales Tax PayableLiability
2300Gift Card LiabilityLiability
3100Retained EarningsEquity
4000Product SalesRevenue
4900Returns & Allowances (contra)Revenue
5000Cost of Goods SoldCOGS
5100Inbound FreightCOGS
5200Merchant Processing FeesCOGS
6000Rent — StorefrontOperating 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.

CodeAccount NameType
1000Cash — OperatingAsset
1150Undeposited FundsAsset
1200Accounts ReceivableAsset
1400Work in Progress (WIP)Asset
2000Accounts PayableLiability
2100Client Retainers (unearned)Liability
2200Payroll LiabilitiesLiability
3100Retained EarningsEquity
4000Consulting RevenueRevenue
4100Reimbursable Expenses RevenueRevenue
5000Subcontractor Costs (COGS)COGS
6000Salaries — Delivery TeamOperating Expense
6300Software SubscriptionsOperating 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.