The Chart of Accounts is the foundation of everything in NetSuite. Get it right and your reports are clean, your consolidation works, and your finance team can actually answer management questions without running three reports and a spreadsheet.
Get it wrong and you spend the next two years adding accounts for every new product line, department, or region — until the COA is so bloated that nobody understands what posts where, and month-end takes twice as long as it should.
After 15+ years configuring NetSuite for Distribution companies, I have built a free AI Skill file that turns Claude or ChatGPT into a senior NetSuite consultant for Chart of Accounts design — covering segmentation strategy, account numbering, distribution-specific accounts, and the decisions that are very hard to reverse after go-live.
Download the Free NetSuite COA Design AI Skill →
The Biggest COA Mistake in Distribution Companies
Before we get into setup, here is the mistake I see most often — and it is the one that creates the most long-term pain:
Using GL accounts instead of segments to split the same type of activity.
Example: A distribution company has three product lines — Industrial, Consumer, and Healthcare. They create three sets of revenue accounts:
- 4100 Industrial Sales Revenue
- 4110 Consumer Sales Revenue
- 4120 Healthcare Sales Revenue
Then they add a new product line. Then a new region. Then a new channel. Two years later they have 47 revenue accounts, reporting is a nightmare, and their accountant spends three days every month reconciling the COA to management reports.
The correct approach: one revenue account (4100 Sales Revenue), split by Class (where Class = product line). NetSuite then reports revenue by product line using the Class dimension — without multiplying accounts.
This is the core segmentation decision. Everything else in COA design flows from getting this right.
Classes, Departments, and Locations — What Each One Is For
NetSuite has three segmentation dimensions. Most Distribution companies use all three but mix them up — which means they can never report across all three at the same time.
Classes — best used for product lines, revenue streams, or business types. The financial dimension that answers “what kind of activity is this?”
Departments — best used for organisational units. Sales, Operations, Finance, Warehouse. The structural dimension that answers “which team owns this?”
Locations — best used for physical locations. Warehouses, distribution centres, retail sites, regions. The geographical dimension that answers “where did this happen?”
The rule: each dimension should mean exactly one thing. If you use Departments for both organisational teams AND product lines, you can never report by both at the same time — because a transaction can only have one Department value.
For a typical US distribution company this translates to:
| Segment | What It Represents |
|---|---|
| Class | Product line (Industrial / Consumer / Healthcare) |
| Department | Team (Sales / Operations / Finance / Warehouse) |
| Location | Warehouse or region (East / West / Central) |
Every transaction carries all three dimensions. Every report can filter or group by any combination of them.
Recommended Account Number Ranges for Distribution
Here is the numbering structure I recommend for Distribution companies in NetSuite. It is logical, scalable, and leaves room in every range for growth.
1000–1999 Assets 1100 — Bank Accounts (one per physical bank account) 1200 — Accounts Receivable (AR Control — one per currency if multi-currency) 1300 — Inventory (Finished Goods, Goods in Transit, Returns) 1400 — Prepayments and Vendor Deposits 1500 — Fixed Assets
2000–2999 Liabilities 2100 — Accounts Payable (AP Control) 2200 — Goods Received Not Invoiced (GRNI) — critical for Distribution 2300 — Accrued Liabilities 2400 — Tax Liabilities (VAT / Sales Tax) 2500 — Intercompany Payable (one per IC relationship if multi-entity)
3000–3999 Equity 3100 — Share Capital / Paid-In Capital 3200 — Retained Earnings 3300 — Currency Translation Adjustment (CTA) — required if multi-currency consolidation
4000–4999 Revenue 4100 — Product Sales Revenue 4200 — Freight Charged to Customers 4300 — Supplier Rebates and Volume Bonuses 4400 — Intercompany Revenue (if multi-entity)
5000–5999 Cost of Goods Sold 5100 — Product Cost (standard or actual) 5200 — Freight In and Landed Costs 5300 — Import Duty 5400 — Supplier Rebate Offset 5500 — Intercompany COGS (if multi-entity)
6000–6999 Operating Expenses 6100 — Salaries and Wages 6200 — Rent and Facilities 6300 — Sales and Marketing 6400 — IT and Systems 6500 — Professional Fees 6600 — Bank Charges and Realised FX Loss
7000–7999 Other Income and Expense 7100 — FX Gain / Loss (Realised) 7200 — Interest Income / Expense
Distribution-Specific Accounts You Must Include
These accounts are often missed in generic NetSuite setups and cause reporting or reconciliation problems within months of go-live.
GRNI — Goods Received Not Invoiced (Account 2200) This account posts when an Item Receipt is saved and clears when the Vendor Bill is matched to that receipt. Without it, your AP and inventory balances are wrong from day one. Essential for any Distribution company running a proper 3-way match.
Goods in Transit (Account 1300 range) For imported stock that has shipped from the supplier but has not yet arrived at your warehouse. Without this account, inventory appears to drop when goods ship and reappear when they arrive — which is not useful for anyone managing stock levels.
Landed Cost Accrual If you use estimated landed costs before the actual freight and duty invoices arrive, you need an accrual account to hold the estimated amount until the real bill posts.
Intercompany Receivable / Payable (Accounts 1xxx / 2500 range) If you run multiple subsidiaries, every IC relationship needs a mirrored pair — IC Receivable on one side, IC Payable on the other. These must be set up before any IC transactions are posted.
How to Restructure an Existing COA Without Breaking History
If you are already live on NetSuite and the COA needs fixing, here is the correct approach:
- Build the target COA structure in a spreadsheet first — map every old account to its new equivalent
- Run parallel reporting on both old and new structures to confirm they reconcile before making changes
- Make accounts inactive (do not delete them — historical transactions must remain accessible)
- Create new accounts with the correct numbering and naming
- Use reclassification journal entries to move open balances to new accounts
- Do this at a year-end or quarter-end — never mid-month
The one exception: do not reclassify COGS accounts mid-year if you are running standard or average costing. The impact on inventory valuation requires a full revaluation process. Do it at year-end.
Validation: How to Know If Your COA Is Right
Before go-live, run these checks on your test environment:
✅ A test transaction posts to the correct account AND correct segment (Class, Dept, Location)
✅ A consolidated P&L report runs across all subsidiaries and produces correct totals
✅ Trial Balance is in balance after test transactions
✅ A report filtered by Class shows correct breakdown by product line
✅ A report filtered by Department shows correct team breakdown
✅ GRNI balance clears to zero when a test Vendor Bill is matched to a test Item Receipt
✅ IC accounts on both subsidiaries mirror each other exactly
Free AI Skill Download — NetSuite Chart of Accounts Design {#download}
The COA Design AI Skill turns Claude or ChatGPT into a senior NetSuite consultant for account structure decisions. Add it to a Claude Project or ChatGPT Custom GPT and it will:
- Ask about your reporting requirements before recommending anything
- Help you decide where to use segments vs. new accounts
- Recommend an account numbering structure for Distribution
- Cover the distribution-specific accounts you cannot afford to miss
- Walk you through restructuring if you are already live
Download NetSuite COA Design AI Skill →
(Free download. No email required. Built from real implementation experience.)
Need Expert Help With Your NetSuite COA?
Whether you are designing from scratch or untangling an existing chart of accounts that is causing reporting problems — that is exactly the kind of work we do.
LetAutomate Solutions LLC provides:
🔹 NetSuite COA Design and Restructuring — build a structure that serves your business for the next 5 years
🔹 NetSuite Health Checks — audit your current configuration and reporting setup
🔹 NetSuite Rescue Projects — fix what is broken and document what should have been done
🔹 AI Business Automation (BAI) — automate account coding and transaction workflows
Based in the US. Working with Distribution companies across North America and internationally.
