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