České vysoké učení technické v Praze Fakulta elektrotechnická
Semestrální práce z předmětu A4M33CPM Corporate performance management Téma: Železářství
Vypracovali:
Ondřej Harcuba Martin Tomášek LS 2012/2013 1
Zadání Středně velká firma specializující na prodej železářského zboží a dalšího sortimentu má v České republice několik prodejních poboček. Vlastníci firmy by chtěli pořídit aplikaci, kde by mohli plánovat nákpupy a prodeje zboží na těchto pobočkách v průběhu roku a to hlavně z toho důvodu, že všechno zboží se nakupuje od dodavatelů, kteří mají různé množstevní slevy. Firmě se nejvíce vyplatí nakupovat zboží od dodavatelů tak, aby měla co největší slevu a zároveň aby nakoupené zboží následně nestálo zbytečně dlouho na skladě. Aplikace by tak měla umožňovat uživatelům zobrazovat různé scénáře prodejů při různém nastavení výběru dodavatelů, množství nakoupeného zboží, nákladů na jeho skladování, množstevních slevách a požadovaných marží.
Analýza V naší aplikaci předpokládám existenci lidského fakturu, který ví, kolik zboží lze nakoupit. Ve své podstatě jde o to, aby uživatel každý měsíc nenakoupil obrovské množství kusů jednotlivého zboží, které by mu posléze leželo na skladu. Námi navržené řešení dovolí uživateli plánovat nákupy zboží a jeho následné prodeje. Taktizovat s počtem nakoupených zboží. Následně lze pozorovat jakým způsobem mohou ovlivnit změny nastavení dodavatele a jeho podmínek nákupní ceny a následně prodejní ceny a celkovou bilanci firmy. Aplikace zatím pracuje s třemi dodavatelemi, které lze postupně rozšiřovat a každému dodavateli lze nastavit 3 různé druhy prodejních slev. Aplikace pracuje s třemi druhy zboží, jejich počet lze opět libovolně rozšiřovat. Prodejce může na zboží uplatňovat akční cenu, kterou lze snížit prodejní cenu zboží, aktivování akční ceny si vybýrá prodejce v určitý datum. Důvodem je to, že na konci roku lze některé výrobky vypradávat jako například loňské modely či doprodejne skladu. Při nákupu hrajou důležitou roli naši dodavatelé. Tito dodavatelé mohou mít různé slevové politky, kterou hrají roli ve výběru dodavatele pro konkrétní období nákupu v závislosti na počtu kusů, které chceme nakoupit. Každý dodavatel také má jinou jednotkou cenu za artikl a různé vedlejší výdaje. Při prodeji je potřeba vycházet z nákupní ceny. Prodejní cena je počítána průměrově. Abychom vydělali, tak je potřeba k prodanému zboží přidat určitý druh přirážky a popřípadě ještě aplikovat slevu v určitém období. Zboží prodáváme na určitých pobočkách, proto je v aplikaci umožněn přehled prodeje po jednotlivých pobočkách a celková sumarizační kostka.
2
Popis implementace Implementace byla provedena v aplikaci IBM Cognos TM1 modeler 10.1.1. Byly použity následující dimenze a kostky: Dimenze:
Balance(Bought[pieces],Sold[pieces],Bought[money],Sold[money],Balance) - Dimenze pro výsledovku ukazuje poměr koupených a prodaných kusů a Poměr celkových nákladů a výnosů. Branches( StredniCechy( Praha ), JiznyCechy( Blatna,Strekonice )) - Dimenze poboček. Reprezentuje jednotlivé prodejní pobočky společnosti, které jsou seskupeny do regionů. BuyDim(Pieces, Price per piece, DiscountPercent,Discount, Buy price with discount[piece], AdditionalPrice, PriceWithoutDiscount, TotalPrice) - Dimenze nákupu zboží. Ukazuje počet nakoupených kusů zboží, cenu za kus a vypočítává celkovou cenu navýšenou o fixní náklady, sníženou o množstevní slevy atd BuyingMetric(Total bought pieces, Total aditional cost, Total cost, Buy cost[piece]) - Dimenze metriky nákupů. Slouží pro sumu všech koupených kusů produktů, sumu všech fixních nákladů produktů, celkovou nákupní cenu a průměrnou nákupní cenu za kus. Discounts(Last piece, Old model) - Dimenze prodejních slev. Dimenze všech slev, kterými lze slevnit zboží při prodeji zákazníkovi. DiscountsMetric(DP1,DN1,DP2,DN2,DP3,DN3, Pieces,Discount percent) -Dimenze pro výpočet nákupních slev podle počtu nakoupených kusů od dodavatelů. DN vždy značí minimální počet kusů pro množstevní slevu a DP pak výši této slevy. Podle počtu kusů v Pieces se pak vypočte příslušná cena v poly Discount percent. ItemSupplier(DP1,DN1,DP2,DN2,DP3,DN3, Supplier) -Dimenze nákupních slev podle počtu nakoupených kusů od jednotlivých dodavatelů. DN vždy značí minimální počet kusů pro množstevní slevu a DP pak výši této slevy. Supplier je pak konkrétní dodavatel, poskytující tuto slevu. Products(..) -Dimenze produktů. Jsou zde uvedeny názvy všech produktů, které firma prodává zákazníkům. Profit(Small, Medium, Huge, Space) -Dimenze druhů marží. Používá se pro nastavení hodnot marží v kostce ProfitMetric a v kostce ProductsProfitMetric pro nastavení marže konkrétnímu produktu.
3
ProfitValue(Value) -Dimenze hodnoty marže, která je vyjádřena v procentuální podobě. Používá se v kostce ProfitMetric. ProductsProfitMetric(ProfitValue, ProfitType) -Dimenze pro kostku ProductsProfitMetric, ProfitType je pickList z dimenze Profit a do ProfitValue se budou inportovat hodnoty z kostky ProfitMetric.
Sell(Sell price without profit[piece], Sell price with profit[piece], Profit[piece], Pieces, Vat, Discount[%] , Price without Vat, Total price, Discount type) -Dimenze prodejů. Ukazuje ceny prodaných produktů (celkovou cenu, cenu za kus, cenu se započítanou marží, cenu s DPH), počet prodaných produktů. Supplier(Fisher,Haspl,Zepo) -Dimenze všech dodavatelů firmy. SupplierDiscount(DP1,DN1,DP2,DN2,DP3,DN3) -Dimenze množstevních slev od dodavatelů. DN vždy značí minimální počet kusů pro množstevní slevu a DP pak výši této slevy. Supplier je pak konkrétní dodavatel, poskytující tuto slevu. Time(..) -Časová dimenze (roky, čtvrtletí, týdny). Value(value) -Dimenze hodnot. Vat(vat) - Dimenze pro DPH. Version(V1,V2,V3) -Dimenze verzí. YearDimension() -Časová dimenze roční. Kostky:
ActionDiscount (Discounts, Value, Time) – Kostka prodejních slev. Udržuje slevy na prodávané slevy v čase. Balanced(Products, Balance, Time, Version) – Kostka celkové výsledovky. Ukazuje výsledovku prodejů jednotlivých produktů v čase a verzi. Balanced branches(Products, Balance, Time, Version, Branches) – Kostka výsledovek jednotlivých poboček. Narozdníl od celkové výsledovky (Balanced) ukazuje výsledovky jednotlivých prodejen.
4
BuingMetric(Product, BuingMetric, Version, YearDimension) – Kostka metriky nákupů. V ní jsou veškeré nákupy zboží v ročním období. Používá se získávání dat pro Balance kostku. DiscountMetric(Products,DiscountMetric,Version,Time) – Parametrizační kostka pro výpočet slev na zboží od dodavatelů podle objednaných kusů. Při nákupu určitém množství zboží od dodavatelů je možno získat množstevní slevu. Proto aby v kostce Purchase nebyla zbytečně metrika slev dodavatelů (nutná pro výpočet) je množství zakoupených kusů z kostky Purchase načteno sem. Následně je podle tohoto počtu vypočtena příslušná sleva a ta je navácena zpět do kostky Purchase. V kostce purchase tak stačí pouze zadat počet nakoupených kusů, a množstevní sleva se sama automaticky dopočte. ItemSupplier(Products, ItemSupplier, Version) – Kostka dodavatelů jednotlivých druhů zboží. V této kostce můžeme zvolit dodavatele konkrétního produktu. Kostka zobrazuje množstevní slevy jednotlivých produktů z kostky SupplierDiscount, je tak možné vybrat nejvhodnějšího dodavatele. ProfitMetric(Profit,ProfitValue,Version) – Koska marží. V této kostce nastavujeme druhy a velikosti marží, se kterými bude firma prodávat své zboží. Tato data se předávají dále do kostky ProductsProfit, kde tyto slevy přidělujeme konkrétnímu zboží. ProductsProfit(Products, ProductsProfitMetric,Version) – Kostka slouží k nastavení marže na konkrétní zboží. Pomocí picklistu uživatel vybere druh marže ke každému produktu a ta se automaticky doplní do pole ProfitValue. Tato kostka následně slouží jako zdroj hodnoty marže na produktu pro kostku Selling. Purchase(Products,BuyDim,Version,Time) – Kostka nákupu zboží od dodavatelů v čase a verzi. Zde zadáváme kdy a jaké produkty zakoupíme od dodavatelů. Ukazuje nákupní ceny spolu s množstevní slevou, kterou od dodavatele získáme. Při zadání nakoupených kusů zboží se tato data předají do kostky DiscountMetric, kde je spočítána množstevní sleva a ta je následně předána automaticky zpět do kolonky Discount a započítána do celkové ceny nákupu. Kostka poskytuje data pro kostky Balance, Balance Branch a BuyingMetric. Selling(Products,Sell,Version,Time,Branches) – Kostka prodejů zboží na pobočkách. Slouží pro prodej zboží na jednotlivých pobočkách. Je možné zadat kde (na jaké pobočce), kdy, s jakou marží a kolik kusů zboží jsme prodali. Kostka si bere hodnotu VAT z kostky VatMetric. Kostka poskytuje informace o prodejích pro kostky Balance a BalanceBranch. SupplierDiscount(Supplier, SupplierDiscount,Version) – Kostka množstevních slev od dodavatelů. Ukazuje jednotlivé dodavatele a jejich množstevní slevy na jejich produkty. Je možno tuto kostku verzovat například, kdyby firma měla možnost dohodnout jiné druhy slev. VatMetric(Vat,Value) - Parametrizační kostka pro zadání DPH uplatňovaného na prodávané zboží.
5
What-if scénáře V aplikaci se řeší následujcící scénáře: 1. Různé nákupní ceny – každý dodavatel poskytuje při různých počtech zakoupených kusů jinou slevou. Dále u každého dodavatele je prodejní cena jiná. Náš what-if scénář se zabývá možnosti nákupu různých počtů kusů jedné věci od různých dodavatelů. Tím, že každý dodavatel má jinou prodejní cenu, jiné množstevní slevy, jiné vedlejší náklady a jinou cenu za kus. 2. Zmeněna slevových podmínek – Od každého dodavatele můžeme vyjednat jiné množstevní slevy. Například Firma fischer je schopna poskytovat cenu 10/30/35 při počtu kusů 0/30/80(a více), nebo 30/32/33 při počtu kusů 20/50/200(a více) jak se tedy projevý naše nákupy pokud budeme aplikovat jednu či druhou slevovou politiku? 3. Prodej zboží – na základě prvního scénáře je vypočtena prodejní cena bez marží. Prodejce poté může sledovat, jak se projeví změna marží na prodejní ceny v závislosti na nákupní ceně, která je závislá na různých nastaveních prodejních cen, prodejních slev a počtu kusů. První what-if scénář je vytvořen na základě výběru vhodného dodavatele pro dané zboží v závisloti na počtu předpokládaných nakoupených kusů. Druhý scénář koresponduje s požadavkem maximalizací zisku se zvolenou optimální marží. V aplikaci předpokládáme, že prodejce rozezná cenu, za kterou je zboží neprodejné.
Ukázka použití aplikace Na následujícím příkladu bude demonstrováno použití aplikace a what-if scénáře nákupu zboží za různé ceny. Aplikace samozřejmě pracuje s česovou dimenzí, pro jednoduchost se budeme nyní zabývat pouze jedním plánovaným nákupem. Budeme kupovat zboží s názvem VRUT 5X70/42. Nejprve je potřeba zvolit dodavatele od, kterého budeme zboží odebírát na základě zvoleného dodavatele jsou zobrazeny jeho množstevní slevy.
6
Slevy lze pro každou verzi nastavit, pokud chceme porovnávat výhodnější nákup na základě dodavatelů se stejnými slevami, pak nastavíme dodavateli stejné ceny ve verzi 1 i 2 potažmo 3. Nyní je potřeba zvolit kolik zboží nakoupíme v daném období a jakou nám dá v tomto období dodavatel cenu za kus, bez slevy.
V období 01/01/2013 nám dal dodavatel Fischer od kterého výrobek nakuujeme cenu 0,5 za kus. Očekáváme, že 30kusů budeme schopni prodat. Počet kusů je zadán ručně a za tuto hodnotu je zodpovědný pracovník firmy ať již na základě analýzi s minulosti či osobní zkušenosti. Fischer dále uvádí, že vedlejší náklady na dopravu, balné a jiné je 70. Při počtu 30ks je sleva 30% a celková cena je tady 80.50. Fischer není jediný dodavatel a proto by nás zajímalo co kdybychom nakoupili těchto 30kusů od Haspla.
7
Ve verzi 2 tedy zvolíme dodavatele tohotu artiklu firmu Haspl. Dále zvolíme v kostce Purchase verzi 2 za stejné období.
Firma Haspl nabízí kus za 0.30, což je o 0.20 levnější než Fischer, ale vedlejší náklady činí 72. Haspl nám bohužel na tento počet kusů neposkytuje žádnou slevu. Proto když provanáme verze, tak zjistíme, že u Fischera nakoupíme levněji.
Závěr Na základě analýzy byla v prostředí Cognos TM1 vytvořena aplikace, kterou lze využít k plánování a monitorování nákupu a prodeje výrobků v železářství. Vkládaná data nákupů a prodejů jsou za jednotlivé týdny, neboť se nákupní ceny, akční slevové akce a zakázky mohou měnit v čase a týdeními period zajistéme dostatečný detail dat. Implementované what-if scénaře umožňují spekulovat o výběru dodavatele, nastavení slevových podmínke dodavatele a vytváření akčních slev pro zákazníky. Veškeré nákupy a prodeje jsou poté k dispozici v jedné shrnující kostce.
8
Přínos předmětu Přínos předmětu vidíme hlavně v seznámení se a vyzkoušení si softwaru IBM Cognos, spolu s úvodem do OLAP technologie, která byla pro nás dosti odlišná od relačního modelu. Rovněž bylo přínosem seznámení se s lidmi z IBM. Pro budoucí studenty by jistě bylo přínosem vytvoření alespoň ještě jednoho ukázkového příkladu pro Cognos, modelující nějakou jinou situaci, neboť jsme se při implementaci SP potýkali s několika problémy, které nebyly v ukázkovém příkladu dostatečně vysvětleny. Rovněž by stálo za to upravit Cognos tak, aby nepadnul při každém odstranění čehokoliv a umožnit přejmenovávání dimenzí, kostek a linků, plus doimplementovat výstupy chybových hlášek a vychytat bugy!! (hláška „Error 43256346“ je fakt zhola k ničemu). Jinak předmět byl OK. Snad jen bychom vytkli, že není dobré měnit pořadí témat cvičení. Ano - asi k tomu byl důvod, ovšem následně látka plynule nenavazuje a člověk se ve výkladu ztrácí.
9