ABC analysis: ranking inventory by value and setting policy from it
ABC analysis step by step: rank items by annual usage value, cut classes at 80% and 95% cumulative value, then set count, review and buffer policy per class.
ABC analysis ranks every item by annual usage value — unit cost times annual usage — then splits the ranked list at cumulative-value thresholds, conventionally 80% for class A and 95% for class B. In the 12-item example below, 4 A items carry 80.2% of $1,290,480 of annual value and 5 C items carry 4.2%.
Key takeaways
- Rank on annual usage value — unit cost × annual usage — not on unit cost and not on the on-hand balance.
- Class A is the shortest set of items whose cumulative value reaches 80%. In the worked example that is 4 items out of 12, carrying 80.2% of value.
- A classification that does not change a policy is a label. Class must drive count frequency, review cycle, buffer posture and order rule.
- ABC by itself is blind to predictability. Overlay XYZ — demand variability — before you size buffers, or your erratic A items will still stock out.
- Refresh quarterly, not monthly. The list of items that changed class is usually more useful than the classification itself.
ABC analysis exists because attention is the scarcest thing in an inventory team. You cannot review 4,000 items weekly, forecast them individually, or count them every month — and you do not need to, because value is never spread evenly across a catalogue. ABC analysis ranks items by how much money moves through them each year and splits that ranking into three classes, so effort follows value.
- ABC analysis
- A Pareto classification of inventory items by annual usage value. Items are sorted from highest value to lowest, a running cumulative percentage of total value is taken, and classes are cut at chosen thresholds — commonly 80% for A and 95% for B, with everything after that class C. Each class then gets a different management policy.
The one input people get wrong
Annual usage value = annual quantity consumed × unit cost. Three wrong inputs get used in its place, and each produces a plausible-looking classification that sends effort to the wrong place:
- Unit cost alone. This makes a $9,000 spare that ships once every three years a class A item, and a $0.42 bolt consumed 26,000 times a year a class C item. The bolt stops a production line; the spare sits in a cage.
- On-hand balance. Ranking by what you are holding answers a different and also useful question — where is the cash parked — but it rewards items you over-bought and hides fast movers you keep lean.
- Sales revenue. Fine for a commercial ABC, but it mixes margin into an inventory decision. Use cost when the output is a stocking policy, and never mix bases in one list.
A worked ABC analysis, all twelve items
Twelve items from one warehouse, ranked by annual usage value. Unit cost and annual usage are both shown so every value column is checkable. Total annual usage value is $1,290,480.
| Rank | Item | Unit cost | Annual usage | Annual value | % of total | Cumulative % | Class |
|---|---|---|---|---|---|---|---|
| 1 | VLV-300 | $148.00 | 2,600 | $384,800 | 29.8% | 29.8% | A |
| 2 | PMP-120 | $92.50 | 3,200 | $296,000 | 22.9% | 52.8% | A |
| 3 | MTR-075 | $310.00 | 640 | $198,400 | 15.4% | 68.1% | A |
| 4 | SEA-410 | $7.40 | 21,000 | $155,400 | 12.0% | 80.2% | A |
| 5 | HSE-220 | $24.80 | 3,750 | $93,000 | 7.2% | 87.4% | B |
| 6 | BRG-118 | $17.40 | 4,100 | $71,340 | 5.5% | 92.9% | B |
| 7 | CPL-505 | $41.00 | 900 | $36,900 | 2.9% | 95.8% | B |
| 8 | GSK-090 | $2.35 | 8,600 | $20,210 | 1.6% | 97.3% | C |
| 9 | FIT-611 | $9.80 | 1,450 | $14,210 | 1.1% | 98.4% | C |
| 10 | BLT-014 | $0.42 | 26,000 | $10,920 | 0.8% | 99.3% | C |
| 11 | WSH-002 | $0.18 | 31,000 | $5,580 | 0.4% | 99.7% | C |
| 12 | CLP-330 | $3.10 | 1,200 | $3,720 | 0.3% | 100.0% | C |
Check the boundaries by hand. Cumulative value at rank 3 is $384,800 + $296,000 + $198,400 = $879,200, which is 68.1% of $1,290,480 — still under 80%, so rank 4 joins class A and takes the cumulative to $1,034,600, or 80.2%. Class A is therefore the shortest set of items whose combined value reaches the threshold. The same rule at 95% puts rank 7 in class B, ending it at $1,235,840, or 95.8%.
| Class | Items | % of item count | Annual value | % of value |
|---|---|---|---|---|
| A | 4 | 33.3% | $1,034,600 | 80.2% |
| B | 3 | 25.0% | $201,240 | 15.6% |
| C | 5 | 41.7% | $54,640 | 4.2% |
| Total | 12 | 100% | $1,290,480 | 100% |
Paste your own item list to get the ranking, cumulative percentages and class splits with thresholds you control.
Class policies: what each class actually earns
A classification that changes nothing is a spreadsheet column. The output of ABC analysis is a policy table, and it should be short enough that a planner can hold it in their head.
| Policy | Class A | Class B | Class C |
|---|---|---|---|
| Cycle count frequency | Monthly | Quarterly | Annually, or on a two-bin trigger |
| Review cycle | Weekly, by exception daily | Monthly | On stockout or annual review |
| Forecast method | Item-level, planner-reviewed | Statistical, exception-reported | Simple run rate |
| Buffer posture | Calculated safety stock, service level 98–99% | Calculated, 95% | Generous fixed cover — cheap to over-stock |
| Order quantity rule | EOQ, reviewed quarterly | EOQ or fixed period cover | Bulk order, long cover, automate it |
| Supplier posture | Dual-sourced where possible, measured lead times | Single source, tracked performance | Whatever is easiest to reorder |
| Who owns it | A named planner | A team, by exception | The system |
The counting arithmetic makes the case on its own. Under this policy the twelve items need 4 × 12 + 3 × 4 + 5 × 1 = 65 counts a year, with 80.2% of value passing under a monthly count. Counting all twelve monthly would be 144 counts — the ABC schedule does the same job for 55% fewer. Counting all twelve quarterly is 48 counts, less work, but leaves four fifths of your value checked four times a year. Scale sample sizes with the cycle count sample size calculator.
The XYZ overlay: value is not predictability
ABC tells you which items are worth money. It says nothing about whether their demand is forecastable, and buffer size is driven almost entirely by that second question. XYZ classification fills the gap by ranking items on the coefficient of variation of period demand — standard deviation divided by the mean.
| Class | Coefficient of variation | Demand pattern | Buffer implication |
|---|---|---|---|
| X | Below 0.25 | Steady, well forecastable | Small buffer; formula-driven safety stock works well |
| Y | 0.25 to 0.75 | Trending or seasonal | Buffer sized per season, not per year |
| Z | Above 0.75 | Erratic, lumpy, project-driven | Large buffer, or do not stock it — quote a lead time instead |
Run it on the three top items above. VLV-300 has a monthly mean of 2,600 ÷ 12 = 217 units and a monthly deviation of 38, so its coefficient of variation is 38 ÷ 217 = 0.18 — class X. PMP-120 averages 267 a month with a deviation of 165, so 165 ÷ 267 = 0.62 — class Y. MTR-075 averages 53 a month with a deviation of 62, giving 62 ÷ 53 = 1.16 — class Z, because it ships in project lots rather than steadily.
All three are class A, and all three need different treatment. AX items are where formula-driven replenishment works best: tight buffers, high service level, low effort. AY items need seasonal parameters and a planner who looks at the shape. AZ items are the ones that break planning systems — a large fixed buffer, a make-to-order arrangement or a customer commitment is usually cheaper than trying to forecast them. Size the buffers per cell with the safety stock calculator, and set the trigger with the reorder point guide.
How to run an ABC analysis
- 01
Pull 12 months of issues by item
Quantity consumed, not quantity purchased and not the current balance. Exclude intercompany transfers, returns and scrap adjustments, or you will double-count movement. Twelve months smooths seasonality; six months is acceptable if the assortment changed materially.
- 02
Attach a consistent unit cost, and fix part-year items
Standard cost or a 12-month average cost, applied the same way to every line — mixing last purchase price for some items and standard cost for others quietly re-ranks the list. Then annualise anything live for only part of the window: an item three months old shows a quarter of its true value and lands in class C. Drop discontinued lines rather than letting run-out volume earn them an A class they will never need again.
- 03
Multiply, sort descending, and take a running cumulative percentage
Annual value = usage × unit cost. Sort highest to lowest, then compute each item's share of the grand total and the running cumulative. The cumulative column is the whole analysis; the item shares are only for reading the shape of the curve.
- 04
Cut the classes at your thresholds
80% and 95% are the conventional starting points. Keep the item that crosses each threshold in the lower class, so class A is the shortest list reaching 80%. If your curve is very steep, a 70% A threshold may produce a more workable A list — the thresholds are policy, not formula. Pick and document them.
- 05
Attach policies, and change something
Write count frequency, review cycle, service level and order rule per class, then push them into the item master fields your ERP actually uses for replenishment. If nothing on any item record changes, the analysis has not happened yet.
- 06
Overlay demand variability before setting buffers
Compute the coefficient of variation of monthly demand per item and assign X, Y or Z. Set service levels by ABC and buffer method by XYZ. This is the step that separates a classification that works from one that produces stockouts on your most important items.
- 07
Schedule a quarterly refresh and diff the classes
Re-run every quarter and produce the list of items that changed class. A C item that became A means demand shifted and nobody re-planned it — that report is frequently more valuable than the classification. Refreshing monthly makes items flip on noise and destroys the stability the policies depend on.
Where ABC analysis is the wrong tool
- Criticality is not value. A $12 sensor that stops a $4,000-an-hour line belongs in class A whatever the arithmetic says, and a contractual availability commitment overrides class outright. Keep a manual override list, and keep it short and reviewed.
- Very short life cycles. If items are replaced every two quarters, a 12-month usage history describes a catalogue you no longer sell. Classify by planned volume instead.
- Single-site logic on a multi-site business. Value distribution differs by warehouse. A national ABC assigns branch policies from a distribution none of the branches has.
Getting the ranked list out of your ERP
The classification takes a minute once the list exists. Building the list is the job: twelve months of issue quantities by item and location, on a consistent cost basis, net of intercompany and returns, with part-year items annualised. That is a saved search, an export, a cost lookup, a pivot and a manual review of new items — every quarter, forever, which is why so many ABC classifications in production are three years old.
Ask for "annual usage value by item for the last 12 months, excluding intercompany transfers, ranked descending" and the answer is computed live from your own account with the query shown underneath, so you can confirm the cost basis rather than assume it. Then sort within class by margin using the inventory turnover calculator — the ranking in inventory turnover: how to read it is the natural second pass on the same list.
Frequently asked questions
How do you do an ABC analysis of inventory?
Multiply each item's annual usage quantity by its unit cost, sort the list from highest value to lowest, then take a running cumulative percentage of total value. Items up to roughly 80% cumulative are class A, up to 95% are class B, and the remainder are class C. Then assign different count, review and buffer policies per class.
What percentages are used for ABC classes?
80% and 95% of cumulative value are the conventional cut-offs, which typically yields classes of about 80/15/5 by value. They are policy choices, not formulas. If your top few items are extremely concentrated, a 70% A threshold produces a shorter and more workable A list. Document whichever thresholds you choose and keep them stable between refreshes.
Should ABC analysis be based on usage value or unit cost?
Annual usage value — quantity consumed over a year multiplied by unit cost. Unit cost alone would classify an expensive spare that ships once every three years as class A, and a $0.42 bolt consumed 26,000 times a year as class C. The bolt is the one that stops the line.
What is ABC XYZ analysis?
It adds a second axis. ABC ranks items by annual value; XYZ ranks them by demand variability, using the coefficient of variation of period demand — under 0.25 is X, 0.25 to 0.75 is Y, above 0.75 is Z. The nine resulting cells let you set service level by value and buffer method by predictability, which value alone cannot do.
How often should ABC classification be updated?
Quarterly for most operations, plus after any material change in demand or assortment. Monthly refreshes make items flip class on noise, which undermines the stability that count schedules and buffer policies rely on. Always produce the diff — the list of items that changed class since last time is often the most useful output.
Which class does the item that crosses the 80% line belong to?
Convention keeps it in the lower class, so class A is the shortest set of items whose combined value reaches 80%. In the example, rank 3 leaves cumulative value at 68.1% and rank 4 takes it to 80.2%, so rank 4 is class A. Either rule is defensible — pick one and hold it, or items will appear to move class for no reason.
Calculators for this
Paste item values and run an ABC analysis: Pareto ranking, cumulative percentage, and A/B/C classes with your own thresholds, plus value per class.
Find the cycle count sample size for a target confidence and margin of error on a finite population, plus the counts per day your cycle needs.
Calculate safety stock two ways: service level with a z-score table, or max usage minus average usage. Includes days of cover and stock value.
Calculate inventory turnover from COGS and average inventory. Get turns, days of inventory, GMROI and the cash freed by hitting a target turn rate.
Keep reading
Inventory turnover explained: the COGS formula, days of inventory, GMROI, directional ranges by business type, and why chasing turns can cost you margin.
The reorder point formula worked end to end: demand during lead time, safety stock, lead-time variability, review periods and the ERP min/max fields.
Four safety stock formulas on one data set, from 543 to 6,120 units: what each assumes, the z values, and service level versus fill rate.
EOQ explained with a worked example: the square-root formula, why ordering and holding cost are equal at the optimum, and the assumptions that break.