Menu
Nowy odcinekUmów rozmowę

Case study · Dystrybucja wina i żywności, grupa kapitałowa

Jedna liczba sprzedaży zamiast trzech.

Połączyliśmy dwie bazy Comarch ERP XL, Logifact WMS, Symfonię i base.com w jedną hurtownię danych. Grupa MJG ma ok. 80 raportów w Metabase, odświeżanych co godzinę i zgodnych z ERP co do grosza.

Klient
Grupa MJG
Zakres
ERP
Case Study Grupa MJG

Pytanie klienta

Ile naprawdę sprzedaliśmy w zeszłym miesiącu i dlaczego każdy raport mówi co innego?

Grupa MJG to dystrybutor wina i żywności. Vininova importuje wino i sprzedaje je hurtowo do restauracji i sklepów, ma sieć sklepów stacjonarnych i klub lojalnościowy. Index Food dostarcza żywność do sieci handlowych i sklepów tradycyjnych, prowadzi też sklep internetowy i delikatesy. Spółki mają osobne bazy Comarch ERP XL i wspólny magazyn z Logifact WMS.

Raporty powstawały latami w kilku miejscach: w Comarch BI Point (kilkaset raportów), w zapytaniach SQL wysyłanych mailem przez n8n i w arkuszach. Za ten sam miesiąc trzy narzędzia pokazywały trzy różne sumy sprzedaży, a różnica sięgała prawie 2%. Nikt nie wiedział, która jest prawdziwa. Handlowcy byli rozliczani z kwot, których nie dało się odtworzyć.

Cały projekt w półtorej minuty

Skąd brały się trzy różne liczby, jak z nich powstała jedna i jakie raporty dostali zarząd, handlowcy, zakupy i sklepy.

Dane na zrzutach w filmie są zanonimizowane.

Jak to zrobiliśmy

Najpierw liczby, potem wykresy

Pierwszy wykres powstał dopiero wtedy, gdy wiedzieliśmy, skąd biorą się różnice między narzędziami.

  1. 01 Audyt liczb, zanim powstał pierwszy wykres

    Policzyliśmy sprzedaż za jeden zamknięty miesiąc bezpośrednio w ERP i porównaliśmy ją z wynikami BI Point i raportów z n8n. Wszystkie różnice rozpisaliśmy na składniki: faktury wystawiane z WZ, usługi, gratisy, eksport, korekty kosztu, daty dokumentów. Różnice wynikały z definicji, a nie z błędów w danych.

  2. 02 Karta decyzji zamiast domysłów

    Każdą różnicę pokazaliśmy na prawdziwych dokumentach z ERP, z kwotą, której dotyczy. Klient zdecydował o 13 punktach, na przykład czy sprzedaż liczymy po dacie sprzedaży czy wystawienia, do którego handlowca przypisujemy klienta i co robimy z gratisami. Te decyzje są zapisane w kodzie hurtowni i w pomocy dla użytkowników.

  3. 03 Hurtownia danych z regułami w jednym miejscu

    Dane z obu baz Comarch ERP XL, Logifact WMS, Symfonii (sklep internetowy) i base.com (zamówienia z Allegro i sklepów) trafiają co godzinę do hurtowni PostgreSQL. Reguły biznesowe są w modelach dbt i nigdzie więcej: kanał sprzedaży, handlowiec, marża, rotacja zapasu, należności. Z systemami źródłowymi łączymy się tylko do odczytu.

  4. 04 Raporty dla każdego działu w Metabase

    Na hurtowni zbudowaliśmy ok. 80 dashboardów: dla zarządu grupy, dyrektora handlowego, handlowców, działu zakupów, sklepów, magazynu i marketingu. Każdy widzi tylko swoją spółkę i swój zakres. Raporty są zapisane w kodzie, więc zmiana definicji wskaźnika trafia wszędzie naraz.

Co połączyliśmy

Sześć źródeł, jedna hurtownia, raporty dla każdego działu

Każde źródło ma swój folder na każdym etapie: pobranie danych, reguły w hurtowni, raporty. Raporty łączące obie spółki mają osobny schemat grupy, w którym sprzedaż wewnątrzgrupowa jest liczona osobno.

Plan sprzedaży dział handlowy wgrywa sam, jako plik CSV prosto w Metabase.

  • Comarch ERP XL Vininova
  • Comarch ERP XL Index Food
  • Logifact WMS
  • Symfonia Handel
  • base.com
  • Plan sprzedaży w CSV
Schemat raportowania Grupy MJG: sześć źródeł danych, hurtownia, Metabase i działy, które korzystają z raportów
6
systemów źródłowych
Dwie bazy Comarch ERP XL, Logifact WMS, Symfonia Handel, base.com i pliki CSV z planem sprzedaży.
ok. 80
dashboardów
Ponad 1 200 pytań (kafelków) w Metabase, dla dwóch spółek i zarządu grupy.
185
modeli dbt
Reguły biznesowe zapisane raz, z testami i opisem każdego pola.
10 dni
do pierwszego kompletu
Od pierwszego commita do raportów sprzedaży, zakupów, magazynu i kokpitu zarządu grupy. Potem raporty rozwijamy razem z działami.

