Klasy pozycji asortymentowych wyznaczane przez metody ABC/XYZ oraz ich połączenie w formie matrycy, są jednymi z najpopularniejszych mierników dla oceny zapasu i rotacji pozycji asortymentowych.

 

Metoda ABC wywodzi się z zasady Pareto (80/20), która w przypadku gospodarki magazynowej pozwala sklasyfikować towary wg rotacji. Najczęściej wybieramy 20% towarów o najwyższej rotacji i klasyfikujemy je jako A. Z kolei klasyfikacja towarów metodą XYZ pozwala na rozróżnienie pozycji asortymentu o łatwiej prognozowanym popycie od tych, na które popyt jest mniej regularny, a tym samym prognozy na nie są obarczone większym błędem. W literaturze jest bardzo dużo opracowań na ten temat i niemal każdy praktyk słyszał o macierzy ABC/XYZ.

 

Jak praktycznie w systemach WMS wykorzystać klasyfikatory ABC/XYZ? Przy dokładniejszym przyjrzeniu się ich specyfice oraz potrzebom w obszarze zarządzania zasobami magazynowymi okazuje się, że nie jest to takie oczywiste. Miałem okazję osobiście poznać sposoby liczenia ABC/XYZ w kilku systemach ERP, WMS i stwierdzam, że w znacznej części rozwiązań bezkrytycznie przenosi się zasadę Pareto do poziomu operacji magazynowych. W mojej ocenie jest to błędne podejście. Dlaczego? Już wiele lat temu w ocenie metody ABC pojawiły się u mnie konkretne wątpliwości:

 

  • Jak liczyć poziom rotacji dla każdego SKU?
  • Czy 20% towarów w konkretnym magazynie będzie zawsze tymi najlepiej rotującymi?
  • Czy w każdym typie magazynu towar będzie miał taka samą klasę rotacji?
  • Jakich usprawnień/rekomendacji z perspektywy optymalizacji operacji magazynowych powinna dostarczać klasyfikacja ABC?
  • Co z rotacją dla nowych indeksów bez historii sprzedaży?
  • Jak w pespektywie rotacji danego SKU ocenić liczbę operacji, w których dany towar bierze udział?

 

Zauważyłem, że o ile klasyczne podejście w zarządzaniu gospodarką magazynową w oparciu o macierz ABC/YXZ, sprawdza się przy planowaniu zakupów, kategoryzacji towarów i dostawców, to już niekoniecznie zawsze możliwe jest wykorzystanie tej metody do optymalizacji procesów magazynowych. Na poparcie tego twierdzenia poniżej podaję kilka argumentów:

 

  1. Celem kategoryzacji towarów jest rozlokowanie towarów szybkorotujących (klasy A) w miejscach o najlepszym dostępie.

To jest oczywiste, ponieważ takie rozlokowanie pozwala nam na skrócenie czasów podjęcia towaru. Na tym etapie analizy klasyfikacja ABC wydaje się być bardzo dobrym narzędziem. Jest jedno „ale” – w jaki sposób z perspektywy magazynu wyznaczyć miejsca o wysokiej dostępności? Metod oczywiście jest kilka, w celu skrócenia objętości niniejszego wywodu, skupię się na jednej – metodzie oceny czasu dostępu do lokalizacji. Po dokonaniu takiej oceny, okazuje się, że liczba miejsc o wysokiej dostępności w konkretnym magazynie jest STAŁA.

 

  1. Jakie jest prawdopodobieństwo, że ilość wysokodostępnych miejsc magazynowych będzie równa 20% ilości aktywnych SKU? Wg mnie żadne lub bardzo niskie.
  2. Jakie mamy szanse na to, że liczba SKU będących w bieżącym obrocie, nigdy nie będzie się zmieniać w czasie? Wg mnie niezwykle małe.

 

➡️WNIOSEK 1: z pespektywy operacyjnego zarządzania magazynem o ilości towarów wysokorotujących (klasy A) decyduje sposób organizacji konkretnego magazynu i liczba takich indeksów jest STAŁA, ponieważ jest bezpośrednią pochodną liczby lokalizacji o konkretnych parametrach – takich jak wspomniany wcześniej czas dostępu. Zatem 20% wskaźnik dla indeksów o najwyższej rotacji (A) nie będzie miał tutaj żadnego zastosowania.

 

➡️WNIOSEK 2: Każdy magazyn, różniący się strukturą lokalizacji, będzie miał inną liczbę indeksów sklasyfikowanych jako wysokorotujące.

 

➡️WNIOSEK 3: System WMS powinien mieć możliwość wielokryterialnego opisu pojedynczych lokalizacji. Inaczej. Poniżej przykład takiego podejścia z naszego systemu WMS OPTIpromag. Oprócz ABC/XYZ jest jeszcze COI, ale o tym powiemy innym razem.

 

  1. Jak liczymy rotację? Odpowiedź wydaje się prosta i brzmi: musimy policzyć średnią ilość SKU wydawanych w ciągu dnia. Banał.

