NewNetSuite 2026.1 — What's new

NetSuite General Ledger: Chart of Accounts & GL Guide (2026)

Guide to the NetSuite General Ledger — chart of accounts design, journal entries, period close, reporting dimensions, and GL configuration best practices.

9 min read
Celigo Partner · NetSuite Experts150+ Projects Delivered10+ Years Experience
NetSuite General Ledger: Chart of Accounts & GL Guide (2026)

NetSuite General Ledger: the foundation everything else sits on

The general ledger is the most boring and most important part of any ERP system. Every transaction in NetSuite — sales orders, vendor bills, payroll, inventory movements, expense reports — ultimately posts to the GL. If the GL is well-structured, your financial reporting is clean, your audits are straightforward, and your analysis is meaningful. If it's a mess, everything downstream suffers.

TL;DR: NetSuite's General Ledger uses a multi-dimensional accounting model where the chart of accounts handles what type of transaction it is (revenue, expense, asset, liability), while segments like Department, Location, and Class handle where and why. This means you need fewer GL accounts than traditional systems — no "Marketing Salaries - NY" account when you can post to Salaries + Marketing department + New York location. The key to a clean GL is designing the chart of accounts and segments correctly upfront, and resisting the urge to create an account for every reporting need.


The multi-segment model

Traditional accounting systems use a segmented account number — something like 4100-200-01 where each segment represents a different dimension (account-department-location). This approach requires either very long account codes or a proliferation of accounts.

NetSuite takes a different approach. The GL has separate, independent dimensions:

  • Account: The core chart of accounts (Revenue, COGS, Salaries, Rent, Cash, AR, AP, etc.)
  • Department: Organizational unit (Marketing, Engineering, Sales, Support)
  • Class: Flexible classification (Product Line, Business Unit, Channel)
  • Location: Physical or logical location (offices, warehouses, regions)

When a transaction posts, it records all dimensions independently. A salary expense posts as:

  • Account: 6100 – Salaries & Wages
  • Department: Engineering
  • Class: Product Development
  • Location: Austin Office

You can then report on any combination: all salaries by department, engineering costs by location, product development expenses across all locations. This flexibility comes from having independent dimensions, not from creating hundreds of accounts.

Why this matters

A traditional system might need:

  • 6100 – Salaries – Marketing – NY
  • 6101 – Salaries – Marketing – LA
  • 6102 – Salaries – Engineering – NY
  • 6103 – Salaries – Engineering – LA
  • ...

That's an exponential explosion of accounts. NetSuite needs one Salaries account plus the department and location dimensions. Your chart of accounts stays clean, your trial balance is readable, and adding a new department or location doesn't require creating dozens of new accounts.


Designing the chart of accounts

Account types

NetSuite uses standard account types that determine balance sheet vs. income statement classification:

Balance Sheet:

  • Bank
  • Accounts Receivable
  • Other Current Asset
  • Fixed Asset
  • Other Asset
  • Accounts Payable
  • Credit Card
  • Other Current Liability
  • Long Term Liability
  • Equity

Income Statement:

  • Income
  • Cost of Goods Sold
  • Expense
  • Other Income
  • Other Expense

Special:

  • Non-Posting (statistical accounts)

Account numbering

NetSuite supports account numbers up to 60 characters, but keep them simple:

  • 1000-1999: Assets
  • 2000-2999: Liabilities
  • 3000-3999: Equity
  • 4000-4999: Revenue
  • 5000-5999: Cost of Goods Sold
  • 6000-6999: Operating Expenses
  • 7000-7999: Other Income/Expense
  • 8000-8999: Taxes

Leave gaps between account numbers for future additions. If your current expense accounts run 6000–6050, don't start the next one at 6051 — use 6100, 6200, etc. to leave room for related accounts.

Sub-accounts

NetSuite supports parent-child account hierarchies. For example:

  • 6000 – Payroll Expenses (parent)
    • 6010 – Salaries & Wages
    • 6020 – Payroll Taxes
    • 6030 – Employee Benefits
    • 6040 – Workers' Compensation

Sub-accounts roll up to the parent on financial reports. Use them for reporting detail within a category, but don't go deeper than 2-3 levels — deeply nested accounts become hard to manage and report on.

How many accounts is too many?

There's no magic number, but these are reasonable ranges:

  • Small company (under $10M revenue): 50–100 accounts
  • Mid-market ($10M–$100M): 100–300 accounts
  • Enterprise (over $100M): 300–500 accounts

If you have more than 500 accounts, you probably have accounts that should be dimensions instead. "Travel – Sales" and "Travel – Marketing" should be one "Travel" account with department classification, not two accounts.


Journal entries

Manual journal entries

Navigate to Transactions > Financial > Make Journal Entries to create manual journal entries.

Every journal entry requires:

  • Date: the posting date
  • Period: the accounting period (auto-populated from date)
  • Subsidiary: for OneWorld companies
  • Lines: at minimum two lines (debit and credit) that balance to zero

Each line specifies the account, debit or credit amount, and the optional dimensions (department, location, class, entity, memo).

When to use journal entries

Journal entries are appropriate for:

  • Adjusting entries: accruals, deferrals, reclassifications
  • Non-transactional entries: depreciation, amortization, bank fee recording
  • Correcting entries: fixing misclassified transactions
  • Intercompany entries: entries that affect multiple subsidiaries

