ABC Classification
Ranks your Products into classes A, B and C by how much activity each accounts for over the last year — sales, use, loans and rentals — so you can see which few matter most.
Availability — Part of the Inventory module. Manage modules and your plan tier in Account & Billing.
In most stockrooms a handful of Products account for most of the activity. ABC classification finds them. Every Product gets a class:
- A — the few Products behind most of your activity.
- B — the middle.
- C — the long tail, including anything that saw no activity at all.
A Product has one class for your whole account, not one per location.
What counts as activity #
Knowledge ERP looks at the last twelve months and counts, for each Product:
- units sold,
- units used up, including materials a work order consumes,
- every check-out — loans and rentals included — whether or not the unit has come back.
Stock arriving, moving between locations, or being adjusted is not activity. Returns are not subtracted. A unit lent fifty times and returned fifty times was busy, and it counts as busy.
Activity is counted in units of the Product. If a Product is a five-gallon drum, selling fifteen gallons counts as three.
How the classes are worked out #
Under Account Settings → ABC classification you choose what Products are ranked by:
- Usage — the activity above, on its own. This suits a business that does not track what things cost, such as a lending library.
- Usage × cost (the default) — the same activity multiplied by the Product's cost. A few expensive Products that move slowly can then outrank many cheap ones that move fast.
Under usage × cost, Products without a cost are ranked by usage, among themselves. They are not dropped to C for having no cost, and they are not compared against Products that have one.
Products are then sorted from most activity to least, and each takes its class from how much of the total is ranked above it:
| Setting | Default | Meaning |
|---|---|---|
| Class A covers the top | 80% | Products ranked within the first 80% of the total are A. |
| Classes A and B together cover the top | 95% | Products after that, up to 95%, are B. Everything after is C. |
You can change both figures. The second must be larger than the first.
Two kinds of Product are not ranked:
- A Product created less than a year ago is given B. A part-year of activity would not be comparable with a full one.
- A discontinued Product has no class.
A new Product gets its B when classes are next calculated; until then it has no class. A Product loses its class as soon as it is discontinued. When you carry it again, a class you set by hand applies at once; otherwise it may have no class until classes are next calculated, and that class can differ from the one it had.
When classes change #
Classes are recalculated once a month. They are also recalculated straight away when you switch classification on, change the ranking or the cutoffs on the settings page, or press Recalculate now there.
Classes are calculated by a daily run at 02:30 UTC. An account that has never been calculated is calculated on the first run after it is created, covering the Products it has at that time; later Products wait for the next calculation.
Setting a class by hand #
Sometimes you know better than the numbers. On a Product's edit page, choose a class under ABC class to keep the Product in it. The monthly recalculation then leaves that Product's class alone, and still records what it would have been. Choose Calculated to hand the Product back to the calculation.
A discontinued Product has no class even if you set one by hand. The class you chose is kept, and applies again if you start carrying the Product again.
Where you see classes #
- Products list — an ABC column, and an ABC class filter.
- A Product's page — the class in effect, the calculated class and what it was ranked on, and a Class History tab listing every change: when, from which class to which, and whether the calculation or a person made it.
- Reorder Queue — an ABC class filter. Reorder points set on a category or kit have no class, so they are left out while the filter is set.
Switching classification off #
Classification is on for new accounts. Turn off Keep ABC classes on products in Account Settings to stop the monthly recalculation and hide classes from every screen, and from the Products returned by the API and the AI connector. A Product's class history can still be read through the API.
The classes already worked out are kept. Switching classification back on recalculates them straight away.
Using the API #
Each Product returned by /api/v1/inventory/products includes:
abc_class— the class in effect:A,BorC, ornull,abc_calculated_class— what the monthly calculation last gave it,abc_class_override— a class set by hand, ornull.
All three are null while classification is switched off.
Filter the list by class:
curl "https://your-domain.com/api/v1/inventory/products?abc_class=A" \
-H "Authorization: Bearer <token>"
Set a class by hand, or clear it with null, by updating the Product (a new
Product cannot be created with one):
curl -X PATCH "https://your-domain.com/api/v1/inventory/products/<product-id>" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{"abc_class_override": "A"}'
Setting a class by hand needs permission to update Products, and is refused while classification is switched off.
A Product's class history:
curl "https://your-domain.com/api/v1/inventory/products/<product-id>/abc-class-changes" \
-H "Authorization: Bearer <token>"
Each entry has from_class, to_class, cause (calculated,
override_set or override_cleared) and, for a calculated change, the
basis it was ranked on, its usage, and its value (usage × cost, in
cents).