
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:
- Create the journal entry
- Click Memorize
- Set the recurrence (monthly, quarterly, etc.)
- 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:
- Configure a journal entry approval workflow (SuiteFlow)
- Set approval rules — all entries, entries over a threshold, specific accounts
- Entries route to the designated approver before posting
- 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:
- Lock A/R: Prevents new receivables transactions in the period
- Lock A/P: Prevents new payables transactions in the period
- 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 teamReporting 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
Need help with your NetSuite project?
Whether it's integrations, customization, or support — let's talk about how we can help.

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.
Get More Insights Like This
Join our newsletter for weekly tips, tutorials, and exclusive content delivered to your inbox.
Related Articles
NetSuite Accounting Services: Bookkeeping & Finance
Guide to NetSuite accounting services. Outsourced bookkeeping, managed accounting, month-end close, and how to find the right NetSuite accounting partner.
NetSuite AP Automation: Cut Manual Invoice Work
Automate NetSuite accounts payable with approval routing, three-way matching, and vendor bill workflows. Best AP add-ons compared.
NetSuite Advanced Financials: Features & Setup (2026)
NetSuite Advanced Financials guide. Statistical accounts, financial indicators, amortization, multi-book accounting, and when you need it.
Gustavo Canete