Analýza data doručení zásilek pro internetový obchod

Zpracovatelé: Aneta Tvrdíková, Petra Nováková
Mentor: Svetlana Margetová

Naše spolupráce začala, když jsme se obě shodly, že nemáme tušení, jaký vlastní projekt bychom chtěly dělat, ale že víme, že chceme reálné zadání od opravdové (fungující) firmy, které by naše snažení mohlo pomoci, a v budoucnu tak zlepšit její služby. A to se stalo, když se nám podařilo spojit s naší skvělou mentorkou Svetlanou, která přesně takový projekt nabízela a my tak byly o krok blíž k našemu snu (zachránit svět) mít projekt, který si jen neuložíme do šuplíku, ale někdo ho skutečně použije a zakomponuje do fungování chodu firmy.

Jsme obě nedávné absolventky vysoké školy, a tak naše ideály o záchraně světa ještě neměly čas vzít za své. Cílem našeho projektu je analýza objednávek českého e-shopu a vytvoření chatbota, který bude pracovníkům e-shopu pomáhat se zpracováním objednávek.

Z důvodu anonymizace neuvádíme, o jaký e-shop se jedná.

Aktuálně odhadovaný datum doručení zásilky funguje na principu přičítání “x” dnů a nebere v potaz přepravce, vlastní kapacitu, státní svátky, dny v týdnu a další činitele. E-shop je přesvědčený, že nejvíce zdržení vzniká na straně přepravců, a to jak doba než si zásilky vyzvednou, tak i doba než je koncovému zákazníkovi doručí.

Na začátku jsme si definovaly několik předpokladů, které si analýzou buď potvrdíme, nebo je vyvrátíme.

  1. Doba dodání je ovlivněna zvoleným dopravcem a dnem v týdnu
  2. Pokud je objednávka zadána v pátek, s velkou pravděpodobností bude doručena se zpožděním
  3. Zákazníci nejvíce objednávají o víkendu (když mají volno) a proto by bylo potřeba posílit víkendové směny na zpracování objednávek a k tomu mít domluvené dopravce
  4. Počet zásilek mezi jednotlivé dopravce je rovnoměrně rozložen
  5. E-shop samotný má hypotézu, že k největším zpožděním dochází na straně dopravců

Závěry naší analýzy využije hlavně oddělení logistiky a pracovníci skladu, kteří zásilky připravují. Popř. i vedení podniku se může rozhodnout, který způsob dopravy je nevyhovující.

Představení dat

V Keboola conection už měla naše mentorka nahrané velké množství dat z e-shopu a spuštěné automatické dohrávání dat nových. My nakonec pracovaly s daty o jednotlivých objednávkách a hlavně s daty (ve smyslu datum) s nimi spojenými. Měly jsme tedy tabulku o objednávkách, o zákaznících, zásilkách, data z API jednotlivých dopravců, poštovní směrovací čísla a data státních svátků.

Že nešlo jen o pár čísel, ukazuje následující přehled tabulek, který nám na začátku pomohl se v datech zorientovat.

Zde ještě schéma, které pomáhá lépe pochopit jednotlivé datumy, se kterými v celé analýze pracujeme.

Použité nástroje

Při zpracování projektu jsme kromě našich hlav používaly i další užitečné nástroje, a to zhruba ve stejných poměrech. Nelze říci, že bychom některý upřednostňovaly. Jak již bylo zmíněno, data jsme měly nahraná v Keboole, odtud jsme si je napojovaly do Snowflake, do Jupyter notebook i do Tableau. Pro vytvoření testovací verze chatbota jsem použily online nástroj Chatfuel.com

Průběh projektu

Na začátku bylo potřeba, abychom porozuměly datům, která máme k dispozici, ale i procesu života objednávky. Náš e-shop nabízí zákazníkům několik způsobů převzetí zásilky, a to buď osobní odběr na některém z výdejních míst nebo v boxu, balík na poštu a nebo doručení na adresu. Při doručování na adresu už si zákazník sám nemůže zvolit dopravce, ale volí ho e-shop.

Spojením více zdrojových tabulek jsme si ve Snowflake vytvořily tabulku jen s daty, která jsme potřebovaly:

