Distribution
ERP
Inventory Management
Supply Chain Management
Warehouse Management
ABC Analysis in Inventory: How to Classify Items and Use the Results

Last updated: October 9, 2026 · Independent guide · We do not sell rankings or coverage.
ABC analysis in inventory ranks every stocked item by its annual usage value (annual units used or sold multiplied by unit cost), then splits the ranked list into A, B and C classes so you can spend control effort where the money is. A items are the small group that carries most of the value, C items are the long tail, and B items sit between them. The classes only pay off when you tie them to count frequency, safety stock targets and purchasing rules, and when your ERP recalculates them on a schedule instead of leaving a spreadsheet to go stale.
The ABC analysis process at a glance
- Extract the data: 12 months of issues or sales by item, plus a consistent unit cost.
- Calculate annual usage value and rank: multiply quantity by cost, sort descending, add cumulative percentages.
- Set the A/B/C cutoffs: choose cumulative value thresholds and check the class sizes they produce.
- Apply overrides: fix the class of critical, new and phase-out items.
- Set count frequency by class: turn classes into counts per year.
- Set service levels and safety stock by class: give A items tighter protection where demand is predictable.
- Set purchasing and review rules by class: decide review cadence and order policy for each class.
- Reclassify on a schedule: rerun, review the movers and publish the new classes.
| Stage | Responsible | Accountable | Consulted |
|---|---|---|---|
| 1-2. Data and ranking | Inventory analyst | Inventory manager | Cost accounting |
| 3-4. Cutoffs and overrides | Inventory manager | Operations or supply chain director | Purchasing, sales, engineering |
| 5. Count frequency | Warehouse or inventory control supervisor | Inventory manager | Controller, external auditors |
| 6-7. Safety stock and purchasing rules | Planners and buyers | Purchasing or planning manager | Finance (working capital), sales |
| 8. Reclassification | Inventory analyst | Inventory manager | Planners, warehouse |
Role split is an illustration of a common setup; adjust it to your organization.
Step 1: Extract usage and cost data
The inventory analyst pulls the last 12 months of issues (for a manufacturer, including consumption on work orders) or shipped sales quantities (for a distributor), by item and, if you classify per site, by location. NetSuite’s Inventory Optimization feature, for example, uses “the last 12 full calendar months of history” for scheduled segmentation (NetSuite Help Center, no date shown). You also need one cost basis for every item, normally standard or average cost.
Controls: use cost, not selling price, if the goal is inventory control, and convert every quantity to the base unit of measure. NetSuite states that annual usage is calculated in the base unit when Multiple Units of Measure is enabled (NetSuite Help Center, no date shown).
What goes wrong: mixed units, zero or missing costs that push real items into C, and transfers between your own warehouses counted as usage.
Step 2: Calculate annual usage value and rank
Annual usage value = annual quantity used or sold × unit cost. NetSuite uses the same definition: “Annual consumption value is annual usage multiplied by unit cost” (NetSuite Help Center, no date shown). Sort items from highest to lowest value, then add each item’s share of the total and a running cumulative percentage.
The worked example below is an illustration for a distributor with ten SKUs and $1,000,000 of annual usage value. SKU-101, for instance, shipped 4,120 units at a $100 average cost, giving $412,000.
| Item (illustration) | Annual usage value | Cumulative % of value | Class (A to 80%, B to 95%) |
|---|---|---|---|
| SKU-101 | $412,000 | 41.2% | A |
| SKU-102 | $268,000 | 68.0% | A |
| SKU-103 | $121,000 | 80.1% | A (crosses cutoff) |
| SKU-104 | $64,000 | 86.5% | B |
| SKU-105 | $48,000 | 91.3% | B |
| SKU-106 | $31,000 | 94.4% | B |
| SKU-107 | $22,000 | 96.6% | B (crosses cutoff) |
| SKU-108 | $15,000 | 98.1% | C |
| SKU-109 | $11,000 | 99.2% | C |
| SKU-110 | $8,000 | 100.0% | C |
Here, 30% of items carry 80.1% of value. We put the item that straddles a cutoff in the higher class. Oracle Inventory works the same way when a percentage does not match an item exactly: it “chooses the first item with a value greater than the value entered” (Oracle Inventory User’s Guide, no date shown). Decide your rule once and document it.
Step 3: Set the A/B/C cutoffs
The inventory manager owns the thresholds. There is no regulatory standard, and published defaults differ widely:
- NetSuite Inventory Optimization defaults to a cumulative 80.0% threshold for A and 95.0% for B, with everything else in C (NetSuite Help Center, no date shown).
- Business Central’s Item – ABC Analysis report uses percentages that must total 100%, with an example of A = 50, B = 30 and C = 20 (Microsoft Learn, May 27, 2026).
- Lightspeed, which sells retail point-of-sale software, describes A items as about 10-20% of items and 70-80% of value (Lightspeed, August 11, 2026).
Controls: check the class sizes, not just the value split. The A class has to be small enough to manage closely, and the count frequencies in Step 5 have to fit your counting labor.
What goes wrong: copying 80/15/5 without checking the result, and using different thresholds at different sites so that class reports cannot be compared.
Step 4: Apply overrides for critical, new and phase-out items
Annual usage value misses items whose stockout cost is far higher than their spend. Lokad, which sells forecasting software, points to rarely used but critical parts, such as aircraft components, as a blind spot of the method (Lokad, March 2020). A $40 seal that stops a production line, or a part tied to a key customer contract, belongs in a higher class whatever its usage value.
ERPs support this with fixed classes. SAP lets you fix the cycle counting indicator manually in the material master to prevent automatic changes (SAP Learning, no date shown), and in Acumatica, items with fixed ABC codes keep their codes when ABC codes are updated (MYOB Acumatica help, no date shown).
Controls: keep a short override list with a reason code and owner per item, and review it at every reclassification. Give new items a default class until they have 12 months of data, and drop phase-out items to C. What goes wrong: override lists that grow until much of the A class is manual.
Step 5: Set count frequency by class
The classic use of ABC analysis is cycle counting. Oracle’s documentation describes using the compiled classes to “drive your cycle counts, where you might count items of high value (A items) very frequently, items of lower value less frequently, and items of lowest value very infrequently” (Oracle, no date shown). Our guide to cycle counting software and count frequency covers blind counts, tolerances and approvals in detail.
As an illustration, a distributor with 2,000 A items counted 12 times a year, 4,000 B items counted 4 times and 14,000 C items counted once needs 54,000 counts a year, or 216 a day over 250 working days. In Acumatica, make the count-per-year values for each code factors of the largest value, such as 12, 4 and 1 (MYOB Acumatica help, no date shown).
What goes wrong: counting by value only. Fast-moving C items pick up transaction errors quickly, so some teams add a velocity class, as Acumatica does with movement classes such as fast, normal, slow and dormant (MYOB Acumatica help, no date shown).
Step 6: Set service levels and safety stock by class
Planners set a target service level for each class, and the system converts it into safety stock. NetSuite calculates safety stock as lead-time demand standard deviation multiplied by a z-score, and it converts a 90% service level to a z-score of about 1.28, 95% to 1.65 and 98% to 2.05 (NetSuite Help Center, no date shown). SAP calculates safety stock from the replenishment lead time, the service level in the material master and the mean absolute deviation of the forecast (SAP Learning, no date shown).
Value alone is a weak guide to safety stock, so NetSuite combines ABC with a 1-2-3 variability class based on the coefficient of variation (monthly demand standard deviation divided by average monthly demand), with defaults of 0.3 and 0.8 (NetSuite Help Center, no date shown). Its default service levels by segment are shown below.
| Value class | 1 (steady demand) | 2 | 3 (erratic demand) |
|---|---|---|---|
| A | 98% | 96% | 95% |
| B | 94% | 93% | 90% |
| C | 90% | 87% | 85% |
Source: NetSuite Help Center, Inventory Optimization segments, no date shown. These are defaults you can override by segment, item or item-location (NetSuite Help Center, Inventory Optimization, no date shown).
As an illustration, if lead-time demand standard deviation for an item is 40 units, a 98% target gives 40 × 2.05 = 82 units of safety stock and a 90% target gives 40 × 1.28 = 51.2, rounded up to 52. For the wider trade-off, see our article on inventory optimization in ERP.
What goes wrong: giving a C item a low service level when it is a component needed to ship an A finished good. Check bills of materials and kits before you lower targets.
Step 7: Set purchasing and review rules by class
Buyers apply a different policy to each class. A typical setup, offered as an illustration rather than a standard:
- A items: review weekly, order smaller quantities more often, expedite against confirmed supplier dates and negotiate lead times.
- B items: review every two to four weeks on a reorder point or min/max.
- C items: order larger lots less often, use min/max or two-bin, and consolidate purchase orders to cut transaction cost.
What goes wrong: seasonal items. Lokad gives the example of toys classed as C before Christmas (Lokad, March 2020). Use forecast value instead of history for seasonal ranges, which Oracle supports as a “forecasted usage value” criterion (Oracle, no date shown).
Step 8: Reclassify on a schedule
Acumatica lets you update ABC codes for a warehouse at the end of a financial period on the Update ABC Codes form (MYOB Acumatica help, no date shown), and NetSuite lets you schedule segmentation from the Optimization Preferences subtab (NetSuite Help Center, no date shown). Quarterly or semiannual runs suit most distributors.
Controls: list every item that changed class and have planners confirm the big moves, then recalculate count schedules and safety stock. What goes wrong: reclassifying so often that items flip between A and B, or so rarely that old best sellers still get monthly counts.
Metrics to track
- Value concentration: share of items and share of usage value in each class, run over run.
- Class churn: number of items that changed class at each reclassification.
- Inventory record accuracy by class: share of counts within tolerance, with a higher target for A. Errors cost money in mis-shipments, as our analysis of what inventory errors cost distributors shows.
- Service level or fill rate by class: actual against target.
- Turns and days of supply by class: C items with high days of supply are your excess and obsolescence risk.
How software supports each stage
The biggest difference between systems is what they rank on and whether the class is written back to the item to drive counts and planning.
| Product | Ranks items on | Drives counts or safety stock | Notes |
|---|---|---|---|
| Oracle NetSuite | Annual consumption value at average cost, plus 1-2-3 variability | Segment service levels feed safety stock and reorder points | Requires Advanced Inventory Management and Inventory Optimization; segments and safety stock for Reorder Point items only |
| Dynamics 365 Business Central | Sales amounts in local currency | Report output; you assign a counting period code on each item | Ranks on sales, not cost |
| Acumatica | Stock-on-hand value | Counts per year by ABC code | Fixed codes; movement classes per warehouse |
| Oracle Inventory (EBS and Fusion Cloud) | Choice of criteria: on-hand, historical usage, transactions, count adjustments | Classes drive cycle counts | Organization or subinventory scope |
| SAP S/4HANA | Consumption or requirements value | Updates the cycle counting indicator | Indicators can be fixed manually |
Sources: NetSuite Help Center, no date shown and Inventory Optimization Preferences, no date shown; Microsoft Learn, May 27, 2026 and June 17, 2026; MYOB Acumatica help, no date shown; Oracle Inventory User’s Guide, no date shown; Oracle Fusion Cloud Inventory 26A, no date shown; SAP Learning, no date shown.
Two limitations matter in practice. Acumatica ranks on stock-on-hand value, which measures what you hold rather than what you use, so an overstocked slow mover can rank as A. Business Central’s documentation does not say its report writes classes to items, so you assign a counting period code on each item yourself. For Odoo, the Odoo Community Association maintains an AGPL-3 module, product_abc_classification, with a scheduled classification job (Odoo Apps, no date shown).
How we researched this
We read the top-ranking pages for “abc analysis inventory,” mostly vendor blogs, then checked vendor documentation for NetSuite, Business Central, Acumatica, Oracle and SAP to confirm how each ranks items and which defaults it ships with. Worked examples are labeled as illustrations. No vendor paid for or reviewed this article.
Related guides
- Inventory Replenishment Software for Distributors (2026)
- Warehouse Slotting Software: When You Need It (2026)
- Warehouse KPIs: Scorecard Template, Formulas and Benchmarks
Frequently asked questions
How do you calculate ABC analysis for inventory?
Multiply each item’s annual usage quantity by its unit cost to get annual usage value. Sort items from highest to lowest value and calculate each item’s cumulative share of the total. Assign A to items up to your first cutoff, such as 80%, B up to the second, such as 95%, and C to the rest.
What percentage should A, B and C items be?
There is no fixed rule. NetSuite defaults to cumulative value cutoffs of 80% for A and 95% for B, while Business Central’s report example uses 50%, 30% and 20%. Choose cutoffs that produce an A class small enough for your team to manage and count frequencies your staff can complete.
How often should you redo an ABC analysis?
Quarterly or semiannually suits most distributors and manufacturers, using a rolling 12 months of data. Rerunning too often makes items flip between classes and disrupts count schedules. Review every item that changes class before you publish the new results.
What is the difference between ABC and XYZ analysis?
ABC ranks items by value, while XYZ ranks them by how predictable their demand is, usually by the coefficient of variation. Combining the two gives nine segments, such as A1 or C3 in NetSuite’s 1-2-3 version. The combined view is more useful for setting safety stock than value alone.
How many times a year should you count A, B and C items?
A common pattern is monthly for A, quarterly for B and once or twice a year for C, but the right answer depends on your counting capacity and accuracy results. Multiply item counts by frequency to check the daily workload before you commit.
Sources
- NetSuite Help Center (Oracle), Inventory Optimization Preferences, no date shown. docs.oracle.com
- NetSuite Help Center (Oracle), Inventory Optimization, no date shown. docs.oracle.com
- NetSuite Help Center (Oracle), Inventory Optimization calculations: safety stock level, no date shown. docs.oracle.com
- NetSuite Help Center (Oracle), Inventory Optimization segments, no date shown. docs.oracle.com
- Microsoft Learn, Item – ABC Analysis report (Business Central), May 27, 2026. learn.microsoft.com
- Microsoft Learn, Count, adjust, and reclassify inventory using journals (Business Central), June 17, 2026. learn.microsoft.com
- MYOB Acumatica help, Inventory Ranking Methods, no date shown. help.myob.com.au
- MYOB Acumatica help, Configuration of Physical Inventory Counts by ABC Codes, no date shown. help.myob.com.au
- Oracle Inventory User’s Guide, Overview of ABC Analysis, no date shown. docs.oracle.com
- Oracle Inventory User’s Guide, Defining and Running an ABC Compile, no date shown. docs.oracle.com
- Oracle Inventory User’s Guide, Compile Criterion Field, no date shown. docs.oracle.com
- Oracle Inventory User’s Guide, Defining ABC Item Assignments, no date shown. docs.oracle.com
- Oracle Fusion Cloud Inventory Management (release 26A), ABC Classification Set Criteria, no date shown. docs.oracle.com
- SAP Learning, Applying Cycle Counting (SAP S/4HANA), no date shown. learning.sap.com
- SAP Learning, Using Forecast in Reorder Point Planning, no date shown. learning.sap.com
- Odoo Apps, Product ABC Classification (Odoo Community Association), no date shown. apps.odoo.com
- Lokad (sells forecasting software), ABC analysis (Inventory), March 2020. lokad.com
- Lightspeed (sells retail POS software), ABC inventory analysis, August 11, 2026. lightspeedhq.com

