ABC-XYZ Analysis Tool
Most of your inventory value sits in a small share of SKUs, yet most teams manage every SKU the same way. Paste usage by SKU to rank items by value and demand variability, then get a stocking policy for each of the nine classes.
- Pareto ABC
- XYZ variability
- 9-box policy matrix
- CSV with policies
The vital few
27% of SKUs → 80% of value
60 SKUs · $3,859,481 consumed a year
Class A
16 SKUs
$3.1M · 80.5% of value
Class B
12 SKUs
$562K · 14.6% of value
Class C
32 SKUs
$191.6K · 5% of value
01Usage by SKU
Columns: sku, description, unit_cost then either annual_qty or one column per month (needed for XYZ).
60 SKUs · 12 months of usage
02Class boundaries
Above this is Z (erratic). CV = monthly σ ÷ mean.
03Pareto curve
04ABC × XYZ policy matrix
Select a class to filter the SKU list.
05All SKUs · 60
| # | SKU | Annual qty | Unit cost | Annual value | Cumulative | CV | Class |
|---|---|---|---|---|---|---|---|
| 1 | SKU-008Tipo 00 flour 50 lb | 4,363 | $94.65 | $412,958 | 10.7% | 1.14 | AZ |
| 2 | SKU-044Quat sanitizer 1 gal x 4 (site B) | 2,431 | $161.89 | $393,555 | 20.9% | 1.29 | AZ |
| 3 | SKU-010Jasmine rice 50 lb | 2,901 | $123.61 | $358,593 | 30.2% | 0.08 | AX |
| 4 | SKU-054Microgreens 1 lb (site B) | 1,932 | $159.47 | $308,096 | 38.2% | 0.09 | AX |
| 5 | SKU-053Truffle oil 250 ml (site B) | 3,872 | $74.16 | $287,148 | 45.6% | 0.11 | AX |
| 6 | SKU-030Butter 36 x 1 lb | 2,781 | $85.51 | $237,803 | 51.8% | 0.08 | AX |
| 7 | SKU-009Olive oil 3 L | 1,243 | $151.20 | $187,942 | 56.6% | 0.10 | AX |
| 8 | SKU-021Ice machine filter | 1,223 | $134.60 | $164,616 | 60.9% | 0.08 | AX |
| 9 | SKU-055Coffee beans 5 lb (site B) | 3,014 | $38.50 | $116,039 | 63.9% | 0.07 | AX |
| 10 | SKU-031Chicken breast 40 lb (site B) | 694 | $154.04 | $106,904 | 66.7% | 0.75 | AY |
| 11 | SKU-034Fryer oil 35 lb (site B) | 621 | $168.64 | $104,725 | 69.4% | 0.08 | AX |
| 12 | SKU-012Heavy cream 12 qt | 1,390 | $73.18 | $101,720 | 72% | 0.70 | AY |
| 13 | SKU-002Ground beef 80/20 10 lb | 656 | $136.31 | $89,419 | 74.3% | 0.66 | AY |
| 14 | SKU-007Crushed tomatoes #10 x 6 | 735 | $120.17 | $88,325 | 76.6% | 0.64 | AY |
| 15 | SKU-016Paper towel rolls | 1,214 | $63.82 | $77,477 | 78.6% | 1.20 | AZ |
| 16 | SKU-005Romaine hearts 24 ct | 1,044 | $67.63 | $70,606 | 80.5% | 0.08 | AX |
| 17 | SKU-006Burger buns 8 ct x 12 | 1,128 | $57.84 | $65,244 | 82.2% | 0.09 | BX |
| 18 | SKU-059Eggs 15 dz (site B) | 2,736 | $23.64 | $64,679 | 83.8% | 0.06 | BX |
| 19 | SKU-036Burger buns 8 ct x 12 (site B) | 2,979 | $19.84 | $59,103 | 85.4% | 0.09 | BX |
| 20 | SKU-041Mozzarella 6 x 5 lb (site B) | 3,276 | $17.04 | $55,823 | 86.8% | 0.12 | BX |
| 21 | SKU-050Walk-in door gasket (site B) | 731 | $73.50 | $53,729 | 88.2% | 1.28 | BZ |
| 22 | SKU-032Ground beef 80/20 10 lb (site B) | 511 | $90.45 | $46,220 | 89.4% | 1.15 | BZ |
| 23 | SKU-025Coffee beans 5 lb | 2,078 | $21.54 | $44,760 | 90.6% | 1.35 | BZ |
| 24 | SKU-048Dish detergent 5 gal (site B) | 460 | $90.58 | $41,667 | 91.6% | 1.74 | BZ |
| 25 | SKU-027Lemons 115 ct | 4,035 | $8.95 | $36,113 | 92.6% | 0.67 | BY |
| 26 | SKU-011Mozzarella 6 x 5 lb | 5,012 | $6.45 | $32,327 | 93.4% | 0.06 | BX |
| 27 | SKU-043Nitrile gloves L (site B) | 1,354 | $23.20 | $31,413 | 94.2% | 1.69 | BZ |
| 28 | SKU-022Saffron 1 oz | 1,495 | $20.66 | $30,887 | 95% | 0.69 | BY |
| 29 | SKU-052Saffron 1 oz (site B) | 1,074 | $21.04 | $22,597 | 95.6% | 0.08 | CX |
| 30 | SKU-049Fryer thermostat (site B) | 1,504 | $14.83 | $22,304 | 96.2% | 0.10 | CX |
| 31 | SKU-047Trash liners 40-45 gal (site B) | 4,264 | $4.30 | $18,335 | 96.7% | 0.09 | CX |
| 32 | SKU-038Tipo 00 flour 50 lb (site B) | 189 | $89.86 | $16,984 | 97.1% | 1.34 | CZ |
| 33 | SKU-026Oat milk 12 x 32 oz | 415 | $36.99 | $15,351 | 97.5% | 0.10 | CX |
| 34 | SKU-028Avocados 48 ct | 160 | $85.84 | $13,734 | 97.9% | 1.50 | CZ |
| 35 | SKU-024Microgreens 1 lb | 1,058 | $8.71 | $9,215 | 98.1% | 0.09 | CX |
| 36 | SKU-015To-go clamshell 9 in | 851 | $8.99 | $7,650 | 98.3% | 0.71 | CY |
| 37 | SKU-003Salmon fillet 10 lb | 60 | $127.32 | $7,639 | 98.5% | 0.12 | CX |
| 38 | SKU-014Quat sanitizer 1 gal x 4 | 568 | $12.49 | $7,094 | 98.7% | 1.39 | CZ |
| 39 | SKU-057Lemons 115 ct (site B) | 33 | $182.13 | $6,010 | 98.8% | 0.66 | CY |
| 40 | SKU-033Salmon fillet 10 lb (site B) | 145 | $37.41 | $5,424 | 99% | 2.26 | CZ |
| 41 | SKU-035Romaine hearts 24 ct (site B) | 71 | $65.91 | $4,680 | 99.1% | 1.37 | CZ |
| 42 | SKU-001Chicken breast 40 lb | 47 | $90.82 | $4,269 | 99.2% | 0.68 | CY |
| 43 | SKU-019Fryer thermostat | 480 | $8.19 | $3,931 | 99.3% | 0.06 | CX |
| 44 | SKU-039Olive oil 3 L (site B) | 316 | $12.31 | $3,890 | 99.4% | 0.07 | CX |
| 45 | SKU-029Eggs 15 dz | 385 | $10.03 | $3,862 | 99.5% | 0.67 | CY |
| 46 | SKU-046Paper towel rolls (site B) | 13 | $168.70 | $2,193 | 99.6% | 1.50 | CZ |
| 47 | SKU-040Jasmine rice 50 lb (site B) | 12 | $181.42 | $2,177 | 99.6% | 0.00 | CX |
| 48 | SKU-056Oat milk 12 x 32 oz (site B) | 24 | $88.52 | $2,124 | 99.7% | 0.00 | CX |
| 49 | SKU-020Walk-in door gasket | 11 | $177.68 | $1,954 | 99.7% | 0.87 | CY |
| 50 | SKU-023Truffle oil 250 ml | 12 | $158.15 | $1,898 | 99.8% | 0.00 | CX |
| 51 | SKU-017Trash liners 40-45 gal | 11 | $159.78 | $1,758 | 99.8% | 1.50 | CZ |
| 52 | SKU-060Butter 36 x 1 lb (site B) | 12 | $139.20 | $1,670 | 99.9% | 0.00 | CX |
| 53 | SKU-042Heavy cream 12 qt (site B) | 12 | $99.60 | $1,195 | 99.9% | 1.21 | CZ |
| 54 | SKU-018Dish detergent 5 gal | 14 | $63.92 | $895 | 99.9% | 1.86 | CZ |
| 55 | SKU-058Avocados 48 ct (site B) | 12 | $67.59 | $811 | 99.9% | 0.00 | CX |
| 56 | SKU-004Fryer oil 35 lb | 45 | $16.08 | $724 | 100% | 1.08 | CZ |
| 57 | SKU-037Crushed tomatoes #10 x 6 (site B) | 11 | $54.27 | $597 | 100% | 0.87 | CY |
| 58 | SKU-045To-go clamshell 9 in (site B) | 47 | $8.05 | $378 | 100% | 0.68 | CY |
| 59 | SKU-051Ice machine filter (site B) | 6 | $28.22 | $169 | 100% | 2.49 | CZ |
| 60 | SKU-013Nitrile gloves L | 12 | $6.37 | $76 | 100% | 0.00 | CX |
60 SKUs · one site · one year
Classifying SKUs is the easy part. The value comes from running a different ordering policy for each class, at every site.
Bollard reclassifies each site’s catalog from live usage and applies class-specific reorder rules automatically: tight control for AX items, min/max for C items, and order-on-demand for CZ items.
Method
How SKUs are classified
ABC: each SKU’s annual value is usage × unit cost. SKUs are ranked by value; a SKU is A if the cumulative value before it is under the A cut-off, B if under the B cut-off, and C otherwise.
XYZ: the coefficient of variation of monthly usage. CV up to the X limit is steady, up to the Y limit is variable, and above it is erratic. A SKU with no usage in a month counts as zero for that month.
Each of the nine classes comes with a recommended policy, from continuous review with lean buffers for AX items to order-on-demand or removal for CZ items.
From one site to every site
Classes change as usage changes, and each site has different A items.
Bollard classifies every site’s catalog from live usage and applies class-specific replenishment rules automatically, so buyers spend their time on high-value items rather than the long tail.
- ABC-XYZ classification per site, kept current
- Reorder rules by class
- Slow-moving and erratic items flagged for review
- Network-wide view of where value sits
Questions
Frequently asked
What is ABC analysis?+
A way of ranking inventory by annual consumption value (usage × unit cost). A items are the few SKUs that make up most of the value, typically the top 80 percent; B items the next 15 percent; C items the long tail. It follows the Pareto principle: a small share of items accounts for most of the spend.
What does XYZ add?+
XYZ grades how predictable demand is, using the coefficient of variation (standard deviation ÷ mean) of monthly usage. X items are steady, Y items vary (often seasonally), and Z items are erratic. Combining the two gives nine classes, each suited to a different stocking policy.
What cut-offs should I use?+
The usual defaults are A up to 80 percent of cumulative value and B up to 95 percent, with X for a CV up to 0.5 and Y up to 1.0. Adjust them to your catalog. The sliders update the classes, curve and matrix instantly.
How many months of data do I need?+
ABC works with annual usage alone. XYZ needs monthly usage. Twelve months captures seasonality, and at least six is recommended. Columns other than sku, description, unit_cost and annual_qty are treated as months.
Should every site use the same classification?+
No. An item can be an A at a busy site and a C at a small one. Classify each site separately before setting reorder rules.
Is my data uploaded?+
No. The classification runs in your browser and the CSV is generated on your device.
Related tools
All tools- Safety Stock & Reorder Point CalculatorGet reorder points and par levels from usage, lead-time variability and a target service level.
- Par Level CalculatorSet par levels for a delivery schedule and see exactly how much to order today, for one item or a whole par sheet.
- Inventory Carrying Cost CalculatorAdd up capital, storage, shrinkage and spoilage to find what holding stock really costs.
- EOQ Calculator with Price BreaksEconomic order quantity with vendor price breaks, case-pack rounding and shelf-life limits.
Free tools
Calculators and document builders for organisations that buy across many sites.
Runs in your browser
I. Spend & Leakage
II. Purchasing Documents
III. Inventory & Stock
IV. Governance & Controls
Free tools, no sign-up. Your figures are processed in your browser and are not uploaded to a server unless you ask us to email you a result. Results are estimates for planning and do not constitute financial, legal or tax advice.