Nejprve jsme si z vybraných tabulek ještě začaly vybírat sloupce s daty, která opravdu budeme potřebovat. Dále jsme napojily tabulku s poštovními směrovacími čísly, díky níž jsme pak mohly provádět analýzu i na základě území. Veškeré datumy jsme musely převést do správného formátu. Následně jsme napojily tabulku se státními svátky, kde jsme zjišťovaly, jestli vytvoření objednávky, vyzvednutí dopravcem nebo doručení proběhlo v den státního svátku. Pro zjištění těchto stavů v závislosti na dnech v týdnu (tedy hlavně na pracovním týdnu a víkendu) jsme použily funkci „DAYOFWEEK“.

Tuto výslednou tabulku jsme si poté otevřely v Jupyter notebook a začaly zjišťovat potřebné informace. Jak lze vidět z ukázky níže, měly jsme k dispozici téměř 790 tisíc záznamů. Potřebné datumy ke zkoumání jsme ještě rozdělily na měsíce, dny, hodiny (pokud byl datum i s časem k dispozici).

Naším prvním zjištěním bylo, že nejčastějším způsobem doručování zásilek zákazníkům je prostřednictvím přepravní společnosti PPL, která doručuje zhruba polovinu všech (námi zkoumaných) zásilek.

Rozhodly jsme se tedy dále prozatím zkoumat jen zásilky doručované společností PPL. V následujícím grafu jsme chtěly zjistit, zda spolu souvisí lokalita a hodina doručení. Na vzorku deseti nejčastěji doručovaných lokalit lze vidět, že doručování probíhá od rána až do večera. U míst s menší frekvencí doručování lze pak pozorovat výkyvy. Ty jsou dány malým množstvím dat z těchto lokalit.

Dále nás zajímalo, jak dlouho e-shopu trvá odbavení objednávky, což je vidět na grafu vlevo a graf vpravo ukazuje, kolik dní trvá přepravci doručení zásilky.

Na základě tohoto grafu začínáme zpochybňovat hypotézu, že ke zdržení zásilek dochází hlavně na straně dopravců.

Poslední graf, který jsme si v Jupyter notebook vytvořily, je boxplot znázorňující vlevo (estimatet_date) rozdíl mezi odhadovaným dnem vs. reálným dnem doručení a vpravo (delivery_day) rozdíl mezi převzetím dopravcem a reálným dnem doručení. Oba grafy ukazují, jak se tyto hodnoty liší v průběhu celého týdne (0 = neděle, 1 = pondělí,…).

K největším rozdílům mezi odhadovaným a reálným dnem doručení dochází především v pondělí. Co se týče vyzvednutí zásilky dopravcem a následného doručení, nejrychleji probíhají koncem týdne.

S těmito zjištěními jsme si ve Snowflake vytvořily další tabulku pro vizualizaci v Tableau, která obsahovala data od všech dopravců.

Naše data obsahovala záznamy i o případných reklamacích, zrušených objednávkách, e-mailové komunikaci atd. My potřebovaly vybrat jen datumy důležité pro naše další zkoumání. Původně měla každá objednávka několik řádků a ve sloupci status data o aktuálním stavu a ve sloupci date datum tohoto stavu. My musely tyto dva sloupce pomocí funkce “PIVOT” rozložit na zkoumané údaje (založení objednávky, zahájení přípravy zboží na distribučním centru, zabalení zboží, předání zboží přepravci, doručení zboží přepravcem) a k nim přiřadit datum.

Připravenou tabulku jsme si nahrály do Tableau a začaly testovat naše hypotézy. Z prvního výstupu, kde červená barva patří e-shopu a modrá dopravci, lze vidět, že ve většině případů trvá delší dobu odbavení zásilky a předání přepravci než samotná doprava zákazníkovi na místo určení. V případě přepravy firmou Zavolejsikuryra dochází k extrémní hodnotě, protože tento dopravce funguje pro e-shop pouze o víkendech. Uloženka, Point i Box jsou všechno výdejny e-shopu a dopravu na ně si zajišťují sami.

