Czym są wskaźniki KPI?
KPI (ang. Key Performance Indicator) to wskaźniki kondycji firmy, prezentujące dane za pomocą ikon graficznych. Ich podstawą są dane z bieżącego okresu, w porównaniu do danych z okresu poprzedniego. Funkcja przypomina, operację z systemu Wapro Mag Porównuj ostatnią cenę dla kontrahenta
, z tą różnicą, że wskaźniki KPI nie ograniczają się do porównywania cen, a pozwalają na analizę różnych obszarów firmy np. wartości sprzedaży, zysku, obrotów magazynowych czy zrealizowanych zamówień.
Kolumna WARTOŚĆ zawsze prezentuje wartość bieżącej miary w wybranym okresie, np. zysk w miesiącu listopad roku 2022.
Kolumna CEL prezentuje cel, do którego dążymy w przypadku wskaźników predefiniowanych; jest to wartość z analogicznego okresu poprzedniego, np. listopad 2022 z uwzględnieniem 15% wzrostu.
Kolumna STATUS prezentuje, czy wartość bieżąca jest większa, mniejsza czy równa w odniesieniu do zakładanego celu (15% wzrost).
Kolumna TREND prezentuje wartość z ilorazu pomiędzy wartością bieżącą a wartością z analogicznego okresu poprzedniego, jeśli wartość ilorazu:
- jest > 1, to trend jest rosnący,
- jest z przedziału > 0.98 a <= 1, to trend jest neutralny,
- jest < 0.98, to trend jest malejący.
Do prawidłowego wyliczania wartości podczas używania wskaźników KPI, potrzebne jest umieszczenie na tabeli przestawnej hierarchii "Data" z wymiaru czasu. Dla przykładu, jeśli użytkownik podczas definiowania własnej analizy z wykorzystaniem KPI dodaje czas, powinien umieścić przynajmniej rok i miesiąc w wymiarze czasu. Na tej podstawie system utworzy tzw. hierarchię czasu o nazwie "Data". Użytkownik powinien wybrać z listy właśnie poziom "Data" na oś X lub Y, a nie poszczególne elementy rok lub miesiąc.
Użytkownik programu w wariancie BIZNES otrzymuje predefiniowane wskaźniki za pomocą, których może dokonać analizy, ale nie może zmienić definicji wskaźników - za wyjątkiem ikon graficznych, jakie mają być prezentowane w analizie.
Wariant PRESTIŻ umożliwia utworzenie własnych wskaźników, które będą uwzględniały, np. sezonowość, czyli inny współczynnik wzrostu w różnych miesiącach, czy też różne współczynniki wzrostu dla danych kategorii asortymentowych lub konkretnych handlowców. Dodatkowo wariant ten umożliwia wykonanie powielania wskaźników systemowych, dzięki czemu można na podstawie systemowych wskaźników dokonać modyfikacji formuł pod realia firmy.
Każdy wskaźnik KPI składa się z czterech podstawowych elementów:
- wartość miary w bieżącym okresie, która będzie analizowana;
- cel, do którego się odnosimy, np. wartość z poprzedniego z analogicznego miesiąca roku poprzedniego, pomnożona przez współczynnik X;
- status, czyli prezentacja graficzna porównania wartości i celu;
- trend, czyli prezentacja graficzna formuły, która wylicza, czy trend jest wzrostowy, neutralny czy malejący.
Definicja wskaźników tworzona jest na podstawie języka MDX, który pozwala na operowanie miarami i wymiarami stosowanymi w analitycznych kostkach wielowymiarowych.
Poniżej zaprezentowano wygląd okna definiowania wskaźników KPI z definicją systemowych wskaźników.
Jak zdefiniować własne wskaźniki KPI?
W wariancie PRESTIŻ użytkownik może tworzyć własne wskaźniki samodzielnie lub powielać i modyfikować istniejące działanie systemowe. Tworzenie wskaźnika polega na zdefiniowaniu kilku formuł w poszczególnych polach. Pomocne mogą być funkcje dostępne z języka MDX, które pozwalają pobierać w sposób dynamiczny pewne wartości lub się do nich odwoływać. Poniżej, na podstawie systemowego wskaźnika, wyjaśniono znaczenie poszczególnych formuł.
Nazwa
Nazwa wskaźnika odpowiada za prezentowanie go na liście dostępnych miar oraz jest istotna w przypadku używania funkcji KPIGOAL
oraz KPIVALUE
.
Należy zwrócić uwagę, aby, odwołując się w funkcjach do bieżącego wskaźnika, podawać jego dokładną nazwę - w innym przypadku wartości nie zostaną obliczone.
Przynależność do grupy
Przynależność do grupy pozwala zdefiniować w jakiego rodzaju analizach dany wskaźnik ma być dostępny. Należy pamiętać aby przypinając dany wskaźnik do danej grupy, posługiwać się nazwami miar i wymiarów, które faktycznie w danej grupie istnieją. Dla przykładu wskaźnik, który będzie odwoływał się do miary [Measures].[Zysk netto]
nie będzie działał z analizą zamówień, ponieważ taka miara tam nie występuje.
Wartość - formuła
Wartość określa daną, którą będziemy porównywać we wskaźniku KPI. Można w tym miejscu wpisać wartość stałą, np. 10000, ale nie ma to praktycznego zastosowania. Zazwyczaj w tym miejscu, podaje się którąś z miar poprzez zastosowanie kolekcji [Measures] (stała nazwa wymagana przy podaniu miary) oraz nazwy miary podanej w nawiasach kwadratowych, np. [Measures].[Zysk Netto]
.
Cel - formuła
Cel to wartość, pożądana do osiągnięcia. Wprowadić ją można analogicznie jak do pola Wartość - jakość stała, ale w praktyce cel buduje się dynamicznie, np. wartość z roku poprzedniego zwiększona o X% lub wartość wyliczana np. per miesiąc, per handlowiec, per kategoria towarowa czy też per produkt.
W naszym przypadku formuła pobiera wartość z analogicznego okresu roku poprzedniego i zwiększa ją o 15%. Dla przykładu dla roku 2022 będzie odniesienie do roku 2021, na niższym poziomie dla grudnia 2022 będzie odniesienie do grudnia 2021, analogicznie dla pozostałych miesięcy.
Przykładowa formuła systemowego wskaźnika "Sprzedaż zysk - KPI" to:
Round((ParallelPeriod ([Data].[Data].[Rok], 1, [Data].[Data].CurrentMember),[Measures].[Zysk Netto] )*1.15,2)
Round(X,Y)
- funkcja pozwala zaokrąglić wynik do wskazanej liczby miejsc po przecinku, gdzie "X" to wartość do zaokrąglenia, a "Y" to liczba miejsc po przecinku.ParallelPeriod(Hierarchia, OkresPrzesunięcia, BieżącyElement)
- pozwala na dynamiczne pobranie wartości z analogicznego okresu w odniesieniu do hierarchii czasu. W tym przypadku użyto hierarchii "Data" ze wskazaniem jej najwyższego poziomu czyli "Hierarchia Data", "Poziom Hierarchii", "Data" i jej otomek "Rok". Wartość "1" oznacza przesunięcie na osi czasu w lewo o jeden okres, dla roku będzie to poprzedni rok, dla miesiąca, analogiczny miesiąc roku poprzedniego.Odwołanie poprzez funkcję CurrentMember
- pozwala wskazać, że wyliczenie (przesunięcie) można wykonywać, dla każdego rekordu, który aktualnie jest obliczany.Miara [Measures].[Zysk Netto]
- to wskazanie miary, która ma być obliczana, w tym przypadku to "Zysk netto", element [Measures] jest stały i należy zawsze poprzedzić nazwę miary tym elementem oraz kropką. Jest to kolekcja miar do dyspozycji (pochodzi ona z listy miar dostępnej w danej analizie).Wyrażenie *1,15
- stałe wyrażenie, które zakłada, że wartość odczytaną z poprzedniego okresu, należy pomnożyć przez 115%, aby uzyskać wartość wynikową.
W skrócie algorytm możemy przetłumaczyć do zapisu "Pobierz dla każdego rekordu wartość z analogicznego okresu roku poprzedniego i pomnóż przez 115% - to jest cel, jaki masz porównywać z wartością".
Status - formuła
Status to formuła, która powinna w wyniku zwrócić jedną z trzech wartości -1/0/1. Należy napisać funkcję tak, aby wartość pochodziła z tego zbioru, gdzie -1 oznacza ŹLE, 0 NEUTRALNIE, a 1 DOBRZE.
CASE
WHEN IsEmpty(KPIVALUE("Sprzedaż zysk - KPI")) THEN NULL
WHEN KPIVALUE("Sprzedaż zysk - KPI") > KPIGOAL("Sprzedaż zysk - KPI") THEN 1
WHEN KPIVALUE("Sprzedaż zysk - KPI") = KPIGOAL("Sprzedaż zysk - KPI") THEN 0
ELSE -1
END
Przedstawiona formuła korzysta z kilku funkcji przydatnych w obliczaniu dynamicznym wartości.
- Funkcja
CASE ... WHEN ... THEN ... ELSE... END
- pozwala zbadać wartości poprzez porównanie w stylu: jeśli warunek jest spełniony, to "COŚ_1", a jeśli nie, to "COŚ_2".
Ilość poziomów WHEN nie jest ograniczona, dzięki czemu można przygotować na podstawie tej funkcji np. inne dynamiczne warunki dla każdego miesiąca, handlowca czy działu firmy.
Funkcja
IsEmpty
sprawdza, czy wartość z poprzedniego okresu (w tym przypadku, wynika to z funkcjiKPIVALUE
) jest pusta. Może to oznaczać, nie ma np. zysku z poprzedniego roku, ponieważ nie było sprzedaży. Jeśli ten warunek jest spełniony, to funkcja zwraca "NULL", dzięki czemu kontrolki graficzne nie prezentują danych dla pustych rekordów i analiza jest czytelniejsza.Funkcja
KPIVALUE("nazwa_wskaźnika")
- pozwala odnieść się do wartości w podanym wskaźniku, jest to nazwa wskaźnika, z którego chcemy pobrać wartość. W większości przypadków chodzi o wskaźnik bieżący, należy więc wskazać wartość z pola Nazwa.Funkcja
KPIGOAL("nazwa_wskaźnika")
- pozwala odnieść się do pola Cel - formuła dla wybranego wskaźnika. Analogicznie do funkcjiKPIVALUE
chodzi o wskaźnik bieżący, więc należy podać jako parametr funkcji, wartość pola Nazwa.
Formuła dzielenia jest dowolną formułą, jaką przyjmie użytkownik.
Trend - formuła
Tren analogicznie jak status korzysta z funkcji CASE ... WHEN ... THEN ... ELSE ... END
oraz KPIVALUE
i KPIGOAL
, dodatkowo ponownie użyto funkcji ParallelPeriod
, aby odnieść się do poprzednich okresów i dynamicznie pobrać ich wartość.
Przykład
CASE
WHEN IsEmpty(KPIVALUE("Sprzedaż zysk - KPI")) THEN NULL
WHEN KPIVALUE("Sprzedaż zysk - KPI") / (KPIVALUE("Sprzedaż zysk - KPI"), ParallelPeriod ( [Data].[Data].[Rok] , 1 , [Data].[Data].CurrentMember)) > 1 THEN 1
WHEN KPIVALUE("Sprzedaż zysk - KPI") /(KPIVALUE("Sprzedaż zysk - KPI"), ParallelPeriod ( [Data].[Data].[Rok] , 1 , [Data].[Data].CurrentMember)) <= 1
AND KPIVALUE("Sprzedaż zysk - KPI") / (KPIVALUE("Sprzedaż zysk - KPI"), ParallelPeriod ( [Data].[Data].[Rok] , 1 , [Data].[Data].CurrentMember)) > .98 THEN 0
ELSE -1
Listy wyboru Status - typ wskaźnika oraz Trend - typ wskaźnika to nic innego jak ikony graficzne, gdzie każdy może dobrać je do swoich potrzeb w zależności od preferencji i czytelności tworzonego wskaźnika.
Należy pamiętać, że aby wskaźnik działał prawidłowo należy umieścić na liście miar wszystkie miary, do których odwołujemy się podczas tworzenia wskaźnika w formułach, w przykładzie jest to miara Zysk netto. W innym przypadku analiza nie zostanie utworzona prawidłowo.
Funkcja ParallelPeriod
odnosi się do hierarchii czasu, wymagane jest, aby jako hierarchię czasu używać poziom "Rok" i "Miesiąc", jeśli użytkownik chce wykorzystywać przykładowe czy systemowe wskaźniki. Jeśli ma być używany inny poziom należy zmodyfikować formułę. Hierarchia czasu zawsze ma pierwsze dwa człony stałe [Data].[Data].<pod_poziom>
oraz podpoziomy odpowiadające nazwą poszczególnych poziomów tj. Rok, Kwartał, Miesiąc, Tydzień, Dzień.