Free Trial

Blog - Deutsch

Erkenntnisse und Ideen von den besten Analytics-Experten.
RolandSchubert
16 - Nebula
16 - Nebula

Etwas zum Hintergrund …

 

Kein Kunde ist wie der andere – ob B2B oder B2C, ob Online oder Offline, ob Handel, Versicherung, Telekommunikation oder Energieversorger, gerade in Zeiten intensiven Wettbewerbs steht jedes Unternehmen vor der Herausforderung, die für die Betreuung der Kunden zur Verfügung stehenden Ressourcen zielgerichtet einzusetzen. Damit ist es natürlich unerlässlich zu wissen, welches die „wichtigsten“ Kunden sind.

 

Genau diese Aufgabe stellt sich auch gerade der „Vision International Corporation“ und wir versetzen uns vorübergehend in die Situation des Mitarbeiters, der die Aufgabe bekommen hat, die Kunden des Unternehmens „nach ihrer Bedeutung für den Unternehmenserfolg“ in Gruppen aufzuteilen. Diese Gruppen sollen dann zur Steuerung der Kundenbetreuung genutzt werden, um etwa zu entscheiden, ob ein Kunde eine „VIP-Behandlung“ oder Sonderkonditionen erhält. Auch ist geplant, die Ergebnisse im Rahmen von Marketingaktionen einzusetzen, um etwa besonders wichtige Kunden gezielt zu exklusiven Events einzuladen. Wie immer muss das besonders schnell gehen. Und wie so oft gibt es natürlich kein fertiges Konzept, das wir einfach umsetzen könnten – wir müssen zunächst einmal klären, wie wir da überhaupt vorgehen wollen.

 

Ach ja, um das Konzept für unsere Analyse zu erarbeiten, haben wir als Datenbasis eine Liste von Kunden aus einer Region bekommen, außerdem steht uns noch eine Datei mit Transaktionsdaten zur Verfügung – darauf kann man doch aufbauen.

 

Die Kundenliste ist eine Excel-Datei (das soll ja doch recht verbreitet sein) und enthält neben der Kundennummer noch einige persönliche Angaben, die beim Anlegen des Kundenkontos erfasst wurden:

 

File000.jpg

 

Die Transaktionsdaten sind auf Kunde und Datum aggregierte Umsätze, die als CSV-Datei vorliegen:

 

File001.jpg

 

Ein erster Ansatz – ABC-Analyse

 

Auf unserer Suche nach einem geeigneten Konzept, um Kunden zu segmentieren, also auf der Grundlage von Merkmalen, die für das Kaufverhalten relevant sind, in möglichst homogene Gruppen zu unterteilen, stoßen wir sehr schnell auf die ABC-Analyse. Tatsächlich ist dies ein einfacher und recht verbreiteter Ansatz, Kunden unter dem Aspekt der Bedeutung für das Unternehmen zu segmentieren – scheint also zu unserer Aufgabe zu passen.

 

Prinzipiell ist die ABC-Analyse eine Verfeinerung des Pareto-Prinzips und beruht auf der Beobachtung, dass vielfach eine kleine Anzahl hoher Werte den überwiegenden Teil zu einem Gesamtwert beiträgt, während der relative geringe Rest sich aus einer hohen Anzahl kleiner Werte zusammensetzt.

Die ABC-Analyse überträgt nun dieses Grundkonzept auf die Kunden eines Unternehmens und unterscheidet in A-, B- und C-Kunden. A-Kunden bilden die umsatzstärkste Gruppe und sind besonders wichtig für das Unternehmen; deshalb hat die Betreuung dieser Kunden allerhöchste Priorität.

 

