Blog/ABC Inventory Analysis: Classify SKUs, Set Policy ...

ABC Inventory Analysis: Classify SKUs, Set Policy by Tier

ABC inventory analysis ranks every SKU by annual usage value (AUV = units sold × unit cost) and divides the catalog into three tiers. A-items (20% of SKUs, 80% of value) get the tightest replenishment controls; C-items the lightest. How the formula works, where standard ABC breaks without demand-pattern data, and the full ABC × SBC policy matrix.
By LineNow Team·Published ·8 min read

ABC inventory analysis is a classification method that ranks every SKU by annual usage value — AUV = units sold × unit cost — then divides the sorted list into three tiers based on each tier's cumulative contribution to total inventory value. A-items (roughly 20% of SKUs, 80% of total value) get the tightest replenishment controls; B-items (roughly 30% of SKUs, 15% of value) get standard management; C-items (roughly 50% of SKUs, 5% of value) get the lightest. In a closed-loop procurement system, ABC class should automatically determine forecasting method, safety-stock service level, reorder frequency, and supplier attention per SKU — without the operator manually configuring different rules for every item in the catalog.

The classification formula

For each active SKU:

AUV = units sold (trailing 12 months) × unit cost

Steps:

  1. Compute AUV for every active SKU.
  2. Sort all SKUs descending by AUV.
  3. Compute each SKU's cumulative percentage of the total AUV across the full catalog.
  4. Assign class by cumulative threshold:
ClassCumulative AUV thresholdTypical SKU shareTypical value share
A≤ 80%~20%~80%
B81–95%~30%~15%
C> 95%~50%~5%

The 80/95 thresholds are a standard starting convention, not a universal rule. If your catalog's natural break falls at 75%/92%, use those. Single-source SKUs, regulated goods, and production-critical components often deserve A-class treatment regardless of AUV rank — a $4 ingredient that stockouts shuts down a kitchen carries the same operational consequence as a $40 one.

Worked example

A specialty retailer with 200 active SKUs and $400,000 in annual inventory spend:

SKU bandAUV totalSKU countCumulative AUV %Class
Top 40 SKUs$320,00040 (20%)80%A
Next 60 SKUs$60,00060 (30%)95%B
Bottom 100 SKUs$20,000100 (50%)100%C

The top 40 SKUs drive 80% of inventory spend and 80% of potential stockout cost. The bottom 100 SKUs could all stockout simultaneously and the financial impact would be 5% of total inventory cost. This asymmetry is why uniform replenishment — the same formula, the same service level, the same review cadence for all 200 SKUs — either over-manages the C-tail (wasted attention) or under-manages the A-head (expensive stockouts).

What ABC class should determine operationally

Policy dimensionA-itemsB-itemsC-items
Safety-stock service level95%+ (z ≈ 1.65)80–90% (z ≈ 0.84–1.28)70–80% (z ≈ 0.52–0.84)
Review frequencyWeekly or real-time alertWeeklyBi-weekly or on-order
Reorder triggerAutomated alert + PO draftAlert-drivenReview-on-order
Supplier relationshipNamed contact, SLA trackedShared queueCatalog or spot order
Physical count cycleWeekly or perpetualMonthlyQuarterly

These are sensible defaults. Volatile A-items may need daily review; stable C-items with a single reliable supplier can tolerate even lighter controls. The point is differentiation — applying the same cadence and service target to a $320,000 SKU band and a $20,000 SKU band wastes both money and operator attention.

Where ABC analysis breaks down: the demand-pattern blind spot

ABC classification ranks by . An A-item that sells three units every day has fundamentally different replenishment needs than an A-item that sells zero units for six weeks and then thirty in a single large order. Both are A-class by AUV. But applying the same safety-stock formula or the same forecast method to both will systematically over-stock or under-stock one of them.

The missing dimension is demand variability. The coefficient of variation (CV²) measures how volatile non-zero demand is relative to its mean. The Syntetos–Boylan–Croston (SBC) framework combines CV² with a second parameter — ADI (Average Demand Interval, the average number of periods between non-zero demand observations) — to classify each item into four demand regimes:

