# inventory.abc-classification
ABC analysis ranks stock items by annual consumption value (annual quantity x
unit cost) and splits the ranking into classes by cumulative share of the total,
on the Pareto observation that a few items carry most of the value. Class A
items get the tightest control and most frequent counts (see
`inventory.cycle-count-schedule`).
**Cut-offs** are cumulative basis points, ascending, each from 1 to 9999:
`[8000, 9500]` is the usual 80/15/5 split into A, B and C. Pass more to get more
classes, lettered A, B, C, D ... (up to 25 cut-offs).
**Which class an item on a boundary falls in.** An item belongs to the class
whose band its value *starts* in: it is in class A when the items ranked above
it hold less than 80% of the total. So the item that carries the ranking across
80% is still an A item, the top item is always an A item, and an item that
starts exactly at 80% is a B. (The other common rule, "cumulative share
including the item is at most 80%", can leave class A empty when one item is
most of the value.) Every comparison is on whole minor units, never on a
rounded percentage; `cumulativeBasisPoints` is reported rounded half-up, for
display.
**Ties are deterministic.** Items of equal value are ranked by SKU, ascending
(by character code; keep SKUs ASCII for the same order in every language).
Items with no value fall in the last class. The result lists every item,
highest value first.
Errors: a duplicate SKU, a negative quantity or cost, items in more than one
currency, cut-offs that are empty, out of order or outside 1..9999, and totals
too large to multiply by 10000 within 2^53 - 1.
Source: the method as described in APICS Dictionary ("ABC classification") and
Silver, Pyke and Thomas, *Inventory and Production Management in Supply
Chains*, 4th ed., section 2.3.