Následující graf podrobněji ukazuje, kolik času která aktivita trvá v závislosti na dnu v týdnu. Vždy se jedná o hodinovou náročnost mezi dvěma stavy. Spodní graf z tohoto dashboardu podrobněji znázorňuje, jak dlouho trvá dopravci doručení zboží zákazníkovi. (pozn. v případě České pošty — na poštu, Uloženky, Pointu i Boxu se jedná o čas než byl balík doručen na dané místo a nezapočítává se, kdy si ho zákazník fyzicky vyzvedl)

Posledním výstupem z Tableau je následující dashboard, který sleduje aktivity podle dne v týdnu a mohl by tak e-shopu sloužit k lepšímu naplánování směn pracovníků. Nejvíce lidí objednává večer v klidu domova a často také dopoledne. Odpoledne naopak sledujeme mírný propad. Nejsilnějšími dny z hlediska počtu objednávek je úterý následované středou a čtvrtkem. V tyto dny je počet objednávek nad týdenním průměrem.

Spodní dva grafy slouží hlavně pro možnost přípravy zásilek podle přepravců a hodin, v kolik si zásilky vyzvedávají. Vzhledem k zjištěnému faktu, že PPL je nejčastěji využívaným přepravcem, vyzvedává tedy zásilky nejčastěji, a to v průběhu celého dne s mírným zvýšením odpoledne. Nárazové vyzvedávání pozorujeme např. u In-time ve 2 hodiny ráno, u DPD ve 20 a 21 hodin, Česká pošta vyzvedává v průběhu odpoledne/navečer. Přípravu zásilek podle dopravců lze pak aplikovat i na různé dny, kdy například Raben vůbec nefunguje o víkendech. Těmto zjištěním lze tedy přizpůsobit přípravu zásilek ve skladu a urychlit tak jejich předání dopravcům a i následné dodání zákazníkům.

Nakonec jsme se rozhodly vytvořit chatbota, který bude “řídit” pracovníky e-shopu. Ve formátu json bude přijímat data o počtu zásilek, době přípravy a dopravci, kterého je třeba odbavit.

Zatím se jedná o návrh jeho fungování. Snažily jsme se, aby zaměstnance práce s ním bavila a nebrali ho jako obtěžující věc.

Pokud zaměstnanec zadá možnost, že chce vidět, kdo přijede vyzvednout zásilky, chatbot se napojí na data a ta pak vrátí pracovníkovi formou zprávy (ukázka níže).

Nakonec ukázka chatbota (který by pracovníky i mohl bavit):

Shrnutí

Zpracováním dat jsme se snažily najít odpovědi na naše hypotézy a usnadnit tak proces zpracování a doručení objednávky zákazníkovi.

Zjistily jsme, že přes polovinu objednávek doručuje společnost PPL a zbytek je nerovnoměrně rozdělen mezi zbylé dopravce.

Potvrdilo se nám, že různí dopravci skutečně doručují rozdílně rychle. Vzniká zde prostor pro bližší zkoumání a upřednostnění některých dopravců v konkrétní dny.

Dále jsme předpokládaly, že zákazníci jsou nejaktivnější o víkendu, ale ukázalo se, že nejvíce objednávek je vytvořeno od úterý do čtvrtka a měly by tedy být posílené spíše směny, které odbaví objednávky vzniklé v tyto dny.

Nepotvrdila se hypotéza e-shopu, že ke zdržením dochází hlavně na straně dopravců. U nejčastěji využívaného dopravce PPL je doba přípravy zásilky na e-shopu průměrně přes 60 hodin, kdežto doprava k zákazníkovi netrvá v průměru ani 48 hodin.

Prací s daty jsme zjistily, že je zde ještě prostor pro další zkoumání, např. se nám nepodařilo zjistit, jaký vliv má na zpoždění objednávky den jejího vytvoření. Doufáme, že některá naše zjištění e-shop ocení a pokusí se s nimi dále pracovat a zlepšit tak proces dodání zásilek zákazníkům.

Nám zpracování tohoto projektu pomohlo s uplatněním téměř všech naučených znalostí a některé dílky skládačky do sebe skvěle zapadly. Moc děkujeme naší mentorce Svetlaně, že nám věnovala svůj čas, podělila se s námi o své znalosti a i když jsme nezachránily svět, máme skvělý pocit, že jsme pro tento projekt udělaly vše, co bylo v našich (momentálních) silách.