Section G.1

GL Design & Segmentation

Strategic framework for designing a Chart of Accounts and segmentation structure that supports financial reporting, operational analysis, and future growth.

Understanding NetSuite's GL Architecture

NetSuite's GL architecture combines a traditional Chart of Accounts with dimensional segmentation. Unlike legacy systems that embed all classifications in the account number itself, NetSuite separates the "what" (account) from the "who/where/why" (segments).

The Account + Segment Model

Traditional GL (Embedded):   4100-01-NYC-MFG
                             │    │   │   └── Department
                             │    │   └────── Location
                             │    └────────── Division
                             └─────────────── Account

NetSuite GL (Dimensional):
┌─────────────────────────────────────────────────────────────────┐
│ Account: 4100 - Product Revenue                                 │
│ + Subsidiary: US Operations                                     │
│ + Department: Sales                                             │
│ + Class: Hardware                                               │
│ + Location: New York                                            │
│ + Custom Segment: Region = Northeast                            │
└─────────────────────────────────────────────────────────────────┘

Result: Single account, infinitely sliceable by any dimension
        No account explosion, simpler maintenance

Benefits of Dimensional Segmentation

Benefit Description Example
Reduced Account Count Fewer accounts to maintain 1 revenue account vs 50 per product line
Flexible Reporting Slice data any way needed P&L by department, by class, or both
Future-Proof Add new dimensions without COA changes New location = new segment value, not new accounts
Consistent Entry Users select segments on transactions Dropdown selection vs memorizing account numbers

NetSuite's Standard Segments

NetSuite provides four standard classification segments, each with specific characteristics and use cases.

Subsidiary (OneWorld)

CharacteristicDescription
PurposeLegal entity identification
HierarchyParent-child for consolidation
CurrencyBase currency per subsidiary
RequiredAlways required on transactions
Typical UseLegal entities, business units for statutory reporting

Department

CharacteristicDescription
PurposeOrganizational unit classification
HierarchySupports parent-child nesting
RestrictionsCan be restricted to subsidiaries
Typical UseCost centers, organizational units, functional areas

Class

CharacteristicDescription
PurposeBusiness categorization
HierarchySupports parent-child nesting
FlexibilityMost flexible segment
Typical UseProduct lines, business lines, service types, projects

Location

CharacteristicDescription
PurposePhysical or logical location
Inventory LinkTied to inventory tracking
RequiredRequired for inventory transactions
Typical UseWarehouses, stores, offices, regions
â„šī¸ Segment Restriction to Subsidiary
In OneWorld, Department, Class, and Location can be restricted to specific subsidiaries. This controls which segment values appear based on the selected subsidiary, preventing invalid combinations like a "Paris Office" location appearing for a US subsidiary.

Custom Segments

When four standard segments aren't enough, NetSuite supports custom segments for additional classification dimensions.

Custom Segment Types

TypeValues SourceUse Case
Custom List Static list of values Region, Channel, Brand
Custom Record Custom record instances Projects, Grants, Contracts
Standard Record Existing NetSuite records Customer, Employee, Item

Creating Custom Segments

Customization â€ē Lists, Records, & Fields â€ē Custom Segments â€ē New

Key Configuration:
┌─────────────────────────────────────────────────────────────────┐
│ Label: Region                                                   │
│ ID: _region (system prefixes with cseg)                        │
│ Record Type: Custom List                                        │
│ Description: Geographic region for sales analysis              │
│                                                                 │
│ Filtering:                                                      │
│   ☑ Filter By: Subsidiary                                       │
│   ☑ Filter By: Location                                         │
│                                                                 │
│ Apply To:                                                       │
│   ☑ GL Impact Transactions                                      │
│   ☑ Non-GL Transactions (quotes, opportunities)                │
│                                                                 │
│ Reporting:                                                      │
│   ☑ Show in Financial Statements                                │
│   ☑ Include in Saved Searches                                   │
└─────────────────────────────────────────────────────────────────┘
âš ī¸ Custom Segment Limits
NetSuite limits the number of custom segments. Check your account's limit (typically 5-15 depending on edition). Plan segment usage carefully - once created and used, custom segments cannot be deleted.

Segmentation Design Principles

1. Start with Reporting Requirements

Design segments based on how management needs to view financial data:

  • What dimensions do executives need for decision-making?
  • What statutory/regulatory reports are required?
  • What operational metrics need tracking?
  • What budget structures exist?

2. Assign Purpose to Each Segment

Recommended Segment Assignment:

Subsidiary → Legal Entity
  "Who is the legal party to this transaction?"
  Example: US Inc., UK Ltd., Canada Corp.

Department → Cost Center / Organizational Unit
  "Who is responsible for this cost/revenue?"
  Example: Sales, Marketing, Engineering, Finance

Class → Product Line / Service Line
  "What product or service is this related to?"
  Example: Hardware, Software, Services, Support

Location → Physical/Operational Location
  "Where did this transaction occur?"
  Example: NYC Warehouse, London Office, Online

Custom Segment → Any Other Dimension
  "What else do we need to track?"
  Example: Region, Channel, Project, Grant

3. Design for Hierarchy

Department Hierarchy Example:

Department
├── Operations
│   ├── Manufacturing
│   │   ├── Assembly
│   │   └── Quality Control
│   └── Warehouse
│       ├── Receiving
│       └── Shipping
├── Sales
│   ├── Direct Sales
│   │   ├── Enterprise
│   │   └── SMB
│   └── Channel Sales
└── G&A
    ├── Finance
    ├── HR
    └── IT

Benefit: Report at any level (Operations total, or drill to Assembly)

Segment Application on Transactions

Header vs Line Level

LevelWhen UsedExample
Header OnlyAll lines share same segmentSingle-department purchase order
Line LevelLines can have different segmentsSales order with items for different classes
Header Default to LineHeader sets default, lines can overrideMost flexible approach

Making Segments Required

Path: Setup > Accounting > Accounting Preferences

Configuration Options:
┌─────────────────────────────────────────────────────────────────┐
│ Department:                                                     │
│   ☑ Mandatory on all transactions                               │
│   ○ Mandatory on specific transactions only                     │
│   ○ Optional                                                    │
│                                                                 │
│ Class:                                                          │
│   ○ Mandatory on all transactions                               │
│   ☑ Mandatory on specific transactions only                     │
│      → Check: Invoice, Bill, Journal Entry                      │
│   ○ Optional                                                    │
│                                                                 │
│ Location:                                                       │
│   Follows inventory settings (mandatory for inventory items)    │
└─────────────────────────────────────────────────────────────────┘

Tip: Start optional during implementation, make mandatory at go-live
     after users are trained.

Default Segment Values

NetSuite can default segment values from multiple sources:

SourcePriorityExample
Item RecordHighest for item linesItem "Widget" defaults Class = Hardware
Entity RecordHighCustomer defaults Department = Channel Sales
Employee/UserMediumUser's default department
Transaction FormLowerForm template defaults
PreferenceLowestCompany-wide defaults

Common Segmentation Patterns by Industry

Manufacturing

Subsidiary: Legal entities
Department: Production, Quality, Engineering, Sales, G&A
Class: Product family (Widgets, Gadgets, Components)
Location: Plants, Distribution centers
Custom: Production Line, Shift

Software/SaaS

Subsidiary: Legal entities
Department: R&D, Sales, Customer Success, G&A
Class: Product (Platform, Add-ons, Services)
Location: Office locations (often minimal)
Custom: ARR Segment, Customer Tier

Professional Services

Subsidiary: Legal entities, Practice groups
Department: Service line (Consulting, Audit, Tax)
Class: Industry vertical (Healthcare, Tech, Financial)
Location: Office locations
Custom: Project, Engagement Partner

Nonprofit

Subsidiary: Legal entities, Chapters
Department: Programs, Fundraising, G&A
Class: Program/Fund (restricted vs unrestricted)
Location: Service locations
Custom: Grant, Campaign, Donor restriction

Segmentation Design Checklist

Section G.2

Chart of Accounts

Account types, numbering conventions, hierarchies, and best practices for COA design in NetSuite.

NetSuite Account Types

NetSuite provides predefined account types that control behavior on financial statements and transactions.

Balance Sheet Accounts

TypeNormal BalanceFinancial StatementExamples
BankDebitAssets (Current)Operating Checking, Payroll Account
Accounts ReceivableDebitAssets (Current)Trade AR (system-controlled)
Other Current AssetDebitAssets (Current)Prepaid Expenses, Deposits
Fixed AssetDebitAssets (Non-Current)Equipment, Vehicles, Buildings
Accumulated DepreciationCreditAssets (Contra)Accum Depr - Equipment
Accounts PayableCreditLiabilities (Current)Trade AP (system-controlled)
Credit CardCreditLiabilities (Current)Corporate Amex, Visa
Other Current LiabilityCreditLiabilities (Current)Accrued Expenses, Sales Tax Payable
Long Term LiabilityCreditLiabilities (Non-Current)Notes Payable, Mortgage
EquityCreditEquityCommon Stock, Retained Earnings

