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
| Option | Behavior | Best For |
|---|---|---|
| After transaction entry | Immediate processing after save | Low volume, real-time accuracy needed |
| Every hour | Batched processing once per hour | High 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
| Setting | Description |
|---|---|
| Latest Custom Schedule End Time | Latest time to start costing process |
| Respect Inventory Costing Time Restrictions on Weekends | Skip weekend processing |
| Use Cost Estimate for Negative Inventory | How 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
- Go to Item Record
- Click Customize Form
- Find and unhide Cost Accounting Status field
- Check under Purchasing/Inventory > Location subtab
Status Values
| Status | Meaning | Action |
|---|---|---|
| Blank | Cost accounting never run for this item | Normal for new items |
| In Queue | Flagged for processing, waiting to start | Wait for next cycle |
| Pending | (Lot/Serial items) Flagged, waiting to start | Wait for next cycle |
| In Process | Calculations currently running | Do not edit item |
| Completed | Processing finished | Normal state |
| Error | Calculation failed | Investigate 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
| Topic | Description |
|---|---|
| Recalculation Triggers | What transactions trigger cost recalculation |
| GL Impact Changes | Which GL entries change after recalculation |
| Backdated Transactions | Impact of backdating on costing |
Next Steps
- Recalculation Triggers - What triggers recalculation
- GL Impact Changes - Which transactions have GL changes
- Backdated Transactions - Backdating impact