Was ist eine ABC Analyse?
Die ABC-Analyse teilt Dinge in drei Kategorien ein: A, B und C. Dabei wird nach bestimmten Kriterien entschieden, in welche Kategorie was fällt. Heute schauen wir uns das Ganze mal am Beispiel von Artikeln an:
- Status A: Die wichtigsten und wertvollsten Artikel. Sie sind zwar in der Minderheit, machen aber den grössten Teil des Erfolgs aus.
- Status B: Diese Artikel sind mittelwichtig. Sie tragen im Durchschnitt zum Erfolg bei.
- Status C: Das sind die weniger wichtigen Artikel. Sie machen oft den grössten Teil aus, haben aber nur wenig Einfluss auf den Gesamterfolg.
Was bringt der Status auf dem Artikel?
Wenn jeder Artikel einen Status hat, wird es einfacher, gezielte Entscheidungen zu treffen und Massnahmen zu planen. Nehmen wir mal an, Ihr wollt eine SEA-Kampagne (Search Engine Advertising) starten. Wenn Ihr vorher eine ABC-Analyse mit den Kriterien Wirtschaftlichkeit oder Umsatz gemacht habt, wisst Ihr, dass Ihr für die Kampagne nur die A-Artikel verwenden solltet. Diese Artikel haben die höchste Priorität und versprechen den grössten Erfolg. Wie Ihr aber seht braucht jedes Projekt eine ABC Analyse mit unterschiedlichen Kriterien. Deshalb kommen wir direkt zum nächsten Punkt.
Wie baut man einen ABC Analyse auf?
Zunächst benötigen wir Daten, um eine allgemeine ABC-Analyse durchzuführen. Was genau das bedeutet, werde ich später erläutern. Hier sind unsere Testdaten:
Auftragsnr | Artikel_ID | Monat | Umsatz | Auftragsmenge | Retourenmenge | Artikelbeschreibung | Lieferanten_ID | Lieferantenbeschreibung | Warengruppe | Marke |
---|---|---|---|---|---|---|---|---|---|---|
1093 | 90 | February | 366.23 | 2 | 1 | Artikel 90 | 1 | Lieferant 10 | Elektronik | Marke 11 |
1047 | 81 | July | 381.17 | 2 | 1 | Artikel 81 | 8 | Lieferant 8 | Haushalt | Marke 11 |
1009 | 87 | August | 203.08 | 4 | 0 | Artikel 87 | 10 | Lieferant 6 | Haushalt | Marke 6 |
1024 | 53 | March | 158.24 | 5 | 1 | Artikel 53 | 6 | Lieferant 10 | Elektronik | Marke 16 |
1037 | 10 | February | 275.21 | 2 | 3 | Artikel 10 | 10 | Lieferant 3 | Spielzeug | Marke 2 |
1099 | 41 | June | 144.63 | 3 | 0 | Artikel 41 | 2 | Lieferant 5 | Spielzeug | Marke 12 |
Wichtig zu erwähnen ist das man so eine Analyse auch in Excel durchführen kann, aber man sollte Sie in einer Programmiersprache wie R oder Python durchführen. Dies bietet folgende Vorteile:
- Reproduzieret der Analyse: Falls Sie nochmal neu ausgeführt werden muss ist das in Excel ein extremer Arbeitsaufwand.
- Übersichtlichkeit: In R sieht man jede Änderung welche man gemacht hat.
- Mehr Ergänzung möglich: Diese Analyse ist sehr aktiv und Ihr seit froh wenn Ihr immer weitere Werte hinzufügen könnt.
Die allgemeine ABC Analyse
In der allgemeinen ABC-Analyse werden Werte analysiert, die in allen Projekten verwendet werden können. Diese Werte eignen sich gut, um das gesamte Sortiment allgemein zu bewerten. In einer Artikel-ABC-Analyse wären das beispielsweise folgende Werte:
- Umsatz
- Auftragsmenge
- Retourenmenge
Nun wird für jeden dieser Werte eine Analyse durchgeführt und anschliessend ein Wert von 3 bis 1 zugewiesen. Drei ist dabei die beste Bewertung und eins die schlechteste.
Danach werden dann alle Analysen zu einem Totalwert zusammengesetzt um den Stauts dann final zu vergeben. Aber das erkläre ich jetzt noch etwas genauer.
Umsatzanalyse
Schritt 1 / Umsatz pro Artikel berechnen
Für die Umsatzanalyse berechnen wir zunächst, wie viel Umsatz jeder Artikel im Datensatz generiert hat, und sortieren die Ergebnisse anschliessend in absteigender Reihenfolge, vom grössten zum kleinsten Umsatz.
Artikel_ID | Umsatz_summe |
---|---|
857 | 1928.0 |
102 | 1406.0 |
49 | 1389.0 |
674 | 1328.0 |
465 | 1250.0 |
845 | 1245.0 |
Der R-Code dafür ist folgender:
artikel_umsatz <- dataset %>%
group_by(Artikel_ID) %>%
summarize(Umsatz_summe = sum(Umsatz)) %>%
arrange(desc(Umsatz_summe))
Schritt 2 / Berechnen der Kumulativen Summe und Prozent
Im nächsten Schritt wird die kumulative Summe und kumulative Prozent berechnet:
Artikel_ID | Umsatz_summe | kumulative_summe | kumulative_prozent |
---|---|---|---|
857 | 1928 | 1928 | 0.911 |
102 | 1406 | 3335 | 1.58 |
49 | 1389 | 4724 | 2.23 |
674 | 1328 | 6052 | 2.86 |
465 | 1250 | 7302 | 3.45 |
845 | 1245 | 8547 | 4.04 |
Der R-Code dafür ist folgender:
artikel_umsatz <- artikel_umsatz %>%
arrange(desc(Umsatz_summe)) %>%
mutate(kumulative_summe = cumsum(Umsatz_summe),
kumulative_prozent = kumulative_summe / sum(Umsatz_summe) * 100)
Die kumulative Summe wird berechnet, indem man die Umsatz_summe jedes Artikels zur Summe der vorherigen Artikel addiert. Es ist im Grunde genommen die laufende Summe der Umsatzwerte.
Beispiel:
- Für Artikel_ID 857 ist die kumulative_summe = 1928 (da es der erste Artikel ist).
- Für Artikel_ID 102 ist die kumulative_summe = 1928 (von Artikel 857) + 1406 = 3335.
- Für Artikel_ID 49 ist die kumulative_summe = 3335 (von Artikel 102) + 1389 = 4724.
Der kumulative Prozentsatz wird berechnet, indem man die kumulative_summe jedes Artikels durch die Gesamtsumme aller Umsatz_summe teilt und dann mit 100 multipliziert, um den Prozentsatz zu erhalten.
Beispiel:
- Angenommen, die Gesamtsumme der Umsatz_summe für alle Artikel beträgt 21115 (Summe von 1928 + 1406 + 1389 + 1328 + 1250 + 1245).
- Für Artikel_ID 857 ist der kumulative_prozent = (1928 / 21115) * 100 = 9.13%
- Für Artikel_ID 102 ist der kumulative_prozent = (3335 / 21115) * 100 = 15.79%
Schritt 3 / Punkte vergeben nach kumulative Prozent
Nun kann man die Punkte aufgrund von der kumulative Prozent vergeben. Zum Beispiel so:
- Kumulative Prozent <= 20 = 3 Punkte
- Kumulative Prozent <= 50 = 2 Punkte
- Kumulative Prozent >50.0001 = 1 Punkt
Dann kommt man im Bezug auf die Umsatzanalyse zu so einer Tabelle:
Artikel_ID | Umsatz_summe | kumulative_summe | kumulative_prozent | Umsatzanalyse |
---|---|---|---|---|
857 | 1928.0 | 1928.0 | 0.911 | 3 |
102 | 1406.0 | 3335.0 | 1.58 | 3 |
49 | 1389.0 | 4724.0 | 2.23 | 3 |
674 | 1328.0 | 6052.0 | 2.86 | 3 |
465 | 1250.0 | 7302.0 | 3.45 | 3 |
845 | 1245.0 | 8547.0 | 4.04 | 3 |
783 | 1237.0 | 9783.0 | 4.62 | 3 |
681 | 1192.0 | 10975.0 | 5.19 | 3 |
199 | 1158.0 | 12133.0 | 5.73 | 3 |
830 | 1154.0 | 13287.0 | 6.28 | 3 |
Vollendung der allgemeinen ABC Analyse
Anschliessend wird die Analyse auch für die Auftragsmenge und die Retourenmenge durchgeführt. Bei der Retourenmenge werden die Werte umgekehrt bewertet, da hier ein negativer Wert als positiv anzusehen ist.
Auftragsmengeanalyse:
Artikel_ID | Auftragsmenge_summe | kumulative_summe | kumulative_prozent | Auftragsmengeanalyse |
---|---|---|---|---|
862 | 18 | 18 | 0.774 | 3 |
674 | 16 | 34 | 1.46 | 3 |
857 | 16 | 50 | 2.15 | 3 |
49 | 15 | 65 | 2.79 | 3 |
255 | 14 | 79 | 3.39 | 3 |
492 | 14 | 93 | 4.00 | 3 |
Retourenmengeanalyse:
Artikel_ID | Retourenmenge_summe | kumulative_summe | kumulative_prozent | Retourenmengeanalyse |
---|---|---|---|---|
198 | 11 | 11 | 0.917 | 1 |
857 | 11 | 22 | 1.83 | 1 |
862 | 9 | 31 | 2.59 | 1 |
32 | 8 | 39 | 3.25 | 1 |
256 | 8 | 47 | 3.92 | 1 |
318 | 8 | 55 | 4.59 | 1 |
Schliesslich werden alle Ergebnisse zu einer allgemeinen Punktetabelle zusammengeführt, in der das Gesamtergebnis aller Analysen angezeigt wird. Diese Tabelle bietet eine übersichtliche Zusammenfassung der kombinierten Punkte aus Umsatz, Auftragsmenge und Retourenmenge.
artikel_id | umsatz_analyse | auftragsmenge_analyse | retourenmenge_analyse | total | status |
---|---|---|---|---|---|
71 | 3 | 3 | 1 | 7 | B |
17 | 3 | 2 | 1 | 6 | B |
11 | 3 | 3 | 1 | 7 | B |
97 | 3 | 3 | 2 | 8 | A |
62 | 3 | 3 | 1 | 7 | B |
51 | 3 | 2 | 1 | 6 | B |
Der dazugehörige R-Code:
allgemein_punkte_tabelle <- artikel_umsatz %>%
select(artikel_id, umsatz_analyse) %>%
inner_join(artikel_auftragsmenge %>% select(artikel_id, auftragsmenge_analyse), by = "artikel_id") %>%
inner_join(artikel_retourenmenge %>% select(artikel_id, retourenmenge_analyse), by = "artikel_id") %>%
mutate(
total = umsatz_analyse + auftragsmenge_analyse + retourenmenge_analyse,
status = case_when(
total >= 8 ~ "A",
total >= 6 ~ "B",
TRUE ~ "C"
)
)
Hier habe ich es ganz einfach gehalten und angenommen, dass alle Analysen gleich wichtig sind. Das bedeutet, dass nur der Gesamtwert entscheidend ist, um den besten Status zu erreichen:
- Status A: Total mindestens 8 Punkte
- Status B: Total mindestens 6 Punkte
- Status C: Alles darunter
In der realen Welt würde man natürlich zusätzliche Kriterien festlegen, wie zum Beispiel, dass die Umsatz- und Auftragsmengenanalyse jeweils mindestens 3 Punkte haben müssen, um den Status A zu erreichen, da diese wichtiger sind als die Retourenmenge. Aber hier könnt ihr euch gerne eigene Gedanken machen. Doch nicht nur hier haben wir grosses Verbesserung Potenzial, sondern noch bei vielen weiteren Punkten.
Datengetriebene Clusteranzahlfindung
In der ABC-Analyse nehmen wir einfach an, dass es korrekt ist, die Daten in 3 Cluster zu unterteilen. Allerdings kann die optimale Anzahl der Cluster je nach Datensatz variieren. Zum Glück gibt es eine datengetriebene Methode, um die optimale Anzahl der Cluster zu ermitteln: die Elbow-Methode. Ich werde diese Methode jetzt nicht im Detail erklären, aber du kannst dazu einen Blogbeitrag finden, den ich hier verlinke:
Datenbasierte Statuswertfindung für die Analysen
In der oben erstellten ABC-Analyse gehen wir ebenfalls davon aus, dass Artikel mit einem kumulativen Prozentsatz von 20 % oder weniger drei Punkte verdienen. Aber möglicherweise ist dieser Schwellenwert zu hoch oder zu niedrig. Zum Glück lässt sich auch das datenbasiert ermitteln, und zwar mithilfe des k-means Cluster-Algorithmus. Das zu erklären würde in diesem Blog zu weit führen, aber du findest dazu einen spezifischen Blogbeitrag hier:
Abteilungsbasierte ABC Analyse
Nun haben wir eine allgemeine ABC-Analyse erstellt, aber für viele Abteilungen und Projekte sind unterschiedliche Dinge unterschiedlich wichtig. Da wir R verwendet haben, können wir jedoch ganz einfach neue Datensätze hinzufügen und verbinden, um die Punktetabelle neu zu gewichten. Alternativ können wir auch die aktuelle Tabelle mit zusätzlichen interessanten Werten weiter analysieren, um spezifische Einblicke zu gewinnen.
ABC Analyse Abteilung Einkauf
Beim Einkauf könnte es hilfreich sein, die allgemeinen Punkte nach Warengruppen (WG) aufzuschlüsseln. So kann man leichter erkennen, welche Warengruppe besonders wichtig ist. Dafür sollten wir die Tabelle mit den allgemeinen Punkten um die WG-Daten ergänzen.
artikel_id | umsatz_analyse | auftragsmenge_analyse | retourenmenge_analyse | total | status | warengruppe |
---|---|---|---|---|---|---|
71 | 3 | 3 | 1 | 7 | B | Spielzeug |
71 | 3 | 3 | 1 | 7 | B | Spielzeug |
71 | 3 | 3 | 1 | 7 | B | Spielzeug |
71 | 3 | 3 | 1 | 7 | B | Spielzeug |
71 | 3 | 3 | 1 | 7 | B | Spielzeug |
71 | 3 | 3 | 1 | 7 | B | Spielzeug |
Der dazugehörige R Code:
allgemein_punkte_tabelle_var <- allgemein_punkte_tabelle %>%
inner_join(dataset, by = "artikel_id") %>%
select(
artikel_id,
umsatz_analyse,
auftragsmenge_analyse,
retourenmenge_analyse,
total,
status,
warengruppe
)
Mit dieser Tabelle können wir jetzt einen Plot erstellen, der zeigt, wie viele Artikel jede Warengruppe in den verschiedenen Status hat. So können wir auf einen Blick erkennen, welche Warengruppe für uns die wichtigste ist.
Jetzt sehen wir direkt, dass Bekleidung für uns die wichtigste Warengruppe ist, während Haushalt scheinbar unwichtig wirkt. Das stimmt auch – allerdings nur im Verhältnis zu allen Artikeln. Wenn man sich jedoch als Händler mit einem Fokus auf Bekleidung aufstellt, könnte man schnell denken, dass Haushalt keine A-Artikel hat.
Deshalb müssen wir jetzt eine gezielte Analyse durchführen, bei der wir die Daten von Anfang an einschränken, um herauszufinden, welche Artikel innerhalb der Warengruppe Haushalt wirklich wichtig sind.
Wenn man die ABC-Analyse nur auf die Artikel aus der Warengruppe Haushalt anwendet, stösst man auf vier A-Artikel. Das ist natürlich nur ein Beispiel, und es gibt unzählige weitere Szenarien, die du dir selbst ausmalen kannst.
Falls du mehr ins Detail gehen möchtest, habe ich hier noch ein HTML-Dokument für dich, in dem du den kompletten R-Code findest – inklusive Elbow-Methode und k-means-Cluster-Algorithmus. Viel Spass beim Ausprobieren!