Income Statement Accounts

TypeNormal BalanceFinancial StatementExamples
IncomeCreditRevenueProduct Sales, Service Revenue
Other IncomeCreditOther IncomeInterest Income, Gain on Sale
Cost of Goods SoldDebitCOGSProduct COGS, Direct Labor
ExpenseDebitOperating ExpensesRent, Utilities, Salaries
Other ExpenseDebitOther ExpensesInterest Expense, Loss on Disposal

Account Numbering Best Practices

Standard Numbering Scheme

Common 4-5 Digit Numbering:

1XXX - Assets
  1000-1099: Cash & Bank
  1100-1199: Accounts Receivable
  1200-1299: Other Current Assets
  1300-1499: Fixed Assets
  1500-1999: Other Assets

2XXX - Liabilities
  2000-2099: Accounts Payable
  2100-2299: Other Current Liabilities
  2300-2999: Long Term Liabilities

3XXX - Equity
  3000-3099: Capital Stock
  3100-3199: Retained Earnings
  3200-3999: Other Equity

4XXX - Revenue
  4000-4099: Product Revenue
  4100-4199: Service Revenue
  4200-4999: Other Revenue

5XXX - Cost of Goods Sold
  5000-5099: Product COGS
  5100-5199: Direct Labor
  5200-5999: Other Direct Costs

6XXX-8XXX - Operating Expenses
  6000-6999: Selling Expenses
  7000-7999: G&A Expenses
  8000-8999: Other Operating

9XXX - Other Income/Expense
  9000-9099: Interest Income/Expense
  9100-9199: Gains/Losses
  9200-9999: Tax/Extraordinary
💡 Leave Gaps for Growth
Leave numbering gaps between accounts (e.g., 1000, 1010, 1020) to allow insertion of new accounts while maintaining logical ordering.

Account Hierarchies (Parent/Child)

NetSuite supports account hierarchies for roll-up reporting. Parent accounts are "header" accounts that sum their children.

Hierarchy Example

Account Hierarchy:

1000 - Cash and Cash Equivalents (Header - no posting)
├── 1010 - Operating Checking (Posting)
├── 1020 - Payroll Checking (Posting)
├── 1030 - Money Market (Posting)
└── 1040 - Petty Cash (Posting)

6000 - Salaries and Wages (Header - no posting)
├── 6010 - Salaries - Exempt (Posting)
├── 6020 - Wages - Non-Exempt (Posting)
├── 6030 - Bonuses (Posting)
├── 6040 - Commissions (Posting)
└── 6050 - Overtime (Posting)

Reporting Impact:
  Balance Sheet shows "1000 - Cash and Cash Equivalents: $500,000"
  Drill-down shows individual account balances
â„šī¸ Header Account Behavior
In NetSuite, parent accounts can be configured as "Summary" (no direct posting) or allow posting. Best practice: Make parent accounts summary-only to force transactions to post to specific child accounts. This ensures consistent detail in reporting.

Subsidiary Account Restrictions (OneWorld)

In OneWorld, accounts are shared across all subsidiaries by default. You can restrict accounts to specific subsidiaries.

Restriction Scenarios

ScenarioConfigurationExample
Shared AccountAvailable to all subsidiaries4000 - Product Revenue (all subs)
Restricted AccountLimited to specific subsidiary(ies)6250 - UK VAT Expense (UK only)
Elimination AccountUsed only for consolidation3800 - Elimination (Parent only)
Path: Lists > Accounting > Accounts > Edit

Subsidiary Restrictions:
┌─────────────────────────────────────────────────────────────────┐
│ Available To:                                                   │
│   ☑ Parent Company                                              │
│   ☑ US Operations                                               │
│   ☐ UK Operations (restricted - has local equivalent)          │
│   ☑ Canada Operations                                           │
│                                                                 │
│ Note: Unchecked subsidiaries cannot post to this account        │
└─────────────────────────────────────────────────────────────────┘

Special Purpose Accounts

System-Controlled Accounts

Some accounts are managed by NetSuite and require special setup:

AccountPurposeConfiguration
Accounts ReceivableCustomer balances from invoicesOne AR account required; can have multiple for different transaction types
Accounts PayableVendor balances from billsOne AP account required; can have multiple
Retained EarningsYear-end close accumulationMust exist in COA; system posts at year-end close
Undeposited FundsPayments received, not yet depositedUsed when grouping payments into deposits
Currency RoundingFX rounding differencesAuto-created for multi-currency

Inventory Accounts

Items with inventory tracking require linked GL accounts:

Item → Accounting Tab Accounts:

Asset Account: 1300 - Inventory Asset
  Debited: When inventory received (PO receipt, production completion)
  Credited: When inventory sold (invoice, consumption)

COGS Account: 5000 - Cost of Goods Sold
  Debited: When inventory sold
  Credited: (offset to Asset above)

Income Account: 4000 - Product Revenue
  Credited: When inventory sold (invoice)
  Debited: (offset to AR)

Expense Account: (for non-inventory items)
  Debited: When purchased

COA Design Checklist

Section G.3

GL Impact by Transaction

Understanding how each transaction type affects the General Ledger.

Sales Cycle GL Impact

Invoice

Transaction: Invoice for $1,000 product sale + $80 tax
┌────────────────────────────────────────────────────────────────┐
│ DR: Accounts Receivable     $1,080                             │
│     CR: Product Revenue              $1,000                    │
│     CR: Sales Tax Payable              $80                     │
│                                                                │
│ If inventory item:                                             │
│ DR: Cost of Goods Sold       $600                              │
│     CR: Inventory                      $600                    │
└────────────────────────────────────────────────────────────────┘

Customer Payment

Transaction: Payment received $1,080
┌────────────────────────────────────────────────────────────────┐
│ DR: Undeposited Funds       $1,080                             │
│     CR: Accounts Receivable          $1,080                    │
│                                                                │
│ After Bank Deposit:                                            │
│ DR: Bank Account            $1,080                             │
│     CR: Undeposited Funds            $1,080                    │
└────────────────────────────────────────────────────────────────┘

Purchase Cycle GL Impact

Vendor Bill

Transaction: Bill for $500 office supplies
┌────────────────────────────────────────────────────────────────┐
│ DR: Office Supplies Expense  $500                              │
│     CR: Accounts Payable               $500                    │
└────────────────────────────────────────────────────────────────┘

Bill Payment

Transaction: Pay vendor $500
┌────────────────────────────────────────────────────────────────┐
│ DR: Accounts Payable         $500                              │
│     CR: Bank Account                   $500                    │
└────────────────────────────────────────────────────────────────┘

Inventory Transactions

Inventory Adjustment (Increase)

Inventory Adjustment - Increase
┌────────────────────────────────────────────────────────────────┐
│ DR: Inventory Asset                    $500.00                 │
│     CR: Inventory Adjustment Account            $500.00        │
└────────────────────────────────────────────────────────────────┘

Inventory Adjustment (Decrease)

Inventory Adjustment - Decrease
┌────────────────────────────────────────────────────────────────┐
│ DR: Inventory Adjustment Account       $500.00                 │
│     CR: Inventory Asset                         $500.00        │
└────────────────────────────────────────────────────────────────┘

Transfer Order (Between Locations)

Transfer Order - Item Fulfillment
┌────────────────────────────────────────────────────────────────┐
│ DR: Inventory In Transit             $1,000.00                 │
│     CR: Inventory Asset (Source)              $1,000.00        │
└────────────────────────────────────────────────────────────────┘

Transfer Order - Item Receipt
┌────────────────────────────────────────────────────────────────┐
│ DR: Inventory Asset (Dest)           $1,000.00                 │
│     CR: Inventory In Transit                  $1,000.00        │
└────────────────────────────────────────────────────────────────┘

Manufacturing Transactions

Assembly Build (Non-WIP)

Assembly Build
┌────────────────────────────────────────────────────────────────┐
│ DR: Finished Goods Inventory         $1,200.00                 │
│     CR: Raw Materials Inventory               $1,200.00        │
└────────────────────────────────────────────────────────────────┘

Work Order Issue (WIP)

Work Order Issue - Material Consumption
┌────────────────────────────────────────────────────────────────┐
│ DR: WIP - Components                   $800.00                 │
│     CR: Raw Materials Inventory                 $800.00        │
└────────────────────────────────────────────────────────────────┘

Work Order Completion (WIP)

Work Order Completion
┌────────────────────────────────────────────────────────────────┐
│ DR: Finished Goods Inventory         $1,200.00                 │
│     CR: WIP - Assemblies                      $1,200.00        │
└────────────────────────────────────────────────────────────────┘

Work Order Close (WIP)

