Jak liczony jest zysk i marża
Raport to zestaw decyzji o tym, co liczyć. Oto wszystkie nasze, w kolejności, w jakiej wpływają na liczbę na ekranie, z rachunkiem na tych samych danych demo, które widać na zrzutach.
Aktualizacja 2026-10-11
Przychód
Wartość netto sprzedanego towaru, po rabatach, bez podatku i bez wysyłki.
Podatek nie jest Twój, więc wypada. Wysyłka wypada, bo rdzeń nie zapisuje żadnego kosztu przy pozycji wysyłkowej: doliczenie opłaty do przychodu, gdy jej koszt nie stoi nigdzie, podniosłoby każdą marżę powyżej prawdy.
Kupony są już rozliczone — WooCommerce zapisuje wartości pozycji po rabatach, więc kod na 20% widać jako niższy przychód, a nie jako osobne odliczenie.
Koszt towaru
Suma kosztów zapisanych na sprzedanych pozycjach, czytana z pozycji zamówień, a nie z dzisiejszych kartotek produktów.
To jest część, dla której warto było ten raport budować: WooCommerce wpisuje koszt na pozycję zamówienia w chwili sprzedaży, więc zamówienie z zeszłego marca raportuje koszt z zeszłego marca. Jedyne, co to nadpisuje, to zwrot — zachowanie rdzenia opisane osobno.
Zysk brutto
zysk brutto = przychód z pozycji o znanym koszcie - koszt tych pozycji
Zwróć uwagę na pierwszą połowę. Zysk liczy się tylko na pozycjach o znanym koszcie. Pozycja bez zapisanego kosztu nadal wchodzi do przychodu, ale nigdy nie wchodzi do rachunku zysku tak, jakby towar był darmowy.
Wariant przeciwny — potraktowanie braku kosztu jako zera — daje liczbę większą, milszą i całkowicie fałszywą. To najczęstszy sposób, w jaki raport zysku kłamie sklepowi.
Marża
marża = zysk brutto / przychód z pozycji o znanym koszcie
Zysk podzielony przez przychód, nie narzut na koszt. Produkt kupiony za 60 i sprzedany za 100 ma tu 40% marży. Jego narzut to 66,7% i właśnie tę liczbę podają zwykle dostawcy — kalkulator marży i narzutu przelicza jedną na drugą.
Pokrycie — liczba, która kwalifikuje wszystkie pozostałe
pokrycie = przychód z pozycji o znanym koszcie / cały przychód
Wypisane na dole panelu podsumowania jako zdanie, nie jako plakietka:
Koszt jest znany dla 74% przychodu. Zysk i marża powyżej są policzone tylko na tej części; 1 119 760,42 zł przychodu nie ma zapisanego kosztu.
Pokrycie nie jest wynikiem do wyśrubowania do 100%. Sklep, który rozdaje próbki albo sprzedaje towar kupiony przed istnieniem pola kosztu, zostanie poniżej 100% na zawsze — i to jest poprawna odpowiedź, a nie usterka.
Rachunek na przykładzie
Sklep demo z przykładowego raportu, za dwanaście miesięcy:
| Wielkość | Wartość | Skąd się bierze |
|---|---|---|
| Przychód | 4 306 235,11 zł | wszystkie liczone pozycje zamówień |
| Przychód ze znanym kosztem | 3 186 474,69 zł | przychód minus część bez pokrycia |
| Przychód bez zapisanego kosztu | 1 119 760,42 zł | te 26% |
| Koszt towaru | 1 646 293,79 zł | koszty zapisane na tych pozycjach |
| Zysk brutto | 1 540 180,90 zł | 3 186 474,69 − 1 646 293,79 |
| Marża | 48,3% | 1 540 180,90 / 3 186 474,69 |
| Pokrycie | 74% | 3 186 474,69 / 4 306 235,11 |
Dwie rzeczy warto zauważyć. Marża liczy się na przychodzie pokrytym, nie na całym — inaczej spadłaby po cichu o jedną czwartą z powodu, który nie ma nic wspólnego z Twoimi cenami. I zysk jest mniejszy, niż sugerowałoby „przychód minus koszt” na całym sklepie, bo jedna czwarta przychodu po prostu nie bierze udziału w rachunku.
Które zamówienia są liczone
Zrealizowane, w realizacji i zwrócone. Anulowane, nieudane, oczekujące, szkice i wstrzymane nie są liczone w ogóle — nie jako sprzedaż z zerowym zyskiem, po prostu ich nie ma.
„Zwrócone” jest na tej liście z powodu, który łatwo przegapić: pełny zwrot przestawia pierwotne
zamówienie na refunded, więc wykluczenie tego statusu usunęłoby sprzedaż, zostawiając zwrot,
a zamówienie liczyłoby się jako minus własna wartość.
Cały wywód.
Zwroty
Zwrot liczy się jako kwota ujemna w okresie, w którym został wystawiony, nie w okresie pierwotnej sprzedaży. Wrześniowa sprzedaż zwrócona w listopadzie zostawia wrzesień dokładnie takim, jaki był.
Ruszają się obie strony: zwrot obniża jednocześnie przychód i zapisany koszt, więc zamówienie w pełni zwrócone wychodzi na zero, a nie na minus własną marżę.
Co świadomie zostaje poza rachunkiem
- Przychód i koszt wysyłki. Dla pozycji wysyłkowej nie istnieje pole kosztu.
- Prowizje bramek płatniczych. Nie ma ich w danych zamówienia w żadnej standardowej formie.
- Zamówienia w innej walucie. Wymienione w ostrzeżeniu i wyłączone, bez stosowania kursów. Dlaczego.
- Wszystko poza towarem — czynsz, pensje, reklama. To jest raport zysku brutto, a zysk brutto jest liczbą realną i użyteczną właśnie dlatego, że jego granica jest jasna.
Kategorie nakładają się celowo
Produkt w trzech kategoriach liczy się we wszystkich trzech, więc wiersze kategorii mogą dać więcej niż podsumowanie. WooCommerce nie zna kategorii głównej, więc alternatywą byłoby jej wymyślenie. Szczegóły.
Jak daleko wstecz sięga
Nie ma okna. Raport liczy daty, które wybierzesz — lista skrótów kończy się na dwunastu miesiącach, ale własny zakres przyjmuje dowolne dwie daty, aż do najstarszego zamówienia. Po drodze do zapytania nic nie jest przycinane, a dwa pola dat zawsze pokazują dni, które faktycznie są liczone.
Historię kończą dane o koszcie, a nie zakres: przychód sięga do najstarszego zamówienia, a zysk i marża tylko do dnia, w którym koszty zaczęły się zapisywać. Jak daleko wstecz sięga raport.
Skąd te liczby biorą się w bazie
Dla każdego, kto chce sprawdzić rachunek własnym SQL-em:
- koszt produktu —
_cogs_total_valuew postmeta orazwc_product_meta_lookup.cogs_total_value, które maNULL, gdy koszt nie jest wpisany; - koszt pozycji zamówienia —
_cogs_valuewwoocommerce_order_itemmeta, ta sama tabela przy HPOS i przy zapisie klasycznym; - suma kosztu zamówienia —
_cogs_total_valuewwc_orders_metaprzy HPOS, w postmeta w przeciwnym razie; - przychód pozycji — wartość netto pozycji, z tych samych tabel.
Raport liczy Twoja własna baza i nic z niego nie opuszcza serwera. Jeśli któraś liczba nie zgadza się z tym, co wychodzi na kartce, warto o tym napisać — błędna liczba to jedyna realna wpadka, jaką ten rodzaj produktu może mieć.