Skip to main content

Cost Engine Overview

Understanding how NetSuite's cost engine calculates and recalculates inventory costs.


How the Cost Engine Works

NETSUITE COST ENGINE OVERVIEW
═══════════════════════════════════════════════════════════════════════════════

TRANSACTION SAVED


┌─────────────────────┐
│ Has Inventory │
│ Costing Impact? │
└──────────┬──────────┘

┌──────────┴──────────┐
│ │
YES NO
│ │
▼ ▼
┌─────────────────┐ No action
│ Item flagged as │
│ "In Queue" │
└────────┬────────┘


┌─────────────────────────────┐
│ COSTING PREFERENCE │
│ │
│ ┌───────────────────────┐ │
│ │ After Transaction │──┼──▶ Process IMMEDIATELY
│ └───────────────────────┘ │
│ │
│ ┌───────────────────────┐ │
│ │ Every Hour │──┼──▶ Process in BATCH (hourly)
│ └───────────────────────┘ │
│ │
└─────────────────────────────┘


┌─────────────────┐
│ Status changes │
│ to "In Process" │
└────────┬────────┘


┌─────────────────┐
│ Recalculates │
│ affected items │
└────────┬────────┘


┌─────────────────┐
│ Updates GL on │
│ affected trans │
└────────┬────────┘


┌─────────────────┐
│ Status changes │
│ to "Completed" │
└─────────────────┘

Costing Preferences Setup

Navigate to: Setup > Accounting > Inventory Costing Preferences

Scheduling Options

OptionBehaviorBest For
After transaction entryImmediate processing after saveLow volume, real-time accuracy needed
Every hourBatched processing once per hourHigh volume, better performance

Hourly Processing Explained

HOURLY COSTING CYCLE
═══════════════════════════════════════════════════════════════════════════════

HOUR 1 (9:00 AM - 10:00 AM):
9:05 AM ──▶ Item Receipt saved (Item X flagged "In Queue")
9:15 AM ──▶ Invoice saved (Item X already queued)
9:30 AM ──▶ Adjustment saved (Item Y flagged "In Queue")
9:45 AM ──▶ Cash Sale saved (Item X already queued)

10:00 AM ──▶ COST ENGINE RUNS

├── Collects all "In Queue" items
├── Processes in chronological order
├── Recalculates costs
├── Updates GL entries on affected transactions
└── Sets status to "Completed"

HOUR 2 (10:00 AM - 11:00 AM):
10:05 AM ──▶ New transactions...

11:00 AM ──▶ COST ENGINE RUNS AGAIN

Additional Settings

SettingDescription
Latest Custom Schedule End TimeLatest time to start costing process
Respect Inventory Costing Time Restrictions on WeekendsSkip weekend processing
Use Cost Estimate for Negative InventoryHow to handle negative inventory cost (Last Purchase Price, Average Cost, or Zero)

Cost Accounting Status Field

The Cost Accounting Status field shows where an item is in the costing process.

How to View It

  1. Go to Item Record
  2. Click Customize Form
  3. Find and unhide Cost Accounting Status field
  4. Check under Purchasing/Inventory > Location subtab

Status Values

StatusMeaningAction
BlankCost accounting never run for this itemNormal for new items
In QueueFlagged for processing, waiting to startWait for next cycle
Pending(Lot/Serial items) Flagged, waiting to startWait for next cycle
In ProcessCalculations currently runningDo not edit item
CompletedProcessing finishedNormal state
ErrorCalculation failedInvestigate issue

Quick Check Method

CHECK IF COSTING IS RUNNING
═══════════════════════════════════════════════════════════════════════════════

Method 1: Income Statement
Go to: Reports > Financial > Income Statement
Click: Display Title
Look at bottom of title for message:
"Cost calculation is running..."

Method 2: Period Close
When closing period, popup will warn if costing still running

Method 3: Item Record
Check Cost Accounting Status field on affected items

Processing Order Rules

NetSuite Processing Priority

Within the same day, NetSuite processes transactions in this order:

SAME-DAY PROCESSING ORDER
═══════════════════════════════════════════════════════════════════════════════

1. INCREASES first (receipts, positive adjustments)

2. DECREASES second (sales, negative adjustments)

EXAMPLE - All on Same Day:

Transaction A: Sale -50 units ──────────────┐
Transaction B: Receipt +100 units ──────────┼── Same day
Transaction C: Adjustment -30 units ────────┘

Processing Order:
1. Transaction B (+100) ← Processed first
2. Transaction A (-50) ← Processed second
3. Transaction C (-30) ← Processed third

Result: Prevents negative inventory from occurring

Cost Engine Topics

TopicDescription
Recalculation TriggersWhat transactions trigger cost recalculation
GL Impact ChangesWhich GL entries change after recalculation
Backdated TransactionsImpact of backdating on costing

Next Steps