Work Order Close - With Variance
┌────────────────────────────────────────────────────────────────┐
│ DR: WIP - Assemblies (to clear)      $1,200.00                 │
│     CR: WIP - Components (to clear)            $800.00         │
│     CR: WIP Variance                           $400.00         │
└────────────────────────────────────────────────────────────────┘

Banking Transactions

Check

Check - Direct Expense
┌────────────────────────────────────────────────────────────────┐
│ DR: Expense Account                    $500.00                 │
│     CR: Bank Account                            $500.00        │
└────────────────────────────────────────────────────────────────┘

Transfer

Bank Transfer
┌────────────────────────────────────────────────────────────────┐
│ DR: Bank Account (To)               $10,000.00                 │
│     CR: Bank Account (From)                  $10,000.00        │
└────────────────────────────────────────────────────────────────┘

GL Impact Summary Table

TransactionPrimary DebitPrimary Credit
InvoiceAccounts Receivable, COGSRevenue, Inventory
Customer PaymentBank / Undeposited FundsAccounts Receivable
Credit MemoRevenue (contra)Accounts Receivable
Vendor BillExpense / InventoryAccounts Payable
Bill PaymentAccounts PayableBank
Vendor CreditAccounts PayableExpense / Inventory
Journal EntryPer entry linesPer entry lines
Inventory Adjustment (+)Inventory AssetAdjustment Account
Inventory Adjustment (-)Adjustment AccountInventory Asset
Assembly BuildFinished GoodsComponents
Section G.4

Journal Entries

Creating and managing manual journal entries in NetSuite.

Journal Entry Types

TypeUse CaseAccess Path
Journal Entry Standard manual entries Transactions â€ē Financial â€ē Make Journal Entries
Intercompany JE Cross-subsidiary entries Transactions â€ē Financial â€ē Make Intercompany Journal Entries
Statistical JE Non-monetary tracking Requires Statistical Accounts feature
Advanced Intercompany JE Multi-subsidiary with auto-elimination Requires AIJE feature
âš ī¸ Avoid Excessive Manual JEs
If you find yourself making the same journal entry monthly, consider automating it with a Memorized Transaction or investigating why the source transaction isn't posting correctly.

Common Journal Entry Scenarios

Accrued Expense (Month End)

Accrue Unbilled Services - Dec 31
┌────────────────────────────────────────────────────────────────┐
│ DR: Professional Services Expense    $5,000.00                 │
│     CR: Accrued Expenses                      $5,000.00        │
└────────────────────────────────────────────────────────────────┘

Reverse Accrual - Jan 1
┌────────────────────────────────────────────────────────────────┐
│ DR: Accrued Expenses                 $5,000.00                 │
│     CR: Professional Services Expense         $5,000.00        │
└────────────────────────────────────────────────────────────────┘

Prepaid Expense Amortization

Monthly Insurance Amortization
┌────────────────────────────────────────────────────────────────┐
│ DR: Insurance Expense                $1,000.00                 │
│     CR: Prepaid Insurance                     $1,000.00        │
└────────────────────────────────────────────────────────────────┘

Reclassification

Reclass Expense to Correct Department
┌────────────────────────────────────────────────────────────────┐
│ DR: Travel Expense (Marketing Dept)    $500.00                 │
│     CR: Travel Expense (Sales Dept)             $500.00        │
└────────────────────────────────────────────────────────────────┘

Opening Balances

Load Opening Balance Sheet
┌────────────────────────────────────────────────────────────────┐
│ DR: Cash                           $100,000.00                 │
│ DR: Accounts Receivable             $50,000.00                 │
│ DR: Inventory                       $75,000.00                 │
│     CR: Accounts Payable                     $30,000.00        │
│     CR: Retained Earnings                   $195,000.00        │
└────────────────────────────────────────────────────────────────┘

Journal Entry Best Practices

Documentation Standards

  • Memo field: Always describe the purpose (e.g., "Dec 2024 rent accrual")
  • Line memos: Detail each line if multiple purposes
  • Attachments: Attach supporting documentation
  • Name field: Link to customer/vendor if applicable

Approval Workflows

Journal Entry Approval Workflow:

Criteria:
  - Amount > $10,000 OR
  - Contains specific accounts (intercompany, equity)

Routing:
  Level 1: Controller (all JEs meeting criteria)
  Level 2: CFO (if amount > $100,000)

Actions:
  - Approved: JE posts to GL
  - Rejected: Returns to creator with comments
  - Pending Approval: Does not post

Reversing Entries

  • Check "Reversing" box on accrual entries
  • System auto-creates reversal on first day of next period
  • Use for: Month-end accruals, prepaid allocations
  • Do NOT use for: Reclassifications, corrections
âš ī¸ Journal Entry Limitations
Journal entries cannot post to AR or AP accounts directly -- they must go through invoices/bills/payments. Use JEs for non-subledger GL accounts only. Exception: Opening balance JE can load AR/AP during initial implementation.
Section G.5

Multi-Book Accounting

Maintaining multiple sets of books for different accounting standards (GAAP, IFRS, statutory) in a single NetSuite account.

Multi-Book Overview

Multi-Book Accounting allows maintaining separate general ledgers with different accounting treatments while sharing a common transactional backbone.

Primary vs Secondary Books

CharacteristicPrimary BookSecondary Book(s)
PurposeMain operational bookAlternative accounting standards
CurrencySubsidiary base currencyCan differ from primary
TransactionsAll transactions postAutomatic or adjustment-only
ExampleUS GAAP book (USD)IFRS book, Local statutory (EUR)

Common Multi-Book Scenarios

  • GAAP + IFRS: Different revenue recognition, lease accounting
  • GAAP + Tax: Book vs tax depreciation differences
  • GAAP + Local Statutory: Country-specific requirements
  • Management + Statutory: Internal vs external reporting

Configuring Multi-Book

Enabling Multi-Book

Setup â€ē Company â€ē Enable Features â€ē Accounting
Prerequisites:
  - Cannot be disabled after enabling
  - Existing data becomes primary book
  - Plan secondary books before enabling
🚨 Irreversible Feature
Once Multi-Book Accounting is enabled, it cannot be disabled. Plan your secondary books, account mappings, and reporting requirements thoroughly before enabling.

Creating Secondary Books

Setup â€ē Accounting â€ē Accounting Books â€ē New
Configuration:
┌─────────────────────────────────────────────────────────────────┐
│ Name: IFRS Book                                                 │
│ Currency: EUR                                                   │
│ Status: Active                                                  │
│                                                                 │
│ Book Settings:                                                  │
│   ☑ Automated (transactions post automatically)                 │
│   ○ Manual (adjustments only)                                   │
│                                                                 │
│ Accounting Method: Accrual                                      │
│                                                                 │
│ Subsidiaries: (select which subsidiaries use this book)         │
│   ☑ Parent Company                                              │
│   ☑ UK Operations                                               │
│   ☑ Germany GmbH                                                │
└─────────────────────────────────────────────────────────────────┘

Book-Specific Account Mapping

When accounting treatment differs between books, map different accounts:

Example: Revenue Recognition Difference

Transaction: Software License Sale $100,000
             2-year term, paid upfront

Primary Book (GAAP - ASC 606):
  Dr: AR $100,000
  Cr: Deferred Revenue $100,000
  (then recognize $4,167/month over 24 months)

Secondary Book (Cash Basis):
  Dr: Cash $100,000
  Cr: Revenue $100,000
  (recognize immediately when paid)

Configuration:
  Item record → Accounting tab → Book-specific accounts
  Or use adjustment journal entries for secondary book

Book-Specific Adjustments

When automatic posting isn't sufficient, use book-specific journal entries.

Creating Book-Specific Journal Entry

Standard JE posts to: All books (unless overridden)

Book-Specific Adjustment:
┌─────────────────────────────────────────────────────────────────┐
│ Journal Entry                                                   │
│ Accounting Book: IFRS Book (dropdown)                           │
│                                                                 │
│ Lines:                                                          │
│   Dr: Depreciation Expense - IFRS   $5,000                     │
│   Cr: Accumulated Depreciation      $5,000                     │
│                                                                 │
│ Note: This entry ONLY posts to IFRS book                       │
│       Primary book is unaffected                                │
└─────────────────────────────────────────────────────────────────┘

Common Book Differences

TopicGAAP TreatmentIFRS Treatment
Revenue RecognitionASC 606IFRS 15 (similar but differences exist)
LeasesASC 842IFRS 16 (no operating lease for lessees)
InventoryLIFO allowedLIFO prohibited
Development CostsGenerally expensedCapitalized if criteria met
Fixed AssetsCost modelCost or revaluation model

Reporting Across Books

Financial Reports by Book

Path: Reports → Financial → Balance Sheet

Report Settings:
  Accounting Book: [Select primary or secondary]
  Subsidiary: [Select]
  As Of Date: [Date]

