GeekLair.cz – datový produkt pro řízení výkonu e-shopu

Seminární práce z předmětu Zpracování velkých dat

Jednoduchá HTML dokumentace projektu zaměřeného na analýzu poptávky, konverzí a dostupnosti zboží.

1. Představení firmy a cílů

Kontext

GeekLair.cz je specializovaný e-shop zaměřený na prodej mangy, sběratelských figurek a souvisejícího merchandise z oblasti anime, her a popkultury.

Hlavními uživateli výstupů jsou vedení e-shopu, marketingový manažer, category manager a datový analytik. Cílem datového produktu je podpořit rozhodování nad poptávkou, konverzním výkonem a dostupností zboží.

Business questions

  • Jak se v čase mění poptávka po jednotlivých kategoriích produktů?
  • Které kategorie a segmenty zákazníků generují nejvyšší obchodní hodnotu?
  • Jaký dopad má nedostupnost zboží na výkon e-shopu?
  • Jak marketingové kampaně ovlivňují návštěvnost a konverze?
  • Lze pomocí trendových a kalendářních dat lépe odhadnout budoucí vývoj poptávky?
KPI 1 Conversion Rate

Podíl návštěv e-shopu, které vedly k objednávce.

Vzorec: počet objednávek / počet sessions × 100

Jednotka: %

Baseline: [doplnit skutečnou hodnotu z notebooku]

Cílová hodnota: [doplnit cílovou hodnotu]

Frekvence vyhodnocení: denně, týdně

Interpretace: Tato metrika ukazuje, jak efektivně e-shop proměňuje návštěvnost na objednávky. Po doplnění výsledků upřesnit, zda je hodnota stabilní, rostoucí, nebo naopak kolísá v čase.

KPI 2 Average Order Value

Průměrná hodnota jedné objednávky.

Vzorec: celkové tržby / počet objednávek

Jednotka:

Baseline: [doplnit skutečnou hodnotu z notebooku]

Cílová hodnota: [doplnit cílovou hodnotu]

Frekvence vyhodnocení: týdně, měsíčně

Interpretace: Tato metrika vyjadřuje obchodní hodnotu nákupního košíku. Po doplnění výsledků upřesnit, zda průměrná hodnota objednávky vykazuje stabilní vývoj a které kategorie ji nejvíce ovlivňují.

KPI 3 Stockout Rate

Podíl situací, kdy zákazník projevil zájem o produkt, který nebyl skladem.

Vzorec: počet nedostupných interakcí / počet všech relevantních interakcí × 100

Jednotka: %

Baseline: [doplnit skutečnou hodnotu z notebooku]

Cílová hodnota: [doplnit cílovou hodnotu]

Frekvence vyhodnocení: denně, týdně

Interpretace: Tato metrika ukazuje provozní problém související s nedostupností zboží. Po doplnění výsledků upřesnit, zda je nedostupnost významná a ve kterých kategoriích nebo obdobích je nejvyšší.

Stakeholdeři a rozhodnutí

  • Vedení e-shopu: rozhodování o prioritách, investicích a strategii.
  • Marketingový manažer: hodnocení dopadu kampaní na návštěvnost a konverze.
  • Category manager: plánování zásob a prioritizace sortimentu.
  • Datový analytik: interpretace KPI a kontrola kvality dat.

Předpoklady a omezení

  • Interní provozní data jsou syntetická, externí data jsou reálná.
  • Granularita je na úrovni sessions, objednávek, položek a denních stavů zásob.
  • Řešení je batchové, nikoliv near-real-time.
  • Výsledky ovlivňuje sezónnost, kampaně a popularita vybraných titulů.
  • Syntetická data mají omezenou přenositelnost do reálného provozu.

2. Technické řešení

Zdrojová data

  • Hlavní část dat byla synteticky vytvořena pro potřeby projektu pomocí Python skriptů.
  • Syntetická data reprezentují model provozu e-shopu GeekLair.cz a zahrnují datasety products, sessions, orders, order_items, inventory_daily, product_interactions a campaigns.
  • Doplňková časová a trendová vrstva byla připravena jako analytický kontext projektu v datasetech calendar a google_trends.
  • Všechny datasety byly uloženy ve formátu CSV a následně načteny do databáze DuckDB.

