Analiza kosztów projektów, podział kosztów wspólnych.

Kilka lat temu stanąłem przed wyzwaniem dokładnej analizy rentowności projektów. Na koszty projektu składały się wynagrodzenia pracowników (programistów, testerów, konsultantów), koszty licencji, sprzętu. Ponieważ firma prowadziła wiele projektów w danym czasie o różnej wielkości programiści często pracowali przy różnych projektach rejestrując czas pracy na poszczególne projekty.

Dodatkowym aspektem, który był istotny było rozliczanie kosztów, które nie były przydzielone bezpośrednio do projektów takich jak koszty administracyjne, biuro, księgowość i wiele innych, które były wsypywane do jednego worka.

Fragment mojego oryginalnego działającego procesu w Alteryx, całość ma 60 elementów


Przygotowanie danych do raportowania zajeło mi kilka dni i polegało na stworzeniu wielu widoków SQL, które przetwarzały dane z różnych baz danych. Rozwiązanie żmudne i bardzo trudne w modyfikacji, jak się później okazało. Każda zmiana w systemach z danymi czy sposobie liczenia wymagała przeprogramowywania widoków SQL. Z pomocą przyszedł Alteryx, przepisałem całe procesowanie danych, wprowadzając jednocześnie wiele poprawek i ulepszeń. Zainspirowało mnie to do napisania posta, w którym przedstawie w uproszczeniu rozwiązanie tego zadania.

Mamy 3 źródła danych. Timesheet, w którym znajdują się informacje o czasie spędzonym przez ludzi przy projektach (w moim przypadku Harvest)


Dane z timesheet (rejestracja czasu pracy)

W tym przykładzie przyjąłem że wpisy są robione dziennie, z dokładnością do godziny, jeden pracownik może pracować przy wielu projektach.

Wynagrodzenia, plik zawiera informacje o miesięcznych kosztach wynagrodzenia osoby pracującej przy projekcie. 

Informaje o całkowitych kosztach osobowych

Identyfikator łączący dane o wynagrodzeniach z rejestracją czasu pracy to imię nazwisko osoby.
W rzeczywistości pobieranie danych o kosztach osobowych jest bardziej skomplikowane, w moim  realnym przypadku dane pochodziły z dwóch ewidencji. Pierwszy to systemu HR z którego płace były księgowane na odpowiednio skonstruowanych kontach księgowych, stąd można było wyciągnąć całkowity koszt wynagrodzenia. Drugim były informacje z rejestru VAT, do którego trafiały faktury od ludzi na kontraktach również księgowane do odpowiedniej struktury kont. Dla uproszczenia pominę ten etap przetwarzania danych, ponieważ jest on silnie zależny od używanych narzędzi HR, ewidencji VAT, księgowości.

Trzecim źródłem danych są zaksięgowane koszty. Koszty mogą zawierać identyfikator projektu, wtedy uznajemy że są to koszty należące do danego projektu. W przeciwnym wypadku mamy koszty wspólne, które chcemy rozlokować według ustalonego klucza po wszystkich projektach.


Informacje o zaksięgowanych kosztach bezpośrednich i wspólnych


Plik zawiera również kategorię kosztów (może to być np opis faktury albo numer konta księgowego).

Efekt, który chcielibyśmy osiągnąć w naszym raportowaniu to pełna analiza kosztów na projektach, zawieracjąca również rozlokowane koszty wspólne. Przykładowe analizy zrobione w Tableau, mogą wyglądać następująco:

Analiza kosztów projektów uwzględniająca podział kosztów wspólnych


Podział kosztów wspólnych/bezpośrednich w projekcie, zastosowałem klucz czasowy

Omówię teraz kolejne kroki całego procesu w Alteryx

Proces przygotowania danych do analizy kosztów projektów w Alteryx

Ponieważ wszystkie dane są analizowane w granulach miesięcznych dodałem pole MY, które składa się z roku i miesiąca. Użyłem tutaj funkcji datetimetrim([Data],'month')
Dodanie pola MY (Rok, miesiąc)
Dodatkowo przy wynagrodzeniach dodałem kategorie wynagrodzenia. W źródle kosztów stworzyłem pole Typ, które przyjmuje wartość na "bezpośrednie" tam gdzie jest identyfikator projektu albo "wspólne" tam gdzie pole jest puste.

Aby zmiejszyć ilość danych w timesheet zgrupowałem je do miesiąca, osoby i projektu. Nie będziemy potrzebowali analizy wpisów poszczególnych dni.
Zgrupowanie danych z timesheet do miesiąca, projektu, osoby