They are not appropriate for:

  • Recording revenue (use invoices/cash sales)
  • Recording expenses (use vendor bills/expense reports)
  • Inventory adjustments (use inventory adjustment records)

Using the correct transaction type ensures proper subledger updates. A journal entry that credits revenue doesn't update the AR subledger — an invoice does.

Recurring journal entries

For entries that repeat on a schedule (monthly depreciation, rent accruals, standard allocations), use memorized transactions:

  1. Create the journal entry
  2. Click Memorize
  3. Set the recurrence (monthly, quarterly, etc.)
  4. Choose auto-post or save as pending for review

This eliminates the manual creation of predictable entries each period.

Approval workflows

For companies that require journal entry approval:

  1. Configure a journal entry approval workflow (SuiteFlow)
  2. Set approval rules — all entries, entries over a threshold, specific accounts
  3. Entries route to the designated approver before posting
  4. Approved entries post to the GL; rejected entries return to the preparer

This is particularly important for entries that affect revenue, intercompany balances, or executive compensation — areas where auditors expect controls.


Period management

Accounting periods

NetSuite uses named accounting periods that you define:

  • Standard: 12 monthly periods per fiscal year
  • 13-period: some companies use a 4-4-5 or 13-period calendar
  • Custom periods: any period structure you need

Navigate to Setup > Accounting > Manage G/L > Manage Accounting Periods to define your periods.

Period close

Closing a period prevents new transactions from posting to that period. The close process:

  1. Lock A/R: Prevents new receivables transactions in the period
  2. Lock A/P: Prevents new payables transactions in the period
  3. Lock All: Prevents all new transactions, then Close the period to finalize

You can close periods individually or in sequence. Once closed, only users with the "Allow Non-G/L Changes" or "Override Period Restrictions" permission can modify transactions in that period.

Year-end close

NetSuite handles year-end closing automatically:

  • Income and expense account balances are rolled into Retained Earnings
  • Balance sheet accounts carry forward
  • No manual closing entry is needed — NetSuite calculates the net income/loss and includes it in Retained Earnings on the new year's balance sheet

If your auditors require adjusting entries after the year-end close, you can reopen the period, post the adjustments, and re-close.

Need help designing your chart of accounts or streamlining period close?

We configure GL structures, reporting dimensions, and close workflows for mid-market NetSuite implementations. Get it right from the start.

Talk to our NetSuite team

Reporting from the GL

Standard financial reports

NetSuite includes built-in financial reports:

  • Balance Sheet: standard or comparative
  • Income Statement / P&L: by period, YTD, comparative
  • Cash Flow Statement: indirect or direct method
  • Trial Balance: detailed or summary

All reports can be filtered and grouped by any dimension — department, location, class, subsidiary.

Financial Report Builder

For custom financial reports, use the Financial Report Builder (Reports > New Financial Report):

  • Drag and drop account rows
  • Add calculated rows (subtotals, percentages, variances)
  • Add columns by period, dimension, or comparison (budget, prior year, prior period)
  • Apply formatting and conditional highlighting

This builds the financial statements your CFO and board want to see, without exporting to Excel.

Saved searches on GL data

For ad-hoc GL analysis, saved searches query the transaction table directly:

  • Filter by account, period, department, entity, amount
  • Summarize by any combination of dimensions
  • Export to CSV or connect to dashboards

Saved searches are more flexible than financial reports for non-standard analysis — "show me all journal entries over $10,000 posted in the last week" or "total expenses by vendor by department."


Best practices

Don't create accounts for reporting. If you find yourself creating "Salary – Engineering" and "Salary – Sales," stop. Use one Salary account with the Department dimension. Accounts are for the type of transaction; dimensions are for the organizational context.

Standardize department and class hierarchies. If every subsidiary has a different department structure, consolidated reporting becomes painful. Agree on a common hierarchy across the organization.

Lock closed periods promptly. An open period is an invitation for backposted transactions that distort comparative reporting. Close periods within 5 business days of completing the reconciliation.

Maintain a GL account request process. Don't let anyone create new GL accounts without finance approval. Every new account should have a clear purpose that can't be served by an existing account plus a dimension.

Review inactive accounts annually. GL accounts accumulate over time. Review the chart of accounts annually and inactivate accounts that haven't been used — they clutter reports and create confusion.

Document your segment definitions. What does "Class" represent in your company? If it's product line, document that. If it's channel, document that. Future employees and auditors need to understand your dimensional model.


Frequently Asked Questions

Share:

Need help with your NetSuite project?

Whether it's integrations, customization, or support — let's talk about how we can help.

We respond within 24 hours.

Gustavo Canete

Gustavo Canete

Co-Founder & Development Director

Co-founder and Development Director at BrokenRubik overseeing technical excellence and development operations. 12+ years of experience leading NetSuite development teams and delivering complex enterprise solutions.

12+ years experienceOracle NetSuite Certified +1
NetSuite DevelopmentSuiteCommerce AdvancedTeam ManagementTechnical Leadership+2 more

Get More Insights Like This

Join our newsletter for weekly tips, tutorials, and exclusive content delivered to your inbox.

Get in Touch