Each book produces separate financial statements
Drill-down shows book-specific transactions

Book Comparison Report

Use saved searches to compare balances across books:

Saved Search: Book Comparison
Type: Transaction

Criteria:
  - Account: [specific accounts]
  - Date: [period]

Results:
  Account | Primary Book | IFRS Book | Difference
  --------|--------------|-----------|------------
  Revenue |   $500,000   | $480,000  |   $20,000
  Deferred|    $50,000   |  $70,000  |  -$20,000
Section G.6

Currency & Revaluation

Multi-currency transactions, exchange rate management, and period-end revaluation processes.

Multi-Currency Fundamentals

Currency Types in NetSuite

TypeDefinitionExample
Base CurrencySubsidiary's primary currencyUSD for US subsidiary
Transaction CurrencyCurrency used on transactionEUR invoice to French customer
Reporting CurrencyAdditional currencies for reportsGBP for UK stakeholder reporting

Exchange Rate Types

Rate TypePurposeWhen Used
CurrentDefault transaction rateDaily transactions
AveragePeriod average rateIncome statement translation
HistoricalRate at original transactionEquity translation
ConsolidationParent company restatementConsolidation reporting

Foreign Currency Transactions

Transaction Recording

Invoice in Foreign Currency (EUR 1,000 @ 1.10)
Dr: Accounts Receivable (EUR) â‚Ŧ1,000 = $1,100
Cr: Revenue $1,100

Payment with Gain/Loss

Payment Received (EUR 1,000 @ 1.12 — rate changed)
Dr: Bank (EUR) â‚Ŧ1,000 = $1,120
Cr: Accounts Receivable $1,100
Cr: Realized FX Gain $20

Realized vs Unrealized Gains/Losses

TypeWhen RecognizedAccount
RealizedSettlement (payment/receipt)Realized Gain/Loss
UnrealizedRevaluation (open balances)Unrealized Gain/Loss

Currency Revaluation

Revaluation adjusts open foreign currency balances to current exchange rates at period end.

Running Revaluation

Transactions â€ē Financial â€ē Revalue Open Foreign Currency Balances
Steps:
1. Select subsidiary
2. Set "As Of" date (period end)
3. Choose accounts to revalue:
   - Bank accounts (foreign currency)
   - AR accounts
   - AP accounts
   - Other balance sheet accounts
4. Review preview
5. Post revaluation

Result: Journal entry created for unrealized gain/loss

Revaluation Example

Revaluation — Open EUR Receivable
Original: â‚Ŧ10,000 @ 1.10 = $11,000
Period End: â‚Ŧ10,000 @ 1.15 = $11,500
Dr: Accounts Receivable (revalue) $500
Cr: Unrealized FX Gain $500
â„šī¸ Revaluation Reversal
Revaluation entries are typically reversed at the start of the next period. When the actual settlement occurs, the system calculates realized gain/loss from the original transaction rate. Configure auto-reversal in revaluation settings.

Exchange Rate Management

Automatic Rate Updates

Setup â€ē Accounting â€ē Currency Exchange Rate Integration
Options:
1. Manual entry (Lists → Accounting → Currency Exchange Rates)
2. Scheduled auto-update (daily/weekly)
3. Third-party integration (XE, OANDA via SuiteApp)

Rate Providers:
- ECB (European Central Bank) - free, delayed
- XE - real-time, subscription required
- Custom feed via SuiteScript

Rate Override on Transactions

Users can override exchange rates on individual transactions when needed:

  • Click "Currency" button on transaction
  • Enter custom rate
  • Rate locks to transaction regardless of future rate changes
Section G.7

Consolidation

Consolidating multiple subsidiaries, elimination entries, and intercompany balancing in OneWorld.

OneWorld Consolidation

NetSuite OneWorld automatically consolidates subsidiary financials up the hierarchy. Key processes include currency translation and intercompany eliminations.

Subsidiary Hierarchy

Example Hierarchy:

Global Holdings (Parent - USD)
├── US Operations (Child - USD)
│   ├── US East (Grandchild - USD)
│   └── US West (Grandchild - USD)
├── UK Operations (Child - GBP)
└── Germany GmbH (Child - EUR)

Consolidation Flow:
  Grandchildren → Children → Parent
  Foreign currencies translated at each level

Consolidation Settings

Setup â€ē Company â€ē Subsidiaries â€ē Edit
Key Settings per Subsidiary:
┌─────────────────────────────────────────────────────────────────┐
│ Currency: EUR                                                   │
│ Parent: Global Holdings                                         │
│                                                                 │
│ Elimination Subsidiary: (for IC eliminations)                   │
│   ○ None                                                        │
│   ● Global Holdings                                             │
│   ○ Specific elimination sub                                    │
│                                                                 │
│ Translation Method:                                             │
│   Current rate for balance sheet                                │
│   Average rate for income statement                             │
│   Historical rate for equity                                    │
└─────────────────────────────────────────────────────────────────┘

Intercompany Transactions

Automatic Intercompany Journal Entries

When enabled, NetSuite auto-creates offsetting entries for intercompany transactions.

Setup â€ē Accounting â€ē Preferences â€ē Accounting Preferences
Enable: Check "Automated Intercompany Journals"

Example: US sub sells $10,000 service to UK sub

System Creates:
┌─────────────────────────────────────────────────────────────────┐
│ US Operations Journal:                                          │
│   Dr: Intercompany Receivable - UK     $10,000                 │
│   Cr: Intercompany Revenue             $10,000                 │
├─────────────────────────────────────────────────────────────────┤
│ UK Operations Journal (auto-created):                           │
│   Dr: Intercompany Expense             ÂŖ8,000                  │
│   Cr: Intercompany Payable - US        ÂŖ8,000                  │
└─────────────────────────────────────────────────────────────────┘

Intercompany Account Setup

Required Intercompany Accounts:

Balance Sheet:
  - Intercompany Receivable (by subsidiary)
  - Intercompany Payable (by subsidiary)
  - Due To/Due From accounts

Income Statement (optional for management fees):
  - Intercompany Revenue
  - Intercompany Expense
  - Management Fee Income/Expense

Configure: Lists → Accounting → Accounts
           Check "Intercompany" box on account
           Assign to subsidiaries involved in IC transactions

Elimination Entries

Elimination entries remove intercompany balances during consolidation so the consolidated view shows only external transactions.

Auto-Elimination

NetSuite Auto-Eliminates:
  - Intercompany receivables/payables (when flagged)
  - Intercompany revenue/expense (when flagged)

Process:
1. Mark accounts as "Eliminate Intercompany Transactions"
2. Run consolidation or view consolidated report
3. System auto-eliminates matching IC balances

Manual Elimination Journal

Elimination Entry — IC Revenue/Expense
Dr: Intercompany Revenue (US) $100,000
Cr: Intercompany Expense (UK) $100,000

Equity Eliminations (Investments)

Eliminate Investment in Subsidiary
Dr: Common Stock (Sub) $500,000
Dr: Retained Earnings (Sub) $200,000
Cr: Investment in Subsidiary (Parent) $700,000

Consolidated Reporting

Running Consolidated Reports

Path: Reports → Financial → Balance Sheet (or Income Statement)

Settings:
  Subsidiary: [Parent Company - Consolidated]
              ☑ Include Children

Output Shows:
  - Parent amounts
  - Children amounts (translated)
  - Eliminations (if enabled)
  - Consolidated total

Consolidation Checklist

Consolidation Setup & Processing

Section G.8

Period Close

Month-end, quarter-end, and year-end closing procedures, lock dates, and close checklist.

NetSuite Accounting Periods

Period Structure

Setup â€ē Accounting â€ē Manage Accounting Periods
Default Structure:
┌─────────────────────────────────────────────────────────────────┐
│ Fiscal Year 2025                                                │
├─────────────────────────────────────────────────────────────────┤
│ Q1 2025                                                         │
│   ├── Jan 2025 (Period 1)                                       │
│   ├── Feb 2025 (Period 2)                                       │
│   └── Mar 2025 (Period 3)                                       │
│ Q2 2025                                                         │
│   ├── Apr 2025 (Period 4)                                       │
│   └── ... and so on                                             │
└─────────────────────────────────────────────────────────────────┘

Custom Calendars:
  - 4-4-5, 4-5-4 retail calendars
  - 13-period calendar
  - Non-calendar fiscal year

Period Status

StatusMeaningWho Can Post
OpenNormal operationsAll users with permissions
Closed to Non-PostingBlock non-financial transactionsGL transactions only
ClosedFully closedNo one (without reopening)
Closed (AR/AP/All)Selective closureDepends on closure type

Month-End Close Checklist

Pre-Close Activities

Accruals & Adjustments

Reconciliation

Multi-Currency

Close Period

Year-End Close

Additional Year-End Tasks

Year-End Close Process