Ponieważ wynagrodzenia stanowią koszty bezpośrednie projektów musimy połączyć je z informacjami z timesheet'a i dodać do tabeli kosztów (zrobić union). Na końcu wszystkie koszty rozdzielamy na wspólne i bezpośrednie.
Zebranie wszystkich kosztów bezpośrednich i wspólnych
Koszty wspólne chcemy podzielić pomiędzy projekty według określonego klucza. W moim przypadku kluczem tym jest miesięczny rozkład czasu spędzonego nad projektami. Jest to o tyle uzasadnione że więcej czasu konsultantów oznacza więcej zużytych "zasobów" i kosztów wspólnych. Możemy tutaj zastosować również klucz związany z wartością projektów klucz mieszany albo pobrać podział z zewnętrznego źródła danych.
W naszym przykładzie podzielnik kosztów wspólnych jest wyliczany z timesheet'a i polega na obliczeniu sumy przepracowanych w miesiącu następnie połączeniu wynikowej tabeli z tabelą zawierającą wszystkie wpisy i wyliczeniu podzielnika.

Wyliczanie podzielnika kosztów wspólnych

Po tej operacji łączymy koszty wspólne wydzielone wcześniej z wszystkich kosztów z podzielnikiem i wyliczamy ostateczny podział kosztów.
Ostateczny podział kosztów wspólnych według podzielnika czasowego
Ostatecznie otrzymujemy koszty wspólne podzielone według projektów, które dołączamy (union) do kosztów bezpośrednich a całość eksportujemy do ekstraktu Tableau.

Union kosztów wspólnych i bezpośrednich
Tadaam!!!, możemy zacząć raportować w Tableau a jeśli do danych dodamy informacje o przychodzie będziemy mieli pełną analizę rentowności tematów.
Mam nadzieję że przykład jest dla was inspirujący, chętnie posłucham komentarzy, waszych doświadczeń.

pr

KOMENTARZE

BLOGGER: 2
Loading...
Nazwa

Alteryx,8,astrafox,1,ASTRAFOX ACADEMY,16,case study,16,Data Science,44,Konferencje,31,Mapy i geokodowanie,6,Opinie,1,Przygotowane danych - ETL,4,R,4,Tableau,202,Tips & Tricks,61,Wizualizacja danych,50,
ltr
item
Polski blog Tableau - ASTRAFOX: Analiza kosztów projektów, podział kosztów wspólnych.
Analiza kosztów projektów, podział kosztów wspólnych.
https://2.bp.blogspot.com/-5Ga3j3KHgTY/V8740rhjIFI/AAAAAAAACQA/jFH9QhFNqNkP6IchrDUbJ2H3FjDdShHQACLcB/s320/Screen%2BShot%2B2016-09-06%2Bat%2B7.11.20%2BPM.png
https://2.bp.blogspot.com/-5Ga3j3KHgTY/V8740rhjIFI/AAAAAAAACQA/jFH9QhFNqNkP6IchrDUbJ2H3FjDdShHQACLcB/s72-c/Screen%2BShot%2B2016-09-06%2Bat%2B7.11.20%2BPM.png
Polski blog Tableau - ASTRAFOX
http://blog.tableau-software.pl/2016/09/analiza-kosztow-projektow.html
http://blog.tableau-software.pl/
http://blog.tableau-software.pl/
http://blog.tableau-software.pl/2016/09/analiza-kosztow-projektow.html
true
9139349578575077505
UTF-8
Załadowano wszytskie posty Nie znaleziono żadnych postów ZOBACZ WSZYSTKIE Czytaj więcej Odpowiedz Usuń komentarz Usuń Napisane przez Home STRONY POSTY Zobacz wszystko POLECANE ETYKIETA ARCHIWUM SZUKAJ WSZYSTKIE POSTY Nie znaleziono tematów ani postów pasujących do twoich kryteriów Powrót Niedziela Poniedziałek Wtorek Środa Czwartek Piątek Sobota Nd Pon Wt Śr Czw Pt Sob Styczeń Luty Marzec Kwiecień Maj Czewiec Lipiec Sierpień Wrzesień Październik Listopad Grudzień Styczeń Luty Marzec Kwiecień Maj Czerwiec Lipiec Sierpień Wrzesień Październik Listopad Grudzień teraz minutę temu $$1$$ minutes ago godzinę temu $$1$$ hours ago wczoraj $$1$$ days ago $$1$$ weeks ago ponad 5 tygodni temu Obserwujący Obserwuj TO JEST TREŚĆ PREMIUM Udostępnij, by odblokować Kopiuj cały kod Zaznacz cały kod Cały kod został skopiowany Nie można skopiować kodu / tekstu, naciśnij [CTRL]+[C] (or CMD+C w Mac) by skopiować