Integrace

  • Režim: batch zpracování.
  • Frekvence: jednorázové nebo opakovaně spouštěné ručně při úpravě dat.
  • Protokol / přenos: souborově přes CSV, bez API a bez streamingu.
  • Základní transformace: převody datových typů, kontrola struktury tabulek, deduplikace, validace klíčů a tvorba odvozených atributů.

Uložení

  • Lokální uložení: projekt pracuje s raw CSV soubory a jedním souborem .duckdb.
  • Použité nástroje: Python, DuckDB, Jupyter Notebook a jednoduchá HTML stránka.
  • Datová vrstva: DuckDB slouží jako jednotná analytická databáze pro SQL dotazy a přípravu KPI.

Zpracování

Pipeline: generování dat / příprava vstupů → uložení do CSV → načtení do DuckDB → čištění → obohacení → agregace → výpočet KPI → vizualizace v notebooku → shrnutí v HTML stránce.

Škálování

  • Při 10× větším objemu dat: vhodné by bylo přejít z CSV na Parquet, oddělit ingest a analytickou vrstvu a více automatizovat pipeline.
  • Při near-real-time režimu: bylo by nutné nahradit batch zpracování průběžným ingestem událostí a častější aktualizací analytických tabulek.

High-level architektura

Sem vložit jednoduchý diagram architektury

Datový tok

Sem vložit jednoduchý diagram datového toku

3. Strategie nakládání s daty

Lifecycle a retenční politika

  • Raw data jsou uchována odděleně od analytických tabulek.
  • Analytická vrstva v DuckDB slouží pro KPI a EDA.
  • Výstupy jsou určeny pro jednorázové odevzdání a prezentaci.

RACI a odpovědnosti

  • Člen 1: business část a KPI
  • Člen 2: data engineering a DuckDB
  • Člen 3: notebook, grafy a HTML stránka

Kvalita dat

  • Kontrola úplnosti, konzistence, validity a unikátnosti.
  • Validace vazeb mezi sessions, orders, order_items a products.
  • Kontrola rozsahů hodnot a chybějících dat.

Etika a rizika

  • Syntetická data nemusí plně odpovídat realitě.
  • Trendová data nevyjadřují přímo prodejní chování.
  • Korelace nesmí být zaměňována za kauzalitu.

4. Data a prezentace

Přehled datasetů

Dataset Typ Rozsah Granularita Primární klíč Licence / původ
productssyntetickádoplnit1 produktproduct_idvygenerováno pro projekt
sessionssyntetickádoplnit1 sessionsession_idvygenerováno pro projekt
orderssyntetickádoplnit1 objednávkaorder_idvygenerováno pro projekt
order_itemssyntetickádoplnit1 položka objednávkyorder_item_idvygenerováno pro projekt
inventory_dailysyntetickádoplnit1 produkt za 1 dendate, product_idvygenerováno pro projekt
product_interactionssyntetickádoplnit1 interakceinteraction_idvygenerováno pro projekt
campaignssyntetickádoplnit1 kampaňcampaign_idvygenerováno pro projekt
calendardoplňkovádoplnit1 dendatepřipraveno pro projekt
google_trendsdoplňkovádoplnitdatum + keyworddate, keywordpřipraveno pro projekt

Metodika syntetických dat

  • Data byla generována tak, aby obsahovala sezónnost, rozdíly mezi kategoriemi, kampaně, kolísání objednávek a dostupnosti produktů.
  • Do dat byl vložen šum a nepravidelnost, aby nevznikl příliš ideální analytický scénář.
  • Smyslem nebylo napodobit reálný provoz do detailu, ale vytvořit obhajitelný datový základ pro výpočet KPI a EDA.

Předzpracování

  • Kontrola datových typů a formátu datumových polí.
  • Deduplikace a validace vazeb mezi tabulkami.
  • Tvorba odvozených atributů, například den v týdnu, měsíc, sezóna a příznak víkendu.
  • Příprava agregací pro výpočet KPI v Jupyter Notebooku.