Setup â€ē Accounting â€ē Manage Accounting Periods â€ē Select Year â€ē Close Year
What Happens:
1. System calculates Net Income for the year
2. Creates journal entry:
   Dr: Income Summary (all revenue accounts)
   Cr: Income Summary (all expense accounts)
   Dr/Cr: Retained Earnings (net)

3. Income statement accounts reset to zero for new year
4. Balance sheet rolls forward with new retained earnings

Note: You can still reopen a closed year if needed
      (with proper permissions)
âš ī¸ Year-End Close Timing
You don't need to run year-end close immediately. NetSuite allows transactions in the new year while the prior year remains open. Run year-end close after audit adjustments are complete (often 60-90 days into new year).

Lock Dates

Lock dates provide additional control beyond period status to prevent changes to closed periods.

Lock Date Types

Setup â€ē Accounting â€ē Preferences â€ē General Ledger
Lock Dates:
┌─────────────────────────────────────────────────────────────────┐
│ Lock AR (Receivables):     12/31/2024                           │
│ Lock AP (Payables):        12/31/2024                           │
│ Lock All:                  12/31/2024                           │
│                                                                 │
│ Role Override:                                                  │
│   ☐ Allow Administrator override                                │
│   ☐ Allow specific role override                                │
└─────────────────────────────────────────────────────────────────┘

Behavior:
  - Transactions dated on/before lock date cannot be:
    - Created
    - Edited
    - Deleted
  - Even administrators blocked unless override enabled
Section G.9

Financial Reporting

Standard financial statements, Report Builder, and creating custom financial reports.

Standard Financial Reports

Built-In Financial Statements

ReportPathKey Options
Balance SheetReports > Financial > Balance SheetAs of date, subsidiary, consolidated
Income StatementReports > Financial > Income StatementPeriod range, comparative periods
Cash Flow StatementReports > Financial > Cash Flow StatementDirect or indirect method
Trial BalanceReports > Financial > Trial BalanceSummary or detail, period comparison
General LedgerReports > Financial > General LedgerAccount detail with all transactions

Report Customization Options

Common Filters (available on most financial reports):

Subsidiaries:
  - Single subsidiary
  - Consolidated (with or without children)
  - Multiple selected

Periods:
  - Single period
  - Period range
  - Comparative (vs prior period, prior year)
  - YTD, QTD

Segments:
  - Filter by Department
  - Filter by Class
  - Filter by Location
  - Filter by Custom Segments

Display:
  - Summary (account totals)
  - Detail (transactions)
  - Expand to show hierarchy

Financial Report Builder

Report Builder allows creating custom financial reports with complex row/column layouts.

Creating Custom Financial Report

Reports â€ē Financial â€ē Financial Report Builder
Layout Structure:
┌─────────────────────────────────────────────────────────────────┐
│ ROWS (define what accounts/items to include)                    │
│   Row 1: Revenue (account range 4000-4999)                      │
│   Row 2: COGS (account range 5000-5999)                         │
│   Row 3: Gross Profit (formula: Row1 - Row2)                    │
│   Row 4: Operating Expenses (account range 6000-6999)           │
│   Row 5: Operating Income (formula: Row3 - Row4)                │
├─────────────────────────────────────────────────────────────────┤
│ COLUMNS (define periods/comparisons)                            │
│   Col A: Current Month Actual                                   │
│   Col B: Current Month Budget                                   │
│   Col C: Variance (formula: ColA - ColB)                        │
│   Col D: Variance % (formula: ColC / ColB * 100)                │
│   Col E: YTD Actual                                             │
│   Col F: YTD Budget                                             │
└─────────────────────────────────────────────────────────────────┘

Row Types

TypePurposeExample
AccountSingle account or account range4100 or 4000-4999
SummarySubtotal of rows aboveTotal Revenue
FormulaCalculation using other rowsGross Margin % = R3/R1
TextLabel or headingSection header
LineVisual separatorHorizontal line

Column Types

TypePurposeExample
PeriodSpecific accounting periodDec 2024, Q4 2024
RangePeriod range (YTD, QTD)Jan-Dec 2024
BudgetBudget amounts2024 Operating Budget
FormulaCalculation using other columnsVariance = Actual - Budget
Prior PeriodComparative periodSame period prior year

Departmental/Segment P&L

P&L by Department

Reports â€ē Financial â€ē Income Statement
Filters: Period, Subsidiary
Rows/Columns: Show Departments as columns

Output:
                    Sales    Marketing   Engineering   G&A     Total
Revenue            500,000    50,000        10,000   5,000   565,000
COGS               300,000         0             0       0   300,000
Gross Profit       200,000    50,000        10,000   5,000   265,000
Operating Exp       50,000   100,000       150,000  75,000   375,000
Operating Inc      150,000   (50,000)     (140,000)(70,000) (110,000)

Custom P&L Layout Example

Board-Ready P&L Report:

Row Layout:                          Column Layout:
1.  Total Revenue                    A. Current Month
2.    Product Revenue                B. Budget
3.    Service Revenue                C. Variance $
4.    Other Revenue                  D. Variance %
5.  (blank line)                     E. Prior Year Month
6.  Cost of Revenue                  F. YoY Change %
7.  Gross Profit (formula)           G. YTD Actual
8.  Gross Margin % (formula)         H. YTD Budget
9.  (blank line)                     I. Full Year Forecast
10. Sales & Marketing
11. Research & Development
12. General & Administrative
13. Total Operating Expenses
14. Operating Income
15. Operating Margin %
Section G.10

GL for Specific Modules

Module-specific GL considerations for Manufacturing, Revenue Recognition, Fixed Assets, and Project Accounting.

Manufacturing WIP Accounts

Work In Process requires specific account setup for tracking production costs through completion.

Required WIP Accounts

AccountTypePurpose
WIP - MaterialsOther Current AssetRaw materials in production
WIP - LaborOther Current AssetLabor costs in production
WIP - OverheadOther Current AssetOverhead applied to production
WIP VarianceCOGS or ExpenseVariance at work order close
ScrapCOGS or ExpenseMaterial loss/scrap

WIP GL Flow

Work Order Lifecycle GL:

1. WORK ORDER ISSUE (Material to WIP)
   Dr: WIP - Materials          $10,000
   Cr: Raw Materials Inventory  $10,000

2. LABOR RECORDED (if using time tracking)
   Dr: WIP - Labor              $2,000
   Cr: Labor Clearing           $2,000

3. WORK ORDER COMPLETION (FG to Inventory)
   Dr: Finished Goods Inventory $15,000
   Cr: WIP - Materials          $10,000
   Cr: WIP - Labor              $2,000
   Cr: WIP - Overhead           $3,000

4. WORK ORDER CLOSE (Variance)
   Dr: WIP Variance             $500
   Cr: WIP - Materials          $500
   (if actual costs differed from standard)

Advanced Revenue Management (ARM)

ASC 606/IFRS 15 compliant revenue recognition requires specific GL accounts.

ARM Account Types

AccountTypePurpose
Deferred RevenueOther Current LiabilityBilled, not yet recognized
Unbilled ReceivableUnbilled ReceivableRecognized, not yet billed
Deferred COGSOther Current AssetCOGS matched to deferred revenue
RevenueIncomeRecognized revenue

ARM GL Flow Example

Scenario: 2-year SaaS subscription, $24,000 paid upfront

1. INVOICE CREATED
   Dr: Accounts Receivable      $24,000
   Cr: Deferred Revenue         $24,000

2. PAYMENT RECEIVED
   Dr: Cash                     $24,000
   Cr: Accounts Receivable      $24,000

3. MONTHLY RECOGNITION (x 24 months)
   Dr: Deferred Revenue         $1,000
   Cr: Subscription Revenue     $1,000

Fixed Assets

Fixed Asset Management module tracks asset lifecycle from acquisition through disposal.

Fixed Asset Accounts

AccountTypePurpose
Fixed Asset - [Category]Fixed AssetAsset cost (Equipment, Vehicles, etc.)
Accumulated DepreciationAccum DepreciationContra-asset for depreciation
Depreciation ExpenseExpenseMonthly depreciation charge
Gain/Loss on DisposalOther Income/ExpenseDifference on asset sale

Fixed Asset GL Flow

Asset Lifecycle:

1. ACQUISITION ($50,000 equipment)
   Dr: Equipment                $50,000
   Cr: Accounts Payable         $50,000

2. MONTHLY DEPRECIATION (5-year straight-line)
   Dr: Depreciation Expense     $833
   Cr: Accumulated Depreciation $833

3. DISPOSAL (sold for $10,000, NBV $15,000)
   Dr: Cash                     $10,000
   Dr: Accumulated Depreciation $35,000
   Dr: Loss on Disposal         $5,000
   Cr: Equipment                $50,000

Project Accounting

Project-based businesses track revenue and costs by project for profitability analysis.

