In general, ABC classification is an implementation of the 80/20 rule. Succinctly stated, the 80/20 rule says that about 80% of what you care about comes from about 20% of what you have. In other words, if you are a manufacturer of goods, 80% of your sales comes from about 20% of your products. This concept is applicable to sales, inventories, purchasing, and many other areas of business. The most important items are tagged with the A label, which generally represents about 80% of the total dollars spent by a company or received as revenue by a company. B items are not as important as A items and generally represent an additional 10% to 15% of the dollars that are spent or received by a company. Making up the remainder are C items, which are the least important.
I was first introduced to ABC classification when I went to https://www.daxpatterns.com/, which is maintained by two giants in the Microsoft business intelligence world: Marco Russo and Alberto Ferrari. This pattern, as implemented back then, used columns to implement ABC classification. This meant that the ABC classifications that were created were static and did not change dynamically based upon filtering within a report. I took this as an opportunity to implement ABC classification as a measure in order to make the calculation of the ABC classifications dynamic.
While Marco Russo and Alberto Ferrari now have their own take on dynamic ABC classification within DAX, this recipe implements my original dynamic ABC classification based upon their original, static implementation of ABC classification.