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.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.
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:
| 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.
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.
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