Project GL Considerations

  • Segment tracking: Use Class or custom segment for projects
  • WIP for services: Track unbilled time as project WIP
  • Revenue recognition: Percentage-of-completion or milestone
  • Cost allocation: Direct vs indirect project costs

Project Accounting GL Flow

Time & Materials Project:

1. LABOR INCURRED
   Dr: Project WIP (Class: Project X)   $5,000
   Cr: Salaries Expense                 $5,000

2. INVOICE CREATED
   Dr: Accounts Receivable              $7,500
   Cr: Service Revenue (Class: Proj X)  $7,500

3. COST RECOGNITION
   Dr: Project COGS (Class: Project X)  $5,000
   Cr: Project WIP (Class: Project X)   $5,000

Project P&L (by Class):
  Revenue:  $7,500
  COGS:     $5,000
  Margin:   $2,500 (33%)
Section G.11

Amortization Schedules

Deep dive into NetSuite's amortization feature for automated expense and revenue recognition over multiple periods.

Amortization Overview

NetSuite's native amortization feature automates the systematic allocation of prepaid expenses and deferred revenue across accounting periods. This eliminates manual journal entries, ensures consistency, and provides a complete audit trail from source transaction to recognition.

â„šī¸ When to Use Amortization vs. ARM
Amortization Schedules: Simple prepaid expenses, straight-line deferred revenue. Native feature, no additional license.
ARM (Revenue Management): ASC 606 compliance, multiple performance obligations, SSP allocation. Licensed module, complex configuration.

Enabling Amortization

Setup â€ē Company â€ē Enable Features â€ē Accounting tab

Required Features

FeatureSubtabPurpose
AmortizationAccountingEnables expense amortization on transactions
Revenue RecognitionAccountingEnables revenue amortization (deferred revenue recognition)
Accounting PeriodsAccountingRequired for period-based amortization

Preferences

Setup â€ē Accounting â€ē Accounting Preferences â€ē General subtab
  • Amortization Source Account: Controls which account is debited/credited
  • Amortization Date Override: Allow users to modify calculated dates
  • Auto-Create Amortization JE: Automatically post or create in pending status

Creating Amortization Templates

Setup â€ē Accounting â€ē Amortization Schedules â€ē New

Template Types

TypeDescriptionBest For
StandardFixed number of periods, same amount each periodInsurance, rent, simple subscriptions
VariableUser specifies start/end dates at transactionVariable-term contracts, one-off expenses

Complete Field Reference

FieldValuesBehavior
NameTextIdentifier in dropdowns. Pattern: "XX-Mo [Type] [Method]"
Amortization TypeStandard, VariableStandard = fixed periods; Variable = transaction dates
Recurrence TypeMonthly, Quarterly, Annually, CustomFrequency of recognition entries
Period Offset0-99Periods to wait before first recognition. 0 = immediate
Recurrence Count1-999Total recognition periods (e.g., 12 for 12-month)
Initial AmountProrated, FullProrated = partial first period; Full = equal amounts
ResidualFirst Period, Last PeriodWhere to apply rounding differences (pennies)
Account SelectionTarget, SourceTarget = specify recognition account; Source = use transaction account
Target AccountAccount lookupAccount to recognize into (expense or revenue account)
💡 Template Naming Convention
Use consistent naming for easy selection: 12-Mo SL Insurance, 36-Mo SL Software, VAR Expense, 12-Mo SL Revenue.

The Eliminate Checkbox (OneWorld)

In multi-subsidiary environments, the Eliminate checkbox is critical for proper consolidated financial statements. This field appears at both the template and transaction level.

âš ī¸ Understanding Eliminate
The Eliminate checkbox marks amortization journal entries for exclusion during intercompany consolidation. Without proper elimination, intercompany prepaid expenses would be double-counted at the consolidated level.

When to Use Eliminate

ScenarioEliminate?Explanation
Parent pays vendor for subsidiary insuranceYesIC receivable/payable created; amortization in sub should eliminate
Subsidiary pays own vendor directlyNoNo IC component; expense is real at consolidated level
IC allocation of group-wide prepaidYesAllocated portions need elimination to avoid duplication
Deferred revenue from IC salesYesIC revenue eliminates; recognition should also eliminate
Deferred revenue from external customerNoReal revenue at consolidated level

How Elimination Works

-- Example: Parent pays $120K group insurance, allocates to 3 subsidiaries

ORIGINAL TRANSACTION (Parent):
  DR 1350 Prepaid Insurance    $120,000
  CR 1000 Cash                 $120,000

IC ALLOCATION TO SUB A ($40K):
  Parent:
    DR 1210 IC Receivable - Sub A    $40,000
    CR 1350 Prepaid Insurance        $40,000

  Sub A:
    DR 1350 Prepaid Insurance        $40,000  [Eliminate = YES]
    CR 2110 IC Payable - Parent      $40,000

MONTHLY AMORTIZATION (Sub A):
  DR 6100 Insurance Expense          $3,333   [Eliminate = YES]
  CR 1350 Prepaid Insurance          $3,333   [Eliminate = YES]

-- At consolidation, Sub A's insurance expense eliminates
-- Parent's net prepaid of $80K remains (other subs' portions)
-- Consolidated P&L shows real expense only once

Verification Steps

  1. Run Trial Balance by subsidiary before consolidation
  2. Review "Eliminate" column on amortization schedule report
  3. Run consolidated Trial Balance
  4. Verify eliminated entries don't appear in consolidated totals
  5. Reconcile: Sub standalone total - eliminated = consolidated impact

Applying Amortization to Transactions

On Items (Recommended)

Set default amortization on Service Items or Non-Inventory Items that are typically prepaid:

Lists â€ē Accounting â€ē Items â€ē [Item] â€ē Accounting subtab
  1. Open the item record
  2. Navigate to Accounting subtab
  3. Check Amortize checkbox
  4. Select default Amortization Schedule
  5. Set Residual Account if different from item account
  6. Save

Benefits: Auto-applies when item used on bills/expenses, ensures consistency across all users, reduces data entry errors, can still override at transaction level.

On Transaction Lines

For one-off or variable amortization, configure at the line level:

  1. Create vendor bill, expense report, or journal entry
  2. On the expense/item line, enable Amortize
  3. Select Amortization Schedule
  4. For Variable schedules, enter Amortization Start Date and End Date
  5. Set Residual handling preference
  6. Check Eliminate if intercompany (OneWorld)
  7. Save transaction
đŸŽ¯ Field Visibility
Amortization fields may be hidden by default. Use form customization to expose: Amortize checkbox, Amortization Schedule, Start/End Date, Residual, and Eliminate (OneWorld only).

Processing Amortization

Manual Processing

Transactions â€ē Financial â€ē Process Amortization
  1. Select Subsidiary (OneWorld)
  2. Set Period to process
  3. Click Search to see pending amortization
  4. Review the preview list
  5. Click Process to create journal entries
  6. Verify JEs in transaction list

Scheduled Processing (Recommended)

Automate amortization with a scheduled script:

/**
 * @NApiVersion 2.1
 * @NScriptType ScheduledScript
 * @description Process amortization automatically at month-end
 */
define(['N/record', 'N/search', 'N/runtime'], function(record, search, runtime) {

    function execute(context) {
        var amortSearch = search.create({
            type: 'amortizationschedule',
            filters: [
                ['status', 'is', 'Pending'],
                'AND',
                ['scheddate', 'onorbefore', 'today']
            ]
        });

        amortSearch.run().each(function(result) {
            try {
                var amortRec = record.load({
                    type: 'amortizationschedule',
                    id: result.id
                });
                amortRec.setValue({ fieldId: 'status', value: 'Posted' });
                amortRec.save();
            } catch (e) {
                log.error('Amort Process Error', e);
            }
            return true;
        });
    }

    return { execute: execute };
});

Amortization Month-End Checklist

GL Impact Examples

Expense Amortization

-- 12-month prepaid insurance: $12,000

INITIAL BILL ENTRY:
  DR 1350 Prepaid Insurance    $12,000
  CR 2000 Accounts Payable     $12,000

MONTHLY AMORTIZATION (x12):
  DR 6100 Insurance Expense    $1,000
  CR 1350 Prepaid Insurance    $1,000

-- After 12 months, prepaid balance = $0

Revenue Amortization (Deferred Revenue)

-- 12-month subscription received upfront: $24,000

INITIAL INVOICE ENTRY:
  DR 1200 Accounts Receivable  $24,000
  CR 2400 Deferred Revenue     $24,000

MONTHLY RECOGNITION (x12):
  DR 2400 Deferred Revenue     $2,000
  CR 4100 Subscription Revenue $2,000

-- After 12 months, deferred revenue balance = $0

Prorated First Period

-- $12,000 prepaid starting mid-month (Jan 15)
-- 12-month schedule with proration