Ale jeżeli przeanalizujemy szerzej to zagadnienie, to nasuwają się następujące pytania:

 

  1. Dla jakiego okresu taką średnią należy wyliczyć?
  2. Czy wszystkie towary i grupy towarowe mają mieć taki sam okres uśredniania?
  3. Jaką jednostkę miary użyć do liczenia rotacji? Sztukę, karton, paletę?
  4. Czy rotację liczyć dla operacji: wydań, przyjęć, ruchów wewnątrzmagazynowych?

 

➡️WNIOSEK 1: W różnych branżach mamy towary o różnej częstotliwości zakupów i sprzedaży. Przykładowo, patrząc na standardowy market, towary FMCG powinny mieć krótki okres uśredniania np. 3–7 dni roboczych, dodatkowo warto uwzględniać dni tygodnia (związane z plikami zatowarowania w poniedziałki i piątki). Jednocześnie w tym samym markecie artykuły przemysłowe mogą mieć znacznie niższy poziom rotacji i okres uśredniania dla tej kategorii to 30 dni. Do analizy optymalnych okresów uśredniania rotacji niezbędne są także raporty systemowe.  

 

➡️WNIOSEK 2: Licząc rotacje system powinien uwzględniać tylko dni pracujące. Niby oczywista sprawa, ale niestety nie wszyscy i nie zawsze o nim pamiętają.

 

➡️WNIOSEK 3: Bardzo ważna kwestia – należy wybrać odpowiednią jednostkę miary wykorzystywaną w operacji wyznaczania klasy rotacji. Najczęściej jest to domyślna jednostka wydań lub podstawowa jednostka miary. W naszym systemie WMS wykorzystujemy podstawową jednostką miary. Dlatego też każdy konsultant musi mieć podstawową wiedzę, w jaki sposób skonfigurować dane podstawowe towarów i magazynów.

 

 

 

 

  1. Dzienna liczba wierszy z danym SKU, a ilość pobrań/odstawień i skanów indeksu. Co determinuje liczbę operacji i wpływa na rotacje?

W tym miejscu możemy wpaść w „pułapkę” jednostki miary, którą wykorzystujemy w procesie wyliczania rotacji. Sytuacja taka może wystąpić w przypadku, kiedy zmienia się struktura zamówień, np. dla towarów o niskiej cenie promowane jest zamawianie kartonów/setów zamiast sztuk. W perspektywie WMS-a interesuje nas ilość czasu i pracy poświęconej konkretnemu SKU, takich jak liczba pobrań, liczba odłożeń, liczba skanów. To właśnie te parametry determinują czasochłonność i koszty, a co za tym idzie chęć i konieczność ich optymalizacji.

 

Z tego właśnie powodu wyliczanie metryk A/B/C powinno być dwuwymiarowe.  W naszym systemie WMS OPTIpromag wykorzystujemy dwa wymiary: rotację oraz liczbę operacji na SKU. Dla obu metryk możemy skonfigurować wagę. Dzięki takiemu podejściu mechanizm wyliczania metryk ABC jest dokładniejszy, automatycznie reaguje na zmiany trendów i dokładniej odzwierciedla rzeczywiste procesy.

 

 

 

 

  1. Nowe indeksy a rotacja.

Policzenie metryk dla indeksów posiadających historię przyjęć i wydań, jeżeli pamiętamy o kwestiach poruszanych powyżej nie powinno być zbytnio kłopotliwe. Występuje natomiast trudność przy nowych indeksach. Tutaj oczywiście sprawa nie jest nadal jednoznaczna, bo możemy mieć do czynienia z nowymi SKU, które są dystrybuowane zgodnie z polityka PUSH. Ta sytuacja ma miejsce, kiedy nasi odbiorcy sami nie zamawiają danego SKU, ale są zobowiązani do jego odebrania – przypadek występujący w planowanych akcjach promocyjnych np. w sieciach handlowych. Inaczej jest, jeżeli dany indeks ma być dystrybuowany wg zasady PULL, czyli to nasza sieć dystrybucji i odbiorców sama zamawia dany towar. W takim przypadku system nie powinien czekać, aż uzupełnią się dane historyczne, ponieważ będzie zaburzało to optymalne ścieżki rozłożenia towaru, kompletacji oraz podnosiło koszty operacji magazynowych.

 

W systemie WMS OPTIpromag wykorzystujemy mechanizm wyznaczania poziomu rotacji na SKU bez historii wydań. Jest to przydatne w sytuacjach, w których wprowadzamy zamienniki towarów, lub w przypadku towarów, dla których przewidujemy sprzedaż w dużych ilościach. Mechanizm ten opiera się na wielu parametrach, między innymi takich jak: średnie tempo rotacji w grupie towarowej w zadanym okresie porównawczym (np. poprzednie święta), towary porównawcze, prognoza sprzedaży. Dzięki takiemu rozwiązaniu system przy standardowych parametrach sterujących jego działaniem już od momentu przyjęcia nowych indeksów może optymalizować ich alokacje.

 

 

📝 Temat opracował: Dariusz Olearczuk