Handlowcy

Do kogo należy sprzedaż, gdy klient zmienia opiekuna?

Stare raporty przypisywały sprzedaż do dzisiejszego opiekuna klienta. Po przepięciu klientów historia przeskakiwała: jeden handlowiec miał w przeszłości zero, inny kilkadziesiąt procent więcej.

Teraz handlowiec to opiekun zapisany na dokumencie w chwili sprzedaży. Historia się nie zmienia, a wyniki zespołu da się porównać rok do roku. Dane na zrzucie są zanonimizowane.

Dashboard sprzedaży hurtowej z wynikami handlowców

Raport, który przychodzi sam

W poniedziałek o 8:00 każdy handlowiec dostaje swój region

Sprzedaż miesiąca do dziś, porównanie rok do roku, klienci do odzyskania i struktura portfela. Tylko dla jego regionu, mailem, czytelnie na telefonie.

Handlowiec nie potrzebuje do tego konta w systemie. Dane na zrzucie są zanonimizowane.

Raport tygodniowy handlowca na ekranie telefonu

Zarząd

Zarząd grupy widzi gotówkę, nie tylko sprzedaż

Kokpit grupy łączy sprzedaż obu spółek (bez sprzedaży wewnątrzgrupowej), należności, zobowiązania, zapas i przepływy gotówki na najbliższe 7, 30, 60 i 90 dni.

Obok kapitał obrotowy z rotacją należności, zapasu i zobowiązań. Dane na zrzucie są zanonimizowane.

Dashboard zobowiązań i przepływów gotówki grupy na najbliższe 90 dni

Co zmieniło się w firmie

Każdy dział ma swoje raporty, liczone tak samo

  • Jedna definicja sprzedaży

    Raport zarządu, raport handlowca i wynik sklepu liczą to samo i tak samo. Gdy definicja się zmienia, zmienia się w jednym miejscu.

  • Zakupy widzą rotację i ryzyko

    Dni zapasu per towar, alerty niskiego zapasu i nadmiaru, wiek partii, ryzyko przeterminowania i terminowość dostaw u dostawców.

  • Sklepy i Klub

    Każdy sklep widzi swój wynik dzień po dniu, zaopatrzenie z centrali i aktywność klubowiczów. Zarząd widzi wynik sklepów z kosztami z księgi.

  • Własne pytania bez SQL

    Pracownicy budują własne zestawienia w kreatorze Metabase, na tych samych, sprawdzonych tabelach. Każde pole ma opis w pomocy.

  • Uprawnienia per spółka i dział

    24 konta w 18 grupach uprawnień. Zarząd jednej spółki nie widzi drugiej, a raporty zarządu są w osobnych kolekcjach.

  • Godzina danych na każdym raporcie

    Każdy dashboard ma kafelek „Dane z” z godziną ostatniego pobrania. Odświeżanie co godzinę od 7:00 do 22:00, pełne przeliczenie o 6:00.

Zakupy

Czy ten towar zejdzie przed terminem?

Index Food widzi partie z datą ważności i prognozę zejścia przy obecnym tempie sprzedaży. Partie zagrożone przeterminowaniem trafiają na listę do działania, zanim staną się stratą.

Dane na zrzucie są zanonimizowane.

Ryzyko przeterminowania partii przy obecnym tempie sprzedaży

Sklepy

Wynik każdego sklepu dzień po dniu

Sprzedaż sklepów stacjonarnych Vininovy, średni paragon, klubowicze kupujący w sklepie i rozkład tygodnia. Zarząd ma obok wynik sklepów z kosztami z księgi (MPK).

Dane na zrzucie są zanonimizowane.

Dashboard sprzedaży sklepów stacjonarnych

co do groszazgodność z ERP

Każdą zmianę definicji sprawdzamy zapytaniem wprost do Comarch ERP XL za wybrany miesiąc. Należności Vininovy i zobowiązania obu spółek, także z fakturami importowymi w walucie, zgadzają się co do grosza. Sprzedaż za trzy pełne lata różni się najwyżej o kilka złotych rocznie, z zaokrągleń przy podziale na magazyny.

Wynik każdego uzgodnienia (okres, kwoty, różnica) zapisujemy w dokumentacji projektu. Po każdym odświeżeniu automat otwiera wszystkie kafelki wszystkich dashboardów, więc niedziałający raport widzimy przed użytkownikami.

Samodzielność

Pracownicy zadają własne pytania

Kreator Metabase działa bez SQL: tabela, filtr, podsumowanie, wykres. Każdy kafelek dashboardu można otworzyć i rozwinąć, a wynik zapisać jako własne pytanie.

Kreator pracuje na tych samych tabelach co gotowe raporty, więc własne zestawienie pokazuje te same liczby.

Kreator pytań Metabase bez SQL

Stan wdrożenia, 7 listopada 2026

Działa, w toku, następne kroki

Porozmawiajmy o Twoim projekcie