Your data
Paste a table straight from Excel or Google Sheets, or drop a CSV file. Nothing is uploaded anywhere — the whole calculation runs inside this browser tab.
CSV, TSV or plain text. Files saved in windows-1251 are detected and re-read automatically, so Cyrillic headers do not turn into garbage.
Parsing options
Columns
Result
Save and share
The drawing library is downloaded only when you press the button, and only on this page.
This page has no server side at all. The table you paste is parsed by JavaScript inside your own browser, the chart is drawn on a canvas element on your machine, and the export file is assembled locally. Nothing is uploaded, stored or written to any log. You can disconnect from the network after the page has loaded and everything will still work — which is the simplest way to verify the claim yourself.
Facts and limits of this method
| Sorting | Descending by value; the order is the analysis |
|---|---|
| Class A | Items up to 80% cumulative contribution |
| Class B | From 80% to 95% |
| Class C | The remaining tail above 95% |
| Chart | Bars coloured by class with the cumulative curve on a second axis |
| Negative values | Taken as absolute; a negative contribution has no place in a share of a total |
When it misleads you
- The 80/20 split is a convention, not a law of nature. Your data may put 80% of revenue in the top 5% of products or in the top 40%, and both are ordinary. The classes are a way of reading the curve, not a finding in themselves.
- ABC classification by revenue alone can be actively misleading in inventory work. A cheap component that halts production when it runs out belongs in class A regardless of its share of spend, and no arithmetic on a single column will notice that.
- The analysis is a snapshot. Products move between classes across seasons, and a classification computed from one quarter can be wrong for the next — which is exactly when it tends to get frozen into a policy.
- Items with negative values — refunds, write-offs — are taken as absolute magnitudes, because a share of a total is undefined for a negative contribution. Filter them out beforehand if they should not participate.
How it is calculated
Items are sorted by their absolute value in descending order and their shares of the total are accumulated top to bottom. The cumulative column is the whole analysis: everything else, including the class boundaries, is read off it.
Class A ends where the cumulative share first reaches 80%, class B where it reaches 95%, and everything after is class C. The boundaries are applied to the cumulative curve rather than to item counts, which is why class A can contain three items in one dataset and thirty in another.
The chart draws bars in class colours with the cumulative percentage as a line on a second axis running from 0 to 100. That second axis is fixed rather than data-driven — a cumulative curve that does not end at 100% would be an arithmetic error, and pinning the axis makes such an error visible immediately.
The export contains every item with its value, its share, its cumulative share and its class letter, so the classification can be joined back to your original data rather than retyped.
Questions and answers
Why is my split not 80/20?
Because the 80/20 ratio is a rule of thumb from one specific observation about land ownership, not a property of all data. What matters is the shape of your curve: how concentrated your contributions actually are.
Where do the A, B and C boundaries come from?
From the cumulative share: A up to 80%, B to 95%, C beyond. These are the conventional thresholds in inventory management, and they are applied here to the curve rather than to a fixed number of items.
Can I use this for inventory management?
For the revenue dimension, yes. But criticality is not the same as value — a cheap part that stops the line deserves class A treatment whatever this table says. Use the classification as one input, not as the decision.
What happens to items with equal values?
They keep the order they arrived in. With many ties the class boundaries fall arbitrarily between identical items, which is a sign the classification is not carrying much information for your data.
Is my data uploaded?
No. Sorting, accumulation and classification all happen in your browser.