ClearStock is live on the Shopify App Store.Install free →

← All blogs

Guides8 min read

ABC inventory analysis: the spreadsheet method (and when Shopify's version is enough)

ABC inventory analysis in a spreadsheet, step by step — how to classify, what to do with each class, and when Shopify's built-in ABC report is enough.

InventoryX is in development and not available today. ClearStock is the live Shopify app.

ABC inventory analysis ranks every SKU by the revenue (or profit) it generates, splits the catalog into three classes — A items that produce most of your revenue, B items that produce some, C items that produce the rest — and then lets you spend your limited attention where it pays. It's the Pareto principle (the 80/20 rule) applied to your catalog: a small share of SKUs drives most of your output, and Shopify's own documentation for its native ABC analysis describes the same principle. The value isn't the ranking — it's that the ranking tells you where to tighten buying, where to count, and where to stop worrying.

Short answer for spreadsheet users: export sales by SKU from Shopify, sort descending by revenue, compute cumulative percentages, and cut classes at roughly 80/95%. Shopify also has a native "ABC analysis by product" report (details below) — but the spreadsheet version beats it in three specific ways, covered at the end.

Building the analysis in a spreadsheet: 30 minutes

You need one export and four columns.

Step 1 — Export. From your Shopify admin, export a sales report by product (revenue for the last 12 months) and a current inventory export (on-hand units, cost per item if you track it). Join them on SKU in your spreadsheet.

Step 2 — Sort. Sort SKUs descending by 12-month revenue. Sum the column to get total revenue.

Step 3 — Cumulative percentage. For each row: cumulative % = (running revenue total ÷ total revenue). Cut the classes:

  • Class A: SKUs inside the first ~80% of cumulative revenue
  • Class B: SKUs from 80% to ~95%
  • Class C: everything past 95%

Step 4 — Sanity-check the shape. The typical result — where the 80/15/5 cut comes from — is convention, not law: for a store with real concentration, A is 10–20% of SKUs making 80% of revenue. If your "A class" is 60% of your SKUs, either your catalog is genuinely flat (possible — multi-brand resellers often are) or your 12-month window includes one big wholesale/promo spike that flattened everything. Check the window before trusting the cut.

Worked example with a stationery store, top rows shown (illustrative numbers):

SKU 12-mo revenue Cumulative % Class
PEN-GEL-BLK-12 $18,400 9% A
NBTR-DOT-A5-3PK $15,200 16% A
WAS-TAPE-CL $12,900 23% A
PEN-GEL-NAV-12 $11,800 29% A
STKR-GOLD-SET $10,100 34% A
... ... ... A until 80%
CAL-DESK-26 $3,200 82% B
... ... ... B until 95%
PAPR-KRAFT-A2 $610 96% C
CLIP-BRS-MINI $240 98% C

Sixty SKUs total, so the A class might be ~12 SKUs, B ~15, C ~33. That last row — a third of the catalog producing 5% of revenue — is the analysis doing its job.

Acting on the classes: the part most stores skip

The ranking is worthless without a policy attached to each class. Here's the operating version:

Decision Class A Class B Class C
Buying attention Review weekly; never run down; reorder with a deliberate buffer Review monthly; reorder on schedule Review quarterly; reorder only against real orders
Safety stock Highest service level — wider buffer, because running dry costs the most Moderate buffer Thin or none; a missed C sale costs little
Count frequency Cycle count most often (monthly or biweekly) Count occasionally Count once or twice a year, or at annual count
Shelf position Nearest to packing station; pick errors here are the expensive ones Standard placement Deep storage
Marketing Protect availability during promos; feature often Bundle as add-ons to A items No paid traffic; feature only at clearance
Catalog decisions Guarded and grown Watched — note which B items trend toward A or C First candidates for pruning

Two of these deserve justification.

Service levels per class. The logic: a buffer against demand variability costs money, and the buffer that's worth carrying for a SKU making $18,400/year is not worth carrying for one making $240/year. Set A items to a high service level (the widest buffer you'll fund), B to moderate, C to minimal. The actual buffer formula — demand variability, lead time variability, and the service-level multiplier (Z) — is worked through in our safety stock guide; the class just sets how aggressive you dial it.

