Wszystkie artykuły
ecommerce2026-09-07

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:

  1. Widzi reklamę na FB (impression)
  2. Klika w Google Shopping (click)
  3. 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.month

Benchmark: 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