JANUARY AMORTIZATION (17 days / 31 days):
  DR 6100 Insurance Expense    $548.39  (12000/12 * 17/31)
  CR 1350 Prepaid Insurance    $548.39

FEBRUARY - DECEMBER (11 full months):
  DR 6100 Insurance Expense    $1,000.00 each
  CR 1350 Prepaid Insurance    $1,000.00 each

JANUARY NEXT YEAR (remaining 14 days):
  DR 6100 Insurance Expense    $451.61
  CR 1350 Prepaid Insurance    $451.61

-- Total: $548.39 + $11,000 + $451.61 = $12,000

Reporting

Standard Reports

ReportNavigationPurpose
Amortization ScheduleReports > Financial > Amortization ScheduleView all active schedules with remaining balances
Amortization ForecastReports > Financial > Amortization ForecastProject future recognition by period
Amortization JE RegisterReports > Financial > Transaction RegisterView posted amortization JEs (filter by type)

Custom Saved Search

Saved Search: Amortization Schedule Detail
Type: Amortization Schedule

Criteria:
- Status is Pending or Posted
- Schedule Date within [date range]

Results:
- Name, Source Transaction
- Original Amount, Recognized Amount, Remaining Amount
- Schedule Date, Period
- Eliminate (for OneWorld), Subsidiary

Summary:
- Group by Account
- Sum Remaining Amount

Troubleshooting Amortization

IssueCauseSolution
Amortization not appearingFeature not enabledEnable at Setup > Company > Enable Features
Fields not visible on formsForm customization neededEdit form to show amortization-related fields
Wrong recognition amountIncorrect schedule setupReview recurrence count and initial amount settings
JEs posting to wrong periodPeriod offset or start date issueVerify schedule dates align with accounting periods
Prepaid balance doesn't zeroRounding residual issueCheck residual handling; verify all periods processed
IC amortization not eliminatingEliminate not checkedEdit source transaction to check Eliminate box
Can't modify posted amortizationJEs already createdReverse existing JEs, modify schedule, reprocess

NetSuite Documentation References

Official Oracle NetSuite Help Center documentation for amortization:

TopicDescription
Expense AmortizationMain overview of the amortization feature, prerequisites, and workflow
Amortization SchedulesHow schedules are generated, viewed, and managed
Creating Amortization TemplatesTemplate configuration including all field definitions
Generating Amortization JEsProcessing amortization and creating journal entries
Update AmortizationModifying existing amortization schedules
Multi-Book AmortizationAmortization in OneWorld with multiple accounting books
Amortization Schedule RecordSuiteScript record browser reference for automation
â„šī¸ Accessing NetSuite Help
You can also access these topics directly in NetSuite: Help > Help Center, then search for "amortization". Or click the ? icon on any amortization-related page for context-sensitive help.
Section G.12

Budgeting

Comprehensive guide to NetSuite's native budgeting functionality, including setup, budget entry methods, variance analysis, and reporting.

Budgeting Overview

NetSuite's native budgeting feature (included with base license) allows organizations to create, manage, and report on financial budgets. Budgets can be created at the account level and optionally segmented by subsidiary, department, class, and location.

Native Budgeting vs NSPB

FeatureNative BudgetingNSPB (Add-On)
LicenseIncluded with NetSuiteAdditional licensed module
Entry MethodManual, CSV importSpreadsheet-like interface, templates
ForecastingManual onlyRolling forecasts, driver-based
WorkflowBasic (manual approval)Built-in approval workflows
Scenario PlanningVia budget categoriesFull what-if modeling
Best ForSimple annual budgetsEnterprise FP&A, complex planning

Enabling and Configuring Budgets

Enable Budgeting Feature

Setup â€ē Company â€ē Enable Features â€ē Accounting tab

Once enabled, budget fields appear on GL accounts and budget reports become available.

Budget Categories Setup

Budget categories allow multiple budget versions (e.g., Operating, Revised, Forecast):

Setup â€ē Accounting â€ē Budget Category â€ē New
Configuration:
┌─────────────────────────────────────────────────────────────────┐
│ Budget Category: Operating Budget 2025                          │
│                                                                 │
│ Settings:                                                       │
│   ☑ Active                                                      │
│   ☐ Global                                                      │
│                                                                 │
│ Subsidiary: (select applicable subsidiaries)                    │
│   ☑ Parent Company                                              │
│   ☑ US Operations                                               │
│   ☑ UK Operations                                               │
└─────────────────────────────────────────────────────────────────┘

Common Budget Categories

CategoryPurposeTypical Timing
Operating BudgetPrimary annual budgetSet before fiscal year start
Revised BudgetMid-year adjustmentsQuarterly updates
ForecastRolling projectionsMonthly updates
Stretch BudgetAggressive targetsAnnual planning
Prior YearHistorical comparisonReference baseline

Budget Structure

Budgets in NetSuite can be as simple or detailed as needed based on your reporting requirements.

Budget Dimensions

DimensionRequiredPurpose
AccountYesGL account being budgeted
SubsidiaryOneWorld onlyLegal entity dimension
YearYesFiscal year
Budget CategoryIf multiple versionsBudget version/scenario
DepartmentNoDepartmental budget breakdown
ClassNoProduct line/service type
LocationNoGeographic/site breakdown
CustomerNoCustomer-level revenue budgets
ItemNoProduct-level budgets
💡 Budget Granularity
Start with account-level budgets and add dimensions only where variance analysis is needed. Over-segmented budgets create maintenance burden without proportional reporting value.

Budget Entry Methods

Method 1: Set Up Budgets Page

Transactions â€ē Financial â€ē Set Up Budgets

Provides account dropdown, year selection, monthly amount entry grid, and copy/spread functionality. Best for small number of accounts, simple budgets.

Method 2: CSV Import

Setup â€ē Import/Export â€ē Import CSV Records
Record Type: Budget

Required CSV Columns:
┌─────────────────────────────────────────────────────────────────┐
│ Account,Year,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec   │
│ 4000,2025,50000,52000,48000,55000,60000,58000,...              │
│ 5000,2025,25000,26000,24000,27500,30000,29000,...              │
│ 6100,2025,10000,10000,10000,10000,10000,10000,...              │
└─────────────────────────────────────────────────────────────────┘

Optional columns: Subsidiary, Department, Class, Location,
                  Budget Category, Customer, Item

Method 3: Import via SuiteScript

// Budget record creation via SuiteScript
var budgetRecord = record.create({
    type: record.Type.BUDGET,
    isDynamic: true
});

budgetRecord.setValue({ fieldId: 'account', value: accountId });
budgetRecord.setValue({ fieldId: 'year', value: '2025' });
budgetRecord.setValue({ fieldId: 'subsidiary', value: subId });
budgetRecord.setValue({ fieldId: 'periodamount1', value: 50000 }); // Jan
budgetRecord.setValue({ fieldId: 'periodamount2', value: 52000 }); // Feb
// ... etc
budgetRecord.save();

Which Entry Method to Use?

ScenarioRecommended Method
First-time setup, < 50 accountsSet Up Budgets page
Annual budget load from ExcelCSV Import
Automated from external FP&A systemSuiteScript integration
Rolling monthly updatesCSV Import or SuiteScript

Budget GL Impact

Unlike transactions, budgets do not post to the General Ledger. They exist as a separate dataset for comparison and reporting purposes.

Budget Record:
┌─────────────────────────────────────────────────────────────────┐
│ NOT a journal entry - no debit/credit impact                   │
│ Stored separately from transaction data                         │
│ Linked to accounts via Account ID                               │
│ Compared to actuals via reports and saved searches              │
└─────────────────────────────────────────────────────────────────┘

Relationship:
  GL Account 4000 (Revenue)
    ├── Actual balance: Sum of posted transactions
    ├── Budget balance: Sum of budget amounts for period
    └── Variance: Actual - Budget

Budget Amounts Don't Affect

  • Trial Balance
  • Balance Sheet totals
  • Income Statement actuals
  • Account running balances

Budget Amounts Do Appear In

  • Budget vs Actual reports
  • Financial Report Builder (with budget columns)
  • Saved searches joining to budget records
  • SuiteAnalytics workbooks

Budget vs Actual Reporting

Standard Budget Reports

Reports â€ē Financial â€ē Budget vs Actual
Available Report Variations:
  - Budget vs Actual (Summary)
  - Budget vs Actual by Department
  - Budget vs Actual by Class
  - Budget vs Actual by Location
  - Budget Register

Report Settings:
  - Select Budget Category (if multiple)
  - Select Period Range
  - Subsidiary filter (OneWorld)
  - Show: Amount, Variance, Variance %

Custom Variance Report Example

Income Statement with Budget Comparison:

Account          | Actual  | Budget  | Variance | Var %
-----------------|---------|---------|----------|-------
Revenue          | $525K   | $500K   | +$25K    | +5.0%
COGS             | $210K   | $200K   | -$10K    | -5.0%
Gross Profit     | $315K   | $300K   | +$15K    | +5.0%
                 |         |         |          |