EDA navázaná na KPI

Podrobná EDA je zpracována v Jupyter Notebooku. Na HTML stránce jsou uvedeny pouze klíčové tabulky, grafy a stručná interpretace hlavních zjištění.

Graf 1 – Vývoj počtu sessions v čase

Sem vložit obrázek grafu, například graf_sessions.png

Co graf ukazuje: vývoj návštěvnosti e-shopu v čase.

Text k doplnění: Graf ukazuje, že počet sessions se v průběhu sledovaného období [zvyšoval / snižoval / kolísal]. Nejvyšší návštěvnost byla zaznamenána [doplnit období nebo datum], zatímco nejnižší [doplnit období nebo datum]. Tento vývoj naznačuje [doplnit interpretaci, například vliv sezónnosti nebo kampaní].

Graf 2 – Vývoj počtu objednávek v čase

Sem vložit obrázek grafu, například graf_orders.png

Co graf ukazuje: vývoj obchodního výkonu vyjádřený počtem objednávek.

Text k doplnění: Počet objednávek se v čase [vyvíjel podobně jako sessions / lišil od vývoje sessions]. Nejvyšší počet objednávek připadl na [doplnit datum nebo období]. Ve srovnání s návštěvností lze pozorovat, že [doplnit, zda nárůst sessions vedl i k nárůstu orders].

Graf 3 – Vývoj Conversion Rate v čase

Sem vložit obrázek grafu, například graf_conversion_rate.png

Co graf ukazuje: efektivitu, s jakou e-shop proměňuje návštěvy v objednávky.

Text k doplnění: Conversion Rate se pohybovala přibližně mezi [doplnit minimum] a [doplnit maximum] %. V období [doplnit] byla metrika [vyšší / nižší], což může souviset s [doplnit, například kvalitou návštěvnosti, kampaněmi nebo dostupností zboží].

Graf 4 – Vývoj Average Order Value v čase

Sem vložit obrázek grafu, například graf_aov.png

Co graf ukazuje: změny průměrné hodnoty objednávky v čase.

Text k doplnění: Average Order Value dosahovala během sledovaného období hodnot kolem [doplnit orientační úroveň] Kč. Výkyvy v této metrice naznačují, že zákazníci v některých obdobích nakupovali [dražší / levnější] produkty nebo větší počet položek. Výraznější změna byla zaznamenána [doplnit datum nebo období].

Graf 5 – Vývoj Stockout Rate v čase

Sem vložit obrázek grafu, například graf_stockout_rate.png

Co graf ukazuje: míru situací, kdy zákazník narazil na nedostupný produkt.

Text k doplnění: Stockout Rate se ve sledovaném období pohybovala kolem [doplnit orientační úroveň] %. V datech je patrné, že nedostupnost zboží byla [stabilní / proměnlivá] a nejvyšší byla v období [doplnit]. To může znamenat [doplnit dopad na výkon e-shopu].

Graf 6 – Tržby podle kategorií

Sem vložit obrázek grafu, například graf_revenue_categories.png

Co graf ukazuje: porovnání kategorií podle celkových tržeb.

Text k doplnění: Nejvyšší tržby generovala kategorie [doplnit], následovaná kategorií [doplnit]. Naopak nejslabší výkon vykazovala kategorie [doplnit]. Z obchodního pohledu to naznačuje, že firma by se měla více zaměřit na [doplnit doporučení].

Souhrn analýzy a klíčové interpretace

  • Conversion Rate: Po doplnění výsledků shrnout, zda e-shop dokáže proměnit návštěvnost v objednávky efektivně, nebo zda je zde prostor pro zlepšení.
  • Average Order Value: Dopsat, zda je hodnota objednávky dostatečná a které produktové kategorie ji nejvíce ovlivňují.
  • Stockout Rate: Dopsat, zda nedostupnost zboží představuje významný provozní problém.
  • Kategorie: Uvést, které kategorie jsou nejsilnější z pohledu tržeb a kde je naopak slabší výkon.
  • Časový vývoj: Dopsat, zda grafy naznačují sezónnost, vliv kampaní nebo jiný opakující se vzorec.