PatternADICV²Examples
Smooth≤ 1.32≤ 0.49Daily-sold staples; coffee beans, house wine
Intermittent> 1.32≤ 0.49Slow but stable; specialty bitters, niche parts
Erratic≤ 1.32> 0.49Daily but spiky; trending items, weather-driven
Lumpy> 1.32> 0.49Rare and spiky; B2B bulk orders, catering

These four demand regimes require different forecasting methods. Smooth demand: exponential smoothing or a moving average. Intermittent or erratic demand: Syntetos–Boylan Approximation (SBA), which corrects the systematic over-estimation bias in Croston's method. Lumpy demand: SBA plus operator-level review for event-driven signals.

Applying a moving average to a lumpy A-item will over-order on top of spikes and stockout in the gaps — silently, because the math will look internally consistent. ABC class alone cannot prevent this.

The full policy matrix: ABC × demand pattern

The practical replenishment policy for each SKU is the cross-product of its ABC class and its SBC demand pattern:

Smooth demandIntermittent / erratic demandLumpy demand
A-itemExponential smoothing; z = 1.65SBA; z = 1.65; rush-order detectionSBA + operator review; event-based buffer
B-itemConsumption rate × lead time; z = 1.28SBA; z = 1.28SBA + scheduled review
C-itemEOQ-guided; z = 0.67 or manual bufferMinimal buffer; review-on-orderManual buying

Most ABC analysis guides stop at the tier thresholds. The matrix is where the replenishment output actually diverges: an A-item with lumpy demand needs a different buffer, a different PO cadence, and a different supplier conversation than an A-item with smooth demand — even though both rank identically in the AUV sort. Collapsing them into a single "A-class policy" builds the error in at the policy level.

Keeping ABC classes current

ABC classification is not a one-time spreadsheet exercise. Demand drifts, catalogs expand, and seasonal items move between tiers. Three practical rules:

Recompute quarterly using trailing-12-month data. A seasonal item that ranks A in Q4 may fall to C by Q2. Static classes drift out of alignment with actual purchasing behavior within two quarters. Trailing 12 months smooths seasonality while still tracking the catalog's real value distribution.

Lock critical items at A by override. Single-source ingredients, regulated goods, and high-COGS production inputs should hold A classification regardless of recent AUV. A supply disruption on a $4 component that blocks $80,000 of weekly production is an A-item risk even if the AUV says otherwise.

Shadow-class new SKUs at A for the first 90 days. A new SKU does not have 12 months of AUV history. Treating it as C-class by default underweights the risk during the period when demand patterns are least understood. After 90 days, enough history exists to compute a defensible AUV and move the SKU to its natural class.

How LineNow applies ABC-aware replenishment

LineNow computes AUV nightly from POS sales and supplier cost history. Each SKU is assigned an ABC class from the trailing-12-month catalog distribution. That class feeds into two places in the replenishment model:

Safety-stock service level. LineNow sets the z-score for safety stock by ABC class as a configurable default: A-items at z = 1.65 (95% service), B-items at z = 1.28 (90%), C-items at z = 0.67 (75%). These defaults can be overridden per item or supplemented with a manual buffer for items that warrant tighter protection regardless of class.

Alert ranking and PO draft priority. Inventory alerts are ranked by revenue at risk — days of inventory on hand × consumption rate × unit revenue. A-items' higher unit value means they surface first in practice without a manual priority override. When an A-item crosses its reorder point, the system drafts a purchase order immediately. C-item alerts queue for the next scheduled review window.

The SBC demand classification — ADI and CV², computed daily from POS data — runs in parallel and routes each SKU to SBA or exponential smoothing independently of its ABC class. An A-item with intermittent demand gets SBA and z = 1.65. A C-item with smooth demand gets exponential smoothing and z = 0.67. The two dimensions combine at the policy output.

The result: replenishment math is defensible at the per-SKU level rather than uniform across the catalog, operator attention goes to the items where stockouts cost the most, and the system does not require manual policy-setting per item as the catalog grows.

See how LineNow applies closed-loop replenishment across your full catalog — 90-day free trial, no credit card required.

Related

ABC inventory analysisabc analysis inventory managementabc inventory classificationabc analysis formulainventory abc classification small businessabc analysis reorder pointabc xyz inventory analysis
Want to see this in action?Book a Demo