Inventory Optimization Calculations
Inventory Optimization uses demand, supply, segmentation, and service-level data to calculate item-location planning values. This topic explains the metrics, inputs, and formulas used in those calculations.
Segmentation Metrics
Segmentation uses the following metrics:
|
Metric |
Formula |
Purpose |
|---|---|---|
|
Annual Consumption Value |
Annual Usage * Unit Cost |
Assigns ABC categories. |
|
Coefficient of Variation |
Monthly Demand Standard Deviation / Average Monthly Demand |
Assigns 123 categories. |
When Multiple Units of Measure is enabled, annual usage and demand quantities use the base unit.
Calculation Inputs
The calculation uses average daily demand and daily demand standard deviation from demand history.
For nonseasonal items, demand uses the Order Analysis Interval. For seasonal items, demand uses the corresponding prior-year period defined by the Seasonal Analysis Interval. Estimated Demand Change scales both Average Daily Demand and Daily Demand Standard Deviation.
It uses average lead time and lead-time standard deviation from inbound supply history.
Demand inputs use the following Inventory Management preferences:
-
Order Analysis Interval
-
Seasonal Analysis Interval
-
Estimated Demand Change
-
Transactions to Consider
The transaction types included depend on Transactions to Consider preference:
-
Orders includes sales orders, standalone invoices and cash sales, outbound transfer orders, and work-order component demand. Special-order and closed sales orders are included. Pending Approval, Cancelled, and drop-ship sales orders are excluded.
-
Actual Sales includes transformed and standalone invoices and cash sales, transfer-order fulfillments, assembly-build components, work-order issues, and work-order completion components.
NetSuite uses Expected Ship Date for sales orders and outbound transfer orders. If this field is blank, NetSuite uses Date. For work orders, NetSuite uses Production Start Date, or Date if Production Start Date is blank. All other qualifying demand transactions use Date.
Pending Approval, Rejected, or Void invoices are excluded. Void cash sales and cash sales on payment hold are excluded.
For Orders, Pending Approval, Rejected, or Void transfer orders are excluded. Pending Approval, Cancelled, or Void work orders are also excluded.
For Actual Sales, Picked, Packed, or Shipped transfer-order fulfillments are included regardless of the transfer-order status.
Lead-time inputs use inbound supply history over the Order Analysis Interval. Inbound supply history includes the following:
-
Purchase orders in Pending Billing, Billed, or Closed status
-
Received transfer orders
-
Built or closed assembly work orders
Purchase-order and transfer-order lead time ends at full receipt. Work-order lead time ends on Actual Production End Date. NetSuite requires at least three qualifying lead-time values and excludes negative lead times.
Demand and lead-time inputs are calculated by item-location.
When no demand history exists, NetSuite sets Average Daily Demand and Demand Standard Deviation to zero. Planning values are zero, and NetSuite logs a warning.
NetSuite uses the following inputs to calculate planning values:
|
Input |
Description |
|---|---|
|
Average Daily Demand |
Average item demand for the item-location.
|
|
Daily Demand Standard Deviation |
Variation in daily demand for the item-location.
Days without demand are included with a value of zero. |
|
Average Lead Time |
Average lead time from inbound supply history for the item-location.
|
|
Lead-Time Standard Deviation |
Variation in lead time for the item-location.
|
|
z-score |
Standard-normal value derived from the service level and used in the safety stock calculation. |
|
Preferred Stock Level Days |
Item record value used in the preferred stock level calculation. |
Service Level
The service level comes from the assigned Inventory Optimization segment unless a service level override is set.
NetSuite converts the service level to a z-score for safety stock calculation. For example:
|
Service Level |
Approximate z-score |
|---|---|
|
50% |
0.00 |
|
90% |
1.28 |
|
95% |
1.65 |
|
98% |
2.05 |
|
99% |
2.33 |
|
99.99% |
3.72 |
Higher service levels generally produce higher safety stock.
Safety Stock Level
Lead-time period demand standard deviation uses this formula:
Lead-Time Period Demand Standard Deviation = sqrt((Average Lead Time * Daily Demand Standard Deviation^2) + (Average Daily Demand^2 * Lead-Time Standard Deviation^2))
Safety stock uses this formula:
Safety Stock Level = Lead-Time Period Demand Standard Deviation * z-score
NetSuite rounds the calculated Safety Stock Level up to the next whole number. Reorder Point and Preferred Stock Level use the rounded Safety Stock Level.
This calculation assumes demand during lead time follows a normal distribution. Results can be approximate when demand is intermittent, promotional, strongly seasonal, or skewed.
Reorder Point
Reorder point uses this formula:
Reorder Point = Safety Stock Level + (Average Lead Time * Average Daily Demand)
NetSuite rounds the calculated Reorder Point up to the next whole number.
Preferred Stock Level
Preferred stock level uses this formula:
Preferred Stock Level = Safety Stock Level + (Preferred Stock Level Days * Average Daily Demand)
NetSuite rounds the calculated Preferred Stock Level up to the next whole number. The Preferred Stock Level Days value comes from the item record.
Set Preferred Stock Level Days greater than Average Lead Time. A value at or below Average Lead Time can make Preferred Stock Level less than or equal to Reorder Point.
Zero and Missing Input Values
Numeric zero is valid and is not treated as missing. The following table describes how zero, missing, or insufficient inputs affect calculations.
|
Condition |
Result |
|---|---|
|
Demand or lead-time standard deviation is zero |
NetSuite uses zero as a valid input. |
|
Average lead time is zero |
NetSuite continues the planning calculations and logs a warning. |
|
Average daily demand is zero |
Safety Stock Level, Reorder Point, and Preferred Stock Level are zero. NetSuite logs a warning. |
|
Fewer than three qualifying lead-time values exist |
NetSuite does not calculate Safety Stock Level, Reorder Point, or Preferred Stock Level and logs a warning. |
|
Service level is missing |
Processing fails for the item-location. |
|
Preferred Stock Level Days is zero |
Preferred Stock Level equals Safety Stock Level. |
|
Preferred Stock Level Days is missing |
NetSuite calculates Safety Stock Level and Reorder Point. It does not calculate Preferred Stock Level and logs a warning. |