5. Diskuze, závěry a doporučení

Klíčová zjištění

  • Conversion Rate dosáhla hodnoty [doplnit] %, což naznačuje, že e-shop [doplnit stručné hodnocení].
  • Average Order Value činila [doplnit] Kč, přičemž největší vliv na tuto metriku měla kategorie [doplnit].
  • Stockout Rate dosáhla hodnoty [doplnit] %, což ukazuje, že nedostupnost zboží [doplnit význam problému].
  • Nejvyšší tržby generovala kategorie [doplnit], zatímco nejslabší výkon měla kategorie [doplnit].
  • Časový vývoj naznačil [doplnit například sezónnost, stabilitu, nebo vliv kampaní].

Limity řešení

  • Hlavní část dat byla vytvořena synteticky, a proto nelze výsledky chápat jako přesný obraz reálného provozu.
  • Model zachycuje pouze vybrané obchodní a provozní vztahy a neobsahuje všechny faktory reálného e-shopu.
  • Doplňkové datové vrstvy slouží hlavně jako analytický kontext a jejich interpretace má omezení.
  • Řešení je navrženo jako batch analytický prototyp, nikoli jako produkční systém v reálném čase.

Doporučení

  • Na základě výsledků zaměřit pozornost na kategorie s nejvyššími tržbami a zároveň sledovat jejich dostupnost.
  • Pokud se ukáže vyšší Stockout Rate, doporučuje se upravit plánování zásob a prioritizaci doplňování.
  • Pokud Conversion Rate významně kolísá, doporučuje se podrobněji analyzovat zdroje návštěvnosti a výkon kampaní.
  • Pokud je AOV nízká, doporučuje se zaměřit na cross-sell, bundly nebo zvýraznění dražších produktů.

Budoucnost a AI

Do budoucna by bylo možné rozšířit projekt o automatizované přepočty KPI, pravidelné generování reportů nebo pokročilejší predikce poptávky. Generativní AI může být využita například při návrhu datového modelu, přípravě dokumentace nebo automatizaci textových shrnutí výsledků. Současně je nutné zachovat kontrolu nad správností interpretace a nepřebírat výstupy AI bez ověření.

6. Metodika a postup

Workflow projektu

  • Nejprve byl definován business kontext firmy, hlavní problém a tři KPI.
  • Následně byl navržen datový model a připraveny syntetické datasety pro analytický scénář.
  • Data byla uložena do CSV souborů a načtena do databáze DuckDB.
  • V Jupyter Notebooku proběhlo předzpracování, výpočet KPI, EDA a tvorba grafů.
  • Výsledky byly shrnuty do této HTML stránky, která slouží jako stručná dokumentace projektu.

Rozdělení rolí členů týmu

  • Člen 1: business část, KPI a interpretace výsledků
  • Člen 2: příprava dat, DuckDB a SQL dotazy
  • Člen 3: notebook, grafy, HTML stránka a finální prezentace

Tuto část upravit podle skutečného rozdělení práce v týmu.

Nástroje a prostředí

  • Python
  • DuckDB
  • Jupyter Notebook
  • HTML/CSS

Doplnit konkrétní verze nástrojů, pokud je budete uvádět.

AI použití

Generativní AI byla použita při návrhu struktury projektu, formulaci KPI, návrhu analytických dotazů, přípravě textových částí a tvorbě kostry HTML dokumentace. Výstupy byly průběžně kontrolovány, upravovány a ověřovány podle skutečně připravených dat a požadavků zadání.

Co doplnit: sem lze přidat stručný popis konkrétních promptů, způsob ověření výstupů a rozlišení toho, co bylo převzato a co bylo ručně upraveno.

Zdroje

  • DuckDB documentation
  • Jupyter Notebook documentation
  • Matplotlib documentation
  • [doplnit případné další zdroje, které skutečně použijete]