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:
- Compute AUV for every active SKU.
- Sort all SKUs descending by AUV.
- Compute each SKU's cumulative percentage of the total AUV across the full catalog.
- Assign class by cumulative threshold:
| Class | Cumulative AUV threshold | Typical SKU share | Typical value share |
|---|---|---|---|
| A | ≤ 80% | ~20% | ~80% |
| B | 81–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 band | AUV total | SKU count | Cumulative AUV % | Class |
|---|---|---|---|---|
| Top 40 SKUs | $320,000 | 40 (20%) | 80% | A |
| Next 60 SKUs | $60,000 | 60 (30%) | 95% | B |
| Bottom 100 SKUs | $20,000 | 100 (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 dimension | A-items | B-items | C-items |
|---|---|---|---|
| Safety-stock service level | 95%+ (z ≈ 1.65) | 80–90% (z ≈ 0.84–1.28) | 70–80% (z ≈ 0.52–0.84) |
| Review frequency | Weekly or real-time alert | Weekly | Bi-weekly or on-order |
| Reorder trigger | Automated alert + PO draft | Alert-driven | Review-on-order |
| Supplier relationship | Named contact, SLA tracked | Shared queue | Catalog or spot order |
| Physical count cycle | Weekly or perpetual | Monthly | Quarterly |
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. The physical count cadence in the table above maps directly to a cycle counting program: rotating partial counts that verify Inventory Record Accuracy (IRA) without halting operations, scheduled more tightly for the A-tier items where a ghost-stock error is most expensive.
Inventory turnover reflects ABC tier naturally: A-items — high annual usage value, high velocity — typically turn the most frequently; C-items the least. If portfolio turns for A-items are significantly below the category benchmark, the likely cause is MOQ-driven over-ordering or inflated safety stock buffers. Slow turns in the C-tail typically indicate dead stock accumulation — a write-off review question, not a replenishment controls question.
GMROI follows the same tier pattern with the margin dimension added: A-items' combination of velocity and high usage value typically generates the highest gross margin return per dollar of average inventory cost; C-items accumulating as dead stock drag the portfolio denominator without contributing proportional margin. Viewing GMROI by ABC tier makes visible exactly how much the C-tail's idle capital is costing relative to where the catalog's value is concentrated.
Where ABC analysis breaks down: the demand-pattern blind spot
ABC classification ranks by value. 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:
| Pattern | ADI | CV² | Examples |
|---|---|---|---|
| Smooth | ≤ 1.32 | ≤ 0.49 | Daily-sold staples; coffee beans, house wine |
| Intermittent | > 1.32 | ≤ 0.49 | Slow but stable; specialty bitters, niche parts |
| Erratic | ≤ 1.32 | > 0.49 | Daily but spiky; trending items, weather-driven |
| Lumpy | > 1.32 | > 0.49 | Rare 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 demand | Intermittent / erratic demand | Lumpy demand | |
|---|---|---|---|
| A-item | Exponential smoothing; z = 1.65 | SBA; z = 1.65; rush-order detection | SBA + operator review; event-based buffer |
| B-item | Consumption rate × lead time; z = 1.28 | SBA; z = 1.28 | SBA + scheduled review |
| C-item | EOQ-guided; z = 0.67 or manual buffer | Minimal buffer; review-on-order | Manual 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. For perishable A-items, A-class lock should accompany the tightest physical count cadence and mandatory FEFO picking — an expired lot in the A-tier carries the combined cost of write-off and stockout.
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 ABC-aware replenishment should work in LineNow
ABC analysis is most useful when it sits beside the procurement workflow rather than inside a standalone spreadsheet. LineNow keeps the necessary inputs close together — sales signals, supplier cost, inventory state, purchase orders, receiving, and supplier history — so ABC policy can be tied to actual buying decisions.
Safety-stock service level. ABC class should set a default z-score for safety stock: A-items might use z = 1.65 (95% service), B-items z = 1.28 (90%), and C-items z = 0.67 (75%). These defaults should remain overrideable for items that warrant tighter protection regardless of class.
Alert ranking and PO draft priority. Inventory alerts should account for revenue at risk, days of inventory on hand, consumption rate, lead time, and item criticality. A-items should surface earlier because a miss is more expensive. C-item alerts can usually wait for the next scheduled review window.
The SBC demand classification — ADI and CV² — should run in parallel and route each SKU to SBA or exponential smoothing independently of its ABC class. An A-item with intermittent demand gets SBA and a high service target. A C-item with smooth demand gets simpler smoothing and a lower service target. 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, and operator attention goes to the items where stockouts cost the most.
Related
- Coefficient of Variation (CV²): Demand Volatility Explained
- Syntetos–Boylan Approximation (SBA): Bias-Corrected Intermittent Demand Forecast
- Safety Stock: How to Size It Statistically
- Reorder Point (ROP) Formula: How to Calculate with Example
- Economic Order Quantity (EOQ) Formula
- Consumption Rate: Definition and How to Measure It