Stock Level Optimization

Automatic reorder points and min/max levels backed by research

Stocklyst calculates safety stock, reorder points, and min/max levels using 6 research-backed formulas — including demand pattern classification, skewness correction, and perishable inventory caps. No manual thresholds. No guesswork.

Inventory analytics dashboard showing demand patterns and reorder calculations

Research components

6 formulas

Graves, Syntetos-Boylan, Cornish-Fisher, Nahmias

Demand patterns

4 classifications

Smooth, erratic, intermittent, lumpy

Branch scope

Per-branch

Automatic calculation at every location

Perishable handling

Shelf-life aware

Max levels capped to prevent expiry waste

How the calculation engine works

Graves 1999 combined variability

Calculates safety stock by combining demand variability and lead time variability in a single formula, producing more accurate buffers than treating each source of uncertainty independently.

Syntetos-Boylan 2005 classification

Classifies each item into Smooth, Erratic, Intermittent, or Lumpy demand patterns using ADI and CV² thresholds. Each pattern receives tailored safety factors and calculation parameters.

Cornish-Fisher skewness correction

Adjusts the z-score for non-normal demand distributions using the Cornish-Fisher expansion. Prevents systematic over- or under-stocking when demand data is skewed.

Nahmias 1982 perishable cap

Caps max stock levels for items with shelf life constraints so the oldest units can sell before expiry. Prevents waste from overstocking perishable goods.

Nahmias 1994 anti-death-spiral

Prevents the engine from lowering safety stock during stockout periods. Without this guard, zero sales during a stockout would reduce calculated demand, perpetuating the cycle.

Zero-inclusive standard deviation

Includes zero-demand periods in variability calculations instead of filtering them out. This gives a realistic picture of demand uncertainty for items with irregular ordering patterns.

See the engine in action

The stock calculation engine runs automatically for every item at every branch, producing safety stock, reorder points, and min/max levels without manual input.

Stock Calculation Engine

Settings

Lead Time7 daysService Level95%PatternSmooth

+2 more settings

Calculated Results

Min Level47 units
Max Level137 units

Who benefits most

Retail chains

Each store gets branch-specific reorder points based on its own demand pattern. A high-traffic downtown store and a slower suburban location get different min/max levels from the same engine.

Perishable goods

Bakeries, grocers, and food distributors benefit from shelf-life-aware max caps that prevent overstocking items that expire before they sell. The Nahmias perishable cap keeps waste under control.

Seasonal and intermittent demand

Items that sell in bursts — holiday decorations, spare parts, specialty supplies — are classified as Intermittent or Lumpy and receive adjusted safety factors instead of being treated like steady sellers.

Growing businesses

As you add branches and SKUs, the engine scales automatically. No need to manually set thresholds for every new item — the formulas adapt to each item's demand history as data accumulates.

FAQ

How does Stocklyst calculate safety stock?

Stocklyst uses the Graves 1999 combined variability formula, which accounts for both demand variability and lead time variability simultaneously. The formula is SS = Z × sqrt(L × sigma_D^2 + D^2 × sigma_LT^2), where Z is the service-level z-score, L is lead time, sigma_D is demand standard deviation, D is average demand, and sigma_LT is lead time standard deviation.

What demand patterns does the engine classify?

The engine uses Syntetos-Boylan 2005 classification to categorize each item into one of four demand patterns: Smooth (regular, predictable), Erratic (variable quantity, regular timing), Intermittent (regular quantity, irregular timing), and Lumpy (variable quantity and timing). Each pattern receives tailored calculation parameters.

How does the engine handle intermittent demand items?

Items classified as Intermittent or Lumpy by the Syntetos-Boylan framework receive adjusted calculation parameters. The engine uses higher safety factors and modified demand averaging windows to account for the irregular ordering patterns typical of spare parts, seasonal items, and slow movers.

What is Cornish-Fisher skewness correction?

Standard safety stock formulas assume normally distributed demand, but real inventory data is often skewed. The Cornish-Fisher expansion adjusts the z-score to account for skewness: Z_cf = Z + (Z^2 - 1) × skewness / 6. This prevents over- or under-stocking when demand distributions are asymmetric.

How does perishable inventory capping work?

For items with shelf life constraints, the engine applies Nahmias 1982/1994 perishable caps. Max stock levels are capped so that the oldest units can be sold before expiry, preventing waste from overstocking perishable goods. The cap is based on average daily demand multiplied by remaining shelf life.

Does the engine protect against death-spiral stockouts?

Yes. The Nahmias anti-death-spiral guard prevents the engine from lowering safety stock during periods of zero or near-zero demand caused by stockouts. Without this guard, a stockout would reduce calculated demand averages, leading to even lower reorder points and perpetuating the stockout cycle.

Stop setting stock levels by gut feeling

Let research-backed formulas calculate your min/max, safety stock, and reorder points automatically — for every item, at every branch.

Create account