Gleichzeitig gehört aber in der Regel nur ein sehr kleiner Teil der Kunden zu dieser Gruppe, so dass es möglich ist, ihnen besondere Aufmerksamkeit zu widmen. Die Gruppe der B-Kunden beinhaltet wichtige Kunden, die aber nicht den Umsatz der A-Kunden erreichen. Das Ziel ist es meist, sie zu A-Kunden zu entwickeln, so dass auch in diesem Fall spezifische Maßnahmen zu ergreifen sind. Der zahlenmäßig größte Teil der Kunden gehört zur Gruppe der C-Kunden. Trotz der großen Zahl ist der Anteil am Gesamtumsatz des Unternehmens gering, vielfach handelt es sich um Gelegenheits- oder Einmalkunden, daher werden diese Kunden n der Regel weniger intensiv betreut.

 

P003.png

 

Obwohl zumeist eine Bildung von drei Gruppen vorgeschlagen wird, ist alternativ natürlich eine feinere Gliederung möglich und mitunter auch sinnvoll. So könnten etwa auch 5 Kundengruppen unterschieden werden, zu A-, B- und C-Kunden kommen dann noch D- und E-Kunden hinzu. Die Entscheidung, wie viele Gruppen gebraucht werden, hängt einerseits davon ab, wie differenziert die Steuerung der Kundenbetreuung (beziehungsweise der Marketingmaßnahmen) erfolgen soll, andererseits aber vor allem von der konkreten Verteilung des Umsatzes auf die Kunden – da ja möglichst homogene Gruppen gebildet werden sollen, ist die wesentliche Frage, wie groß die Unterschiede sind, die zwischen einzelnen Kunden/Kundengruppen bestehen. Sofern sich die Kunden allgemein im Hinblick auf den Umsatz im Analysezeitraum nicht signifikant unterscheiden, greift die beschriebene Logik natürlich nicht; falls etwa für alle Kunden ein identischer Rechnungsbetrag je Periode anfällt (z.B. bei einem undifferenzierten Abomodell), liefert eine Segmentierung unter diesem Aspekt keine sinnvollen Erkenntnisse.

 

Natürlich ist auch nicht notwendigerweise der Umsatz das entscheidende Kriterium, es könnte beispielsweise eine für den Einfluss auf den Unternehmenserfolg aussagekräftigere Größe wie etwa der Rohertrag verwendet werden.

 

Und wie funktioniert das nun?

 

Zunächst einmal brauchen wir für die Durchführung einer ABC-Analyse qualitativ hochwertige Ist-Daten; bei einem vertragsbasierten Geschäftsmodell in der Regel kein Problem, auch ein Online-Händler sollte die entsprechenden Daten zur Verfügung haben. Im traditionellen Handel zahlen sich hier Investitionen in ein Loyalty-Programm aus – neben einer Steigerung der Kundenbindung ist die Gewinnung von Daten ein ganz wesentlicher Vorteil!

In unserem Fall ist zumindest mal die Datenbeschaffung kein Problem – wir haben ja die bereits erwähnte Datei mit den Umsatzdaten. Wie geht es nun weiter?

 

Zunächst müssen wir den Zeitraum wählen, den wir hier betrachten wollen – hier bietet sich etwa das letzte Geschäftsjahr an, eine gute Alternative sind auch die letzten 12 Monate, für die wir uns hier entscheiden. Wir müssen somit aus den verfügbaren Daten diesen Zeitraum selektieren.

 

Das sollte doch mit Excel kein Problem sein – los geht’s. Also – Datei mit Excel öffnen, über das Datum filtern und die Ergebnisse auf ein weiteres Blatt kopieren.

 

Excel001.jpg

 

Jetzt müssen wir den aggregierten Gesamtwert der gewählten Größe (hier ist es der Umsatz, es könnte aber auch der Rohertrag sein) je Kunde bilden. Mit Excel können wir jetzt die Kundennummer einfach in eine andere Spalte kopieren, Duplikate entfernen und dann die Gesamtwerte pro Kunde mit SUMMEWENN ermitteln. Fertig.

 

Excel002.jpg

 

Den Gesamtwert, also die Summe für das Gesamtunternehmen brauchen wir auch noch. Eine Summe unter dem letzten Kunden einfügen. Auch das wäre damit erledigt.

 

Excel003.jpg

 