Operating Exp    | $180K   | $175K   | -$5K     | -2.9%
  Salaries       | $100K   | $100K   |    $0    |  0.0%
  Rent           |  $30K   |  $30K   |    $0    |  0.0%
  Marketing      |  $50K   |  $45K   |  -$5K    | -11.1%
                 |         |         |          |
Net Income       | $135K   | $125K   | +$10K    | +8.0%

Convention:
  Revenue variance: Positive = Favorable
  Expense variance: Negative = Unfavorable

Budget Saved Searches

Use saved searches for custom budget analysis beyond standard reports.

Basic Budget vs Actual Search

Saved Search: Budget vs Actual by Account
Type: Transaction

Criteria:
  - Posting = True
  - Main Line = True (or False for detail)
  - Date: Within current period

Results:
  - Account (Group)
  - Formula (Currency): SUM({amount})                 [Actual]
  - Formula (Currency): SUM({account.budget.amount})  [Budget]

Summary Type: Group

Variance Analysis Formulas

-- Variance Amount (Actual - Budget)
{amount} - {budgetamount}

-- Variance % ((Actual - Budget) / Budget)
CASE WHEN {budgetamount} = 0 THEN NULL
     ELSE ROUND((({amount} - {budgetamount})
       / ABS({budgetamount})) * 100, 1)
END

-- Favorable/Unfavorable Flag
CASE
  WHEN {type} IN ('Income','Other Income')
       AND {amount} >= {budgetamount} THEN 'Favorable'
  WHEN {type} IN ('Income','Other Income')
       AND {amount} < {budgetamount} THEN 'Unfavorable'
  WHEN {type} IN ('Expense','COGS','Other Expense')
       AND {amount} <= {budgetamount} THEN 'Favorable'
  WHEN {type} IN ('Expense','COGS','Other Expense')
       AND {amount} > {budgetamount} THEN 'Unfavorable'
  ELSE 'N/A'
END

Budget Import Template

Use this template structure for CSV budget imports:

Simple Account-Level Template

External ID,Account,Year,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
BUD-4000-2025,4000,2025,50000,52000,48000,55000,60000,58000,62000,65000,68000,70000,72000,85000
BUD-4100-2025,4100,2025,10000,10500,9600,11000,12000,11600,12400,13000,13600,14000,14400,17000
BUD-5000-2025,5000,2025,25000,26000,24000,27500,30000,29000,31000,32500,34000,35000,36000,42500

Multi-Dimension Template

External ID,Account,Subsidiary,Department,Class,Year,Budget Category,Jan,Feb,Mar,...
BUD-4000-US-SALES-PROD-2025,4000,US Operations,Sales,Product A,2025,Operating Budget,30000,...
BUD-4000-US-SALES-SVC-2025,4000,US Operations,Sales,Services,2025,Operating Budget,20000,...
BUD-4000-UK-SALES-PROD-2025,4000,UK Operations,Sales,Product A,2025,Operating Budget,15000,...
âš ī¸ Import Considerations
External ID: Use for updating existing budgets without creating duplicates.
Account: Can use Internal ID, External ID, or account number.
Subsidiary: Must match exact subsidiary name or Internal ID.
Amounts: Use positive numbers (system handles sign based on account type).

Budget Maintenance

Updating Existing Budgets

Method 1: Set Up Budgets Page
  - Navigate to existing budget, modify amounts, save

Method 2: CSV Update Import
  - Export existing budgets
  - Modify in Excel
  - Re-import with "Update" option
  - Match on External ID or Internal ID

Method 3: Mass Update
  - Create saved search of budget records
  - Use Mass Update to modify specific fields

Budget Copy Functions

Copy Budget Between Years:
  1. Export current year budgets to CSV
  2. Modify Year column to new year
  3. Apply growth/reduction factors in Excel
  4. Import as new budgets

Copy Budget to New Category:
  1. Export budgets for source category
  2. Change Budget Category column
  3. Adjust amounts if needed (e.g., Revised vs Operating)
  4. Import as new budgets

Budget History Tracking

NetSuite does not automatically track budget changes. Implement version control:

  • Use Budget Categories for official versions (Operating, Revised Q1, etc.)
  • Archive exports before major updates
  • Custom field on Budget record for "Last Modified Date"
  • Script to log budget changes to custom record

Industry Considerations

IndustryBudget FocusKey Dimensions
ManufacturingProduction costs, capacityLocation, Item (for COGS)
Wholesale/DistributionSales volume, marginsClass (product line), Customer
Software/SaaSARR/MRR targets, headcountDepartment, Class (product)
Professional ServicesUtilization, revenue by practiceDepartment, Class (service line)
RetailStore-level P&LLocation, Class (category)
NonprofitGrant compliance, program costsClass (program/grant), Department

Documentation References

Official NetSuite documentation for budgeting features:

TopicDescription
Setting Up BudgetsOverview of budget setup and configuration
Creating Budget RecordsStep-by-step budget creation process
Importing BudgetsCSV import procedures and field mapping
Budget CategoriesSetting up multiple budget versions
Budget ReportsStandard budget vs actual reporting
â„šī¸ Related Resources
For enterprise planning needs beyond native budgeting, see Appendix FSM and the Planning & Budgeting (NSPB) module documentation.
Section G.13

Troubleshooting

Common GL issues, reconciliation problems, and how to resolve them.

Trial Balance Out of Balance

Symptoms

  • Trial balance debits ≠ credits
  • Balance sheet doesn't balance
  • Net income ≠ change in retained earnings

Common Causes

CauseDetectionResolution
Unposted transactionsSearch for status = Pending ApprovalPost or void pending transactions
Multi-currency roundingCheck currency rounding accountReview FX transactions, run revaluation
System errorGL Audit log shows imbalanceContact NetSuite Support
Data import errorReview recent importsIdentify and correct bad data

Diagnostic Steps

1. Run Trial Balance report
   Reports → Financial → Trial Balance
   Compare total debits vs credits

2. Run GL Audit Trail
   Reports → Financial → General Ledger Audit Trail
   Look for transactions with imbalanced entries

3. Check for orphaned transactions
   Saved Search: Transactions where GL Impact = true
   AND posting = true
   AND (debit total ≠ credit total)

4. Review currency rounding account
   Run GL report filtered to Currency Rounding account
   Large balances indicate FX issues

Subledger to GL Reconciliation

AR Reconciliation

AR Reconciliation Process:

1. Run AR Aging Report
   Reports → Receivables → A/R Aging
   Note total balance

2. Run GL Balance for AR Account
   Reports → Financial → Trial Balance
   Filter to AR accounts

3. Compare totals
   AR Aging Total should = AR GL Balance

Common Differences:
- Unapplied payments (show in GL, not aging)
- Posted deposits (reduce AR but may not show in aging)
- Multi-currency timing (revaluation not run)
- Credit memos unapplied

Resolution:
- Review A/R Register for detail
- Identify transactions in GL but not aging
- Apply unapplied payments/credits

AP Reconciliation

AP Reconciliation Process:

1. Run AP Aging Report
   Reports → Payables → A/P Aging
   Note total balance

2. Run GL Balance for AP Account
   Reports → Financial → Trial Balance
   Filter to AP accounts

3. Compare totals
   AP Aging Total should = AP GL Balance

Common Differences:
- Unapplied credits
- Unbilled receipts (inventory received, no bill)
- Prepayments
- Multi-currency variances

Inventory Reconciliation

Inventory Reconciliation Process:

1. Run Inventory Valuation Report
   Reports → Inventory/Items → Inventory Valuation
   Note total value

2. Run GL Balance for Inventory Accounts
   Reports → Financial → Trial Balance
   Filter to Inventory Asset accounts

3. Compare totals
   Inventory Valuation should = Inventory GL Balance

Common Differences:
- Pending item receipts
- Pending item fulfillments
- Cost adjustments not posted
- Location-specific account variances

Resolution:
- Run Inventory Revalue if using Standard Cost
- Review pending transactions
- Check item account assignments

Common GL Errors

Error: "This transaction is out of balance"

CauseSolution
Journal entry debits ≠ creditsAdd missing line or adjust amounts
Multi-currency roundingAdjust rounding on one line
Tax calculation errorReview tax setup, recalculate

Error: "Cannot post to closed period"

CauseSolution
Transaction date in closed periodChange date to open period
Period lockedRequest unlock from admin (if appropriate)
Need adjustment to closed periodReopen period, post adjustment, re-close

Error: "Account restricted to specific subsidiaries"

CauseSolution
Account not available for selected subsidiaryUse account valid for subsidiary
Need account in new subsidiaryEdit account to add subsidiary access

GL Health Check

Periodic GL health checks prevent issues from accumulating.

Monthly GL Health Check