Tuesday, May 6, 2025

Supply Chain and Inventory Management – ABC Inventory Classification

 


Notes:

  • Problem Solved: Classifies inventory into A, B, and C categories based on annual consumption value.

  • Benefits: Helps businesses prioritize inventory control efforts and optimize stock holding.

  • Adoption: Can be scheduled to run monthly for continuous reclassification of SKUs.

Python Code:


import pandas as pd


class ABCClassifier:

    def __init__(self, inventory_df):

        self.df = inventory_df


    def classify(self):

        self.df['AnnualConsumption'] = self.df['UnitCost'] * self.df['AnnualDemand']

        self.df = self.df.sort_values('AnnualConsumption', ascending=False)

        self.df['Cumulative%'] = self.df['AnnualConsumption'].cumsum() / self.df['AnnualConsumption'].sum()


        def assign_class(row):

            if row['Cumulative%'] <= 0.7:

                return 'A'

            elif row['Cumulative%'] <= 0.9:

                return 'B'

            else:

                return 'C'


        self.df['Category'] = self.df.apply(assign_class, axis=1)

        return self.df[['SKU', 'AnnualConsumption', 'Category']]


# Sample data

data = [

    {'SKU': 'P001', 'UnitCost': 10, 'AnnualDemand': 1000},

    {'SKU': 'P002', 'UnitCost': 5, 'AnnualDemand': 500},

    {'SKU': 'P003', 'UnitCost': 50, 'AnnualDemand': 100},

    {'SKU': 'P004', 'UnitCost': 20, 'AnnualDemand': 300},

    {'SKU': 'P005', 'UnitCost': 2, 'AnnualDemand': 2000},

]


df = pd.DataFrame(data)

classifier = ABCClassifier(df)

classified_df = classifier.classify()


print(classified_df)


No comments:

Post a Comment

IoT (Internet of Things) Automation - Smart Energy Usage Tracker

  Notes: Problem Solved: Logs and analyzes power usage from smart meters. Customization Benefits: Track per-device energy and set ale...