Jetzt brauchen wir den prozentualen Anteil jedes einzelnen Kunden am Gesamtwert des Unternehmens; sofern wie hier der Umsatz als Kriterium gewählt wurde, dividieren wir den Umsatz des Einzelkunden durch den Gesamtumsatz.

 

Excel004.jpg

 

Dann müssen wir die Kunden nach dem prozentualen Anteil am Gesamtumsatz absteigend sortieren.

 

Excel005.jpg

 

Für die so sortierten Daten ermitteln wir nun den kumulierten Anteil der Kunden (für die erste Zeile ist das einfach der Anteil, für alle Folgezeilen die Summe aus dem kum.Anteil der vorhergehenden Zeile und dem Anteil.

 

Excel006.jpg

 

Jetzt können wir die Kunden in Segmente einteilen. Zuvor müssen wir aber noch entscheiden, wie viele Segmente gebildet werden sollen und bei welchen kumulierten Anteilen die Grenze zwischen den Segmenten verläuft – vorgeschlagen wird oft, bei 80% die Grenze für die A-Kunden und bei 95% die für die B-Kunden zu ziehen. Pauschale Vorgaben helfen hier aber nur bedingt, entscheidend ist eher die Verteilung der Daten.

 

Im konkreten Beispiel könnte die Grenze zwischen A- und B-Kunden bei etwa 65% gezogen werden, zwischen Kunde K007 und Kunde K004 finden wir eine Differenz von etwa 50% des Umsatzes von K007 - solche „Brüche“ können als Indiz für eine „Segmentgrenze“ interpretiert werden. Die Unterscheidung von B- und C-Kunden ist durch den noch deutlicheren Umsatzsprung von K014 zu K024 recht eindeutig.

 

Excel007.jpg

 

Um eine Abhängigkeit von einzelnen Kunden erkennen zu können, ist schließlich die Ableitung einer Konzentrationskurve oder die Berechnung vergleichbarer Konzentrationsmaße sinnvoll.

 

Excel008.jpg

 

In unserem Fall können wir einen klaren Top-Kunden identifizieren, der allein einen Anteil von über 20% am Gesamtumsatz ausmacht – K003 ist ganz eindeutig unser wichtigster Kunde, mit einigem Abstand gefolgt von K015 und K011. Das ging ja schnell. Jetzt finden wir noch schnell heraus, wer das ist – für konkrete Ansprache brauchen wir ja Namen und Kontaktdaten. Dazu brauchen wir dann die Kundenliste. Mit einem SVERWEIS und etwas bedingter Formatierung ist auch das schnell erledigt und unsere Top-Kunden sind gefunden. Fertig.

 

Excel009.jpg

 

Jetzt wäre doch eigentlich der Zeitpunkt gekommen, unsere Lösung und die Ergebnisse vorzustellen und der Feierabend sollte gesichert sein.

 

Allerdings fallen uns doch noch ein paar „Kleinigkeiten“ auf, über die wir wohl noch mal nachdenken sollten. Wie viele Datensätze waren das doch gleich? Richtig, ungefähr 200. Und wie viele Kunden? 25. Unter diesen Umständen hat das ganz gut funktioniert. Insgesamt sind es aber vermutlich 2.500 Kunden. Oder 25.0000. Oder … okay, solange es weniger als 1.048.576 sind, ist das noch kein Problem. Bei den Umsatzdaten wird das aber vermutlich nicht reichen, das können schnell auch mal 20-30 Millionen Datensätzen werden. Das wird dann mit unserem Ansatz wohl nicht mehr so gut funktionieren. Außerdem - Filter setzen, Daten kopieren, Formeln kopieren – von einer automatisierten Lösung ist das ganz schön weit weg!

 

Gut, dass uns das noch aufgefallen ist. Wir sind also noch nicht ganz fertig. Wir haben zwar den Rechenweg, der muss aber noch so umgesetzt werden, dass er „produktiv“ genutzt werden kann. Und – schnell muss es gehen.

 

Und jetzt?

 

Wir haben ja glücklicherweise eine Alternative, die uns manuelle Eingriffe erspart, kein Problem hat, wenn es um Millionen Datensätze geht und auch flexibel angepasst werden kann – Alteryx. Versuchen wir es doch mal damit und bauen einen „ABC-Analyse-Workflow“.

 

Wir verwenden dabei wieder die Daten, die wir bisher genutzt haben - diesmal wissen wir aber, dass das, was wir bauen, unabhängig von der Datenmenge funktionieren wird. Und auf eine Datenbanktabelle können wir später auch noch umsteigen, wenn wir wollen.

 

Im ersten Schritt laden wir die Daten in Alteryx. Dazu nutzen wir ein Input Data Tool, wählen als Datenquelle die schon gezeigte CSV-Datei aus und legen als Delimiter das „;“ fest.

 

ABC001.jpg

 

Wenn wir den Workflow, der ja immerhin schon ein Tool enthält, jetzt ausführen, haben wir die einzelnen Transaktionen der Kunden in Alteryx zur Verfügung – allerdings stimmen die Feldtypen noch nicht so ganz, wie wir leicht feststellen können, wenn wir im Results-Window auf „Metadata“ schalten:

 

ABC002.jpg

 

Da wir für den Umsatz ja eine Aggregation auf Kunden benötigen, zudem über das Datum gegebenenfalls die Daten für den relevanten Zeitraum filtern müssen, sollten wir diese beiden Felder entsprechend umstellen.

 

Um das Textfeld [Umsatz] in ein numerisches Feld umzuwandeln, können wir die Funktion ToNumber nutzen. Wir fügen also ein Formula Tool hinzu und erzeugen über diese Funktion das neue Feld [Value]. Der Funktion geben wir mit, dass die Daten als Dezimaltrenner ein „,“ verwenden, standardmäßig würde ein „.“ erwartet.

 

ABC003.jpg

 

Das Feld [Datum] wandeln wir dann ebenfalls um; hier wird aus dem Textfeld ein Datumsfeld. Dazu nutzen wir die Funktion DateTimeParse. Der Funktion müssen wir nur mitgeben, in welchem Format das Datum angeliefert wird.

 

ABC004.jpg

 

Durch diese Formeln haben wir nun zwei neue Felder im Zielformat erzeugt, die ursprünglichen Felder brauchen wir nicht mehr. Außerdem haben mir die Feldnamen vorher besser gefallen, also nutzen wir einfach ein Select Tool, um überflüssige Felder zu entfernen und den neuen Feldern die gewünschten Namen zu geben: 

 

ABC005.jpg

 

Als Grundlage der Segmentierung wollen wir die Daten der letzten 12 abgeschlossenen Monate nutzen – wenn wir uns also im Februar 2021 befinden, wäre das der Zeitraum vom 01.02.2020 bis zum 31.01.2021. Um nur die Daten für diesen Zeitraum auszuwählen, können wir ein Filter Tool benutzen, allerdings wollen wir natürlich nicht bei jeder Ausführung des Workflows Beginn und Ende des Zeitraums neu eingeben – Ziel ist ja schließlich auch, dafür zu sorgen, dass manuelle Schritte nicht mehr notwendig sind.

 

Also nutzen wir zunächst wieder ein Formula Tool, um diese beiden Daten zu ermitteln. Dabei hilft uns zunächst die Funktion DateTimeFirstOfMonth, die uns den ersten Tag des laufenden Monats liefert. Von diesem Datum gehen wir mit Hilfe der Funktion DateTimeAdd ein Jahr zurück und sind damit am Beginn des Zeitraums, in der zweiten Formel gehen wir einen Tag zurück und erhalten den letzten Tag des Vormonats, also des letzten abgeschlossenen Monats.

 

ABC006.jpg

 

Anfangs- und Enddatum des Zeitraums können wir jetzt nutzen, um nur die Datensätze zu behalten, die im Zeitraum liegen. Dazu setzen wir ein Filter Tool mit der entsprechenden Bedingung ein.

 

ABC007.jpg

 

Zur Kontrolle schauen wir mal auf den „F“ Output des Filter Tools:

 

ABC008.jpg

 

Wie erwartet werden die Datensätze, bei denen das Datum vor dem Start oder nach dem Ende des Zeitraums liegt, herausgefiltert. Im nächsten Monat ändern sich die beiden Termine, damit würde dann der zweite Datensatz in die Analyse mit einbezogen.

 

Nun können wir die verbliebenen Daten für die einzelnen Kunden aggregieren. Dazu nutzen wir ein Summarize Tool, dem wir Kundennummer und Namen als Gruppierung mitgeben, summiert wird dann der Umsatz (gut, dass wir das Feld vorher umgewandelt haben!). So erhalten wir einen Wert für jeden Kunden. Den automatisch erzeugten Feldnamen [Sum_Umsatz] ersetzen wir dann auch gleich durch das sprechendere [Umsatz Kunde].

 

ABC009.jpg

 

Aber neben den Umsätzen der Kunden brauchen wir ja noch den Gesamtumsatz, also die Summe über alle Einzelwerte. Hier kommt einfach ein weiteres Summarize Tool zum Einsatz, bei dem wir diesmal auf Gruppierung verzichten, wir wollen ja einfach eine Gesamtsumme. Das Ergebnisfeld nennen wir dann [Gesamtumsatz].

 

ABC010.jpg

 

Inzwischen sieht unser Workflow so aus:

 

ABC011.jpg

 

Ich habe die Tools für die einzelnen Arbeitsschritte in Toolcontainern zusammengefasst und jeweils einen kurzen Kommentar hinzugefügt, so behält man doch leichter den Überblick.

 

Wir haben jetzt die Umsätze je Kunde und den Gesamtumsatz zur Verfügung und die nächste Aufgabe ist es, den Anteil jedes Kunden am Gesamtumsatz zu ermitteln. Dabei hilft uns zunächst das Append Fields Tool, mit dem wir jedem Datensatz, der den Umsatz je Kunde beinhaltet, den Gesamtumsatz hinzufügt.  

 

ABC012.jpg

 

Jetzt kann mit einem weiteren Formula Tool der Anteil gerechnet werden, der nach der Ausführung des Workflows für jeden Kunden zur Verfügung steht.

 

ABC013.jpg

 

Nach diesem Anteil wird nun absteigend sortiert, hier hilft das Sort Tool.

 

ABC014.jpg

 

Für die nach der Ausführung absteigend sortierten Anteil müssen nun die kumulierten Anteile ermittelt werden. Hier nutzen wir das Running Total Tool, das wir für das Feld [Anteil] rechnen lassen.

 

ABC015.jpg

 

Dem neu erstellten Feld geben wir dann noch den Namen [kum. Anteil], ist eine Kleinigkeit, trägt aber zur Verständlichkeit bei.

 

ABC016.jpg

 

Die eigentlichen Berechnungsschritte sind jetzt abgeschlossen, wir haben jetzt alle Werte, die wir für die Zuordnung der einzelnen Kunden zu A-, B- oder C-Kunden brauchen.

 

ABC017.jpg

 

Wenn wir die Regeln verwenden wollen, die wir im Beispiel oben bereits verwendet haben, kann die Zuordnung über entsprechende Bedingungen erfolgen. Um diese Zuordnung flexibel zu halten, können wir ein Text Input Tool einsetzen und für die gewünschten Gruppen jeweils Ober- und Untergrenzen angeben (bei den A-Kunden ist die Untergrenze 0, bei den C-Kunden die Obergrenze 1). Alternativ könnten wir das natürlich auch über eine Datei lösen, die wir über ein Input Data Tool laden.

 

ABC018.jpg

 

 

Falls wir jetzt entscheiden, feiner zu untergliedern (also etwa noch D- und E-Kunden zu unterscheiden), müssen einfach nur zusätzliche Zeilen eingefügt und die Grenzwerte entsprechend angepasst werden.

 

Diese Angaben fügen wir nun über Append Fields den vorhandenen Ergebnissen hinzu, hängen also die Unter- und Obergrenzen mit der entsprechenden Segment-Zuordnung einfach an. Für jede Zeile in unseren Ergebnissen werden dabei drei Datensätze mit den unterschiedlichen Grenzen erzeugt.

 

ABC019.jpg

 

Nun können wir über ein Formula Tool abprüfen, innerhalb welcher Grenzen der kumulierte Anteil liegt. Diese Methode kann übrigens generell benutzt werden, wenn es um ein Zuordnung von Werte nach einer Bereichsangabe geht.

 

ABC020.jpg

 

Für jeden Kunden wird jetzt bei genau einem Bereich ein Segment zugeordnet, für die beiden anderen Bereiche bleibt das Feld leer:

 

ABC021.jpg

 

Genau das benutzen wir dann, um den „richtigen“ Bereich zu identifizieren; mit einem Filter Tool eliminieren wir die Datensätze, bei denen keine passende Zuordnung gefunden wurde.

 

ABC022.jpg

 

Übrig bleibt für jeden Kunden ein Datensatz, der die korrekte Zuordnung enthält.

 

ABC023.jpg

 

 

Für die Darstellung einer Konzentrationskurve kann dann das Interactive Chart Tool genutzt werden, die Aufgliederung in die Teilbereiche ist über einen Segment-Split einfach möglich.

 

ABC024.jpg

 

Ach ja, fast hätten wir vergessen, noch den Namen anzuhängen. Dazu laden wir einfach die Kundenliste über ein weiteres Input Data Tool:

 

ABC025.jpg

 

Nun kommt das Gegenstück zum Excel-SVERWEIS zum Einsatz – das Find Replace Tool. Wir erwarten eine komplette Übereinstimmung im Feld [Kundennummer] und fügen unseren Daten dann das Feld [Namen] hinzu.

 

ABC026.jpg

 

Wir erhalten natürlich die gleichen Ergebnisse wie zuvor, diesmal allerdings können wir dem Praxiseinsatz entspannt entgegensehen, auch dann, wenn es um größere Datenmengen geht.

 

Insgesamt sieht das jetzt so aus:

 

ABC027.jpg

 

Fazit

 

Wir haben nun die im Beispiel gezeigte Segmentierung in A-, B- und C-Kunden mit Alteryx umgesetzt. Ein wesentlicher Vorteil dieser Lösung ist in jedem Fall die „Produktionstauglichkeit“; die Anzahl der Kunden, die wir mit Hilfe der ABC-Analyse zuordnen, und der Transaktionen, die in unsere Datenbasis einfließen, ist kein limitierender Faktor. Abgesehen davon sind wir bei der Ausgestaltung sehr flexibel, können also Erkenntnisse, die wir im Verlauf der Analyse gewinnen, sofort nutzen, indem wir etwa die Grenzen zwischen den einzelnen Gruppen verschieben oder zusätzliche Gruppen einführen.

 

Während wir an der technischen Umsetzung keine Zweifel haben, müssen wir vielleicht über die Methodik, die wir genutzt haben, noch einmal nachdenken. Der Ansatz ist doch sehr eindimensional – wir berücksichtigen lediglich eine Kennzahl, um die Bedeutung eines Kunden einzuordnen, andere Aspekte, wie die Kaufhäufigkeit werden nicht berücksichtigt. Außerdem – wir bewerten einen Zeitraum von 12 Monaten. Wenn ein Kunde nur im ersten Monat einen größeren Einkauf getätigt hat – ist der für uns so wichtig wie ein anderer, bei dem sich der gleiche Umsatz auf monatliche Käufe verteilt? Vielleicht gibt es ja noch andere Ansätze, die eine etwas umfassendere Sichtweise bieten?

 

Mit einer Alternative beschäftigen wir uns im nächsten Teil – da schauen wir uns die Kunden dann mit der RFM-Analyse an.

Beschriftungen