Jak mierzyć COS (Cost of Sales) w e-commerce — pełny przewodnik
Spis treści
COS to jeden z tych wskaźników które brzmią prosto, a w praktyce są piekłem do policzenia poprawnie. Po 3 latach mierzenia COS dla fashion marketplace z setkami brandów — oto co faktycznie działa.
COS = koszty marketingowe / przychody — ale co to znaczy w praktyce?
Definicja jest prosta. Implementacja nie.
Które koszty wliczasz?
- Płatne reklamy (Google, Meta, TikTok) — tak, oczywiste
- Koszty agencji mediowej — tak, ale często zapominane
- Tooling (platformy atrybucji, bid management) — tak
- Koszty influencer marketingu — zależy od Twojej definicji "marketingu"
- Rabaty i kupony — to już nie COS, to osobna kategoria
Które przychody?
- GMV brutto — przed zwrotami
- GMV netto — po zwrotach (polecam)
- Przychody firmy — nie GMV (jeśli jesteś marketplace)
Zdefiniuj to raz, zapisz, nie zmieniaj co kwartał.
Problem atrybucji: last-click kłamie
Wyobraź sobie klienta który:
- Widzi reklamę na FB (impression)
- Klika w Google Shopping (click)
- Wraca przez direct/none (zakup)
Last-click przypisze konwersję do Google Shopping. Meta nie dostanie nic. Twój COS dla FB będzie wyglądał dramatycznie gorzej niż faktycznie jest.
Co z tym robić:
- Używaj data-driven attribution w GA4 (lepsze niż last-click)
- Porównaj z raportami platform (Meta Ads, Google Ads) — różnica to skala problemu
- Traktuj COS per kanał jako przybliżenie, nie prawdę absolutną
- Śledź COS całkowity (all channels) jako metrykę biznesową
SQL do liczenia COS — przykład z życia
WITH marketing_costs AS (
SELECT
date_trunc('month', spend_date) as month,
channel,
SUM(spend_amount) as total_spend
FROM marketing_spend
WHERE spend_date >= '2024-01-01'
GROUP BY 1, 2
),
revenue AS (
SELECT
date_trunc('month', order_date) as month,
SUM(gmv_net) as total_revenue -- net = po zwrotach
FROM orders
WHERE order_date >= '2024-01-01'
AND status != 'cancelled'
GROUP BY 1
)
SELECT
c.month,
SUM(c.total_spend) as marketing_spend,
r.total_revenue,
ROUND(SUM(c.total_spend) / r.total_revenue * 100, 1) as cos_pct
FROM marketing_costs c
JOIN revenue r ON c.month = r.month
GROUP BY c.month, r.total_revenue
ORDER BY c.monthBenchmark: jaki COS jest dobry?
Dla fashion e-commerce:
- COS < 15% — bardzo dobry (rzadkie, głównie silne marki own)
- COS 15-25% — zdrowy zakres dla marketplace/multibrand
- COS 25-35% — akceptowalny przy wysokim LTV klientów
- COS > 35% — alarm, sprawdź czy nie subsidizujesz wzrostu
Ale benchmark branżowy to tylko punkt startowy. Ważniejsze pytanie: jaki COS możesz sobie pozwolić przy Twojej marży na produkcie?
Jeśli marża na GMV to 40%, COS 30% zostawia Ci 10% na koszty operacyjne — może być za cienko.
TL;DR
- Zdefiniuj co wliczasz do kosztów i przychodów — jeden raz, na piśmie
- Last-click atrybucja kłamie — używaj data-driven lub porównuj cross-platformowo
- COS całkowity (all channels) jest ważniejszy niż COS per kanał
- Benchmark dla fashion e-commerce: 15-25% = zdrowy zakres
- Liczyć na GMV netto (po zwrotach) — brutto zniekształca obraz
Chcesz wiedzieć, gdzie tracisz klientów?
Przeanalizuję Twój lejek i wskażę, co poprawić najpierw. Pierwsza rozmowa jest bezpłatna.
Umów konsultacjęWięcej artykułów o data analytics:
Wróć do bloga