Count frequency per class. Cycle counting by class concentrates effort where errors hurt: if PEN-GEL-BLK-12's count is wrong by 30 units, that's a real revenue leak; if CLIP-BRS-MINI is wrong by 30, you barely notice. This is also the standard justification retailers give for ABC-based count programs, and it's the same logic Shopify's own ABC documentation applies when it suggests giving A-grade products the most attention.

Shopify has native ABC analysis — here's what it does and doesn't do

Honesty note, as of October 2026: Shopify ships a native "ABC analysis by product" report that grades your products A to C by the revenue they bring in, and Shopify's help documentation says to use those grades to decide what to restock, promote, or retire. The grades are defined as roughly A = ~80% of revenue, B = ~15%, C = ~5%. The report is available in plans that include Shopify's reporting (Basic and Lite plans can't run it natively — Shopify's doc points those stores to a reporting app instead, per Shopify's ABC analysis help doc, accessed October 2026).

So when is the spreadsheet version still worth building? Three cases:

  1. You want grades on margin, not revenue. The native report grades by revenue. A SKU can be an A on revenue and a C on profit once discounts and cost are counted. The spreadsheet lets you rank on gross profit — usually the more honest denominator.
  2. You want different cuts or time windows. Native grades are fixed (80/15/5 by revenue). If your catalog is flat, or you want a trailing-quarter view to catch recent shifts, the spreadsheet is adjustable.
  3. You want the policy columns attached. The native report shows the grade; it doesn't carry your per-class count frequency, shelf zone, or buying cadence. The spreadsheet is where the policy lives — which is also why the export-and-join exercise doubles as the foundation of a wider inventory spreadsheet.

For most stores under a few hundred SKUs, the honest answer is: run the native report first, then build the spreadsheet once when you're ready to attach policies. Don't build the analysis twice for the fun of it.

Where ABC analysis misleads

  • New SKUs get misgraded. A product launched three months ago can't accumulate a year of revenue — it lands in C and looks like a dud. Keep new SKUs in a "watch" bucket for their first season instead of letting the grade drive pruning.
  • Revenue ≠ margin ≠ strategic value. A loss-leader that drives a subscription, or a part required to sell your A-item kit, grades C and deserves to survive anyway. Treat the class as an input to the decision, never the decision itself.
  • One-time grades rot. Buying patterns shift seasonally and with growth. Re-run the analysis quarterly; a quarterly refresh is also the natural trigger for the KPI review described in our inventory KPIs guide.

Common questions

What is ABC analysis in inventory management? It's a method that ranks SKUs by the value they generate and splits them into three classes: A items produce roughly 80% of revenue, B items the next 15%, C items the final 5%. Each class then gets a different operating policy — buying attention, safety stock, count frequency — so effort concentrates on the SKUs whose availability actually moves revenue.

How do I do an ABC analysis in a spreadsheet? Export 12 months of sales by SKU from Shopify, sort SKUs descending by revenue, compute each row's cumulative share of total revenue, and cut classes at about 80% (A) and 95% (B), with the rest as C. Then attach a policy column per class: reorder cadence, buffer level, and count frequency. The whole build takes about 30 minutes for a few hundred SKUs.

Does Shopify have a built-in ABC analysis? Yes, as of October 2026: the "ABC analysis by product" report grades products A to C by revenue contribution (roughly 80/15/5), per Shopify's Help Center. It requires a plan with reporting; Basic and Lite plans are pointed to reporting apps instead. It grades by revenue only and doesn't attach operating policies, which is where a spreadsheet version adds value.

What should I do with C-class inventory? Treat C items as candidates, not convicts: stop paid promotion, thin the safety stock, order less often or only against confirmed demand, and move them to deep storage. Then decide per SKU whether it's still earning its place in the catalog. Pruning decisions and disposal are separate steps from the classification itself.

Is ABC analysis the same as the Pareto principle? The Pareto principle is the underlying observation — a small share of inputs produces most of the output. ABC analysis applies it to inventory by ranking SKUs and bucketing them into three classes. The 80/15/5 cut is a convention, not a law; a flat catalog may need different boundaries, and the ranking matters more than the exact percentages.

Next step

Run Shopify's native ABC report today if your plan includes reporting — two minutes, and you'll know your A-class on the spot. Then pick one policy to attach this week: weekly review for your A items, starting with their days of cover. The count-frequency piece plugs directly into the methods in our Shopify inventory reports guide.