To absolutnie najczęstszy błąd analityków w Data Studio – i jeden z niewielu, gdzie raport wygląda poprawnie dla pojedynczych wierszy, ale daje zupełnie błędny wynik w wierszu Total. Jeśli kiedykolwiek widziałeś, że łączny ROAS kampanii w podsumowaniu różni się od tego, co wychodzi w kalkulatorze – to właśnie ten problem.
Konkretny przykład – gdzie liczby się rozjeżdżają
Poniżej minimalne dane (10 wierszy, kolumna A i B), które wystarczą, żeby zobaczyć błąd gołym okiem:
| A | B | a/b (per wiersz) |
|---|---|---|
| 1 | 2 | 0,50 |
| 2 | 2 | 1,00 |
| 3 | 2 | 1,50 |
| 4 | 2 | 2,00 |
| 5 | 2 | 2,50 |
| 6 | 2 | 3,00 |
| 7 | 2 | 3,50 |
| 8 | 3 | 2,67 |
| 9 | 3 | 3,00 |
| 10 | 3 | 3,33 |
| SUM = 55 | SUM = 23 | AVG = 23,00 / 10 |
Wynik w wierszu Total zależy od zastosowanej formuły:
| SUM(A) / SUM(B) = 55 / 23 | 2,39 ✓ |
| a / b = AVG(0,50; 1,00; 1,50; … 3,33) = 23,00 / 10 | 2,30 ❌ |
Różnica wynosi 0,09 na 10 wierszach z prostymi liczbami. Na danych produkcyjnych – milionach rekordów, nieregularnych wolumenach, sezonowości – błąd może sięgać kilkunastu procent. Zafałszowany ROAS o 15% to realna różnica między tym, czy kampania "zarabia" czy "traci" w oczach zarządu.
Mechanizm jest prosty, gdy spojrzysz na to przez pryzmat statystyki:
a/bw Data Studio = średnia arytmetyczna ilorazów – dla każdego wiersza obliczany jest iloraz, a wiersz Total bierze ich średnią. Każdy wiersz ma wagę1/n, niezależnie od wolumenu. Wiersz z A=1, B=2 waży tyle samo co wiersz z A=10, B=3.SUM(a)/SUM(b)= średnia ważona ilorazów – wagą każdego wiersza jest jego mianownik (B). Wiersz z B=3 waży półtora raza więcej niż wiersz z B=2, bo reprezentuje "więcej" w kontekście mianownika.
Można to udowodnić algebraicznie: SUM(a)/SUM(b) jest identyczne z Σ (a_i/b_i) × (b_i / SUM(b)) – to klasyczna definicja średniej ważonej, gdzie wagą jest B. W praktyce biznesowej oznacza to, że kampania z budżetem 10 000 PLN wpływa na łączny ROAS proporcjonalnie bardziej niż kampania testowa z budżetem 200 PLN – dokładnie tak jak powinno być.
Dlaczego tak się dzieje – model agregacji Data Studio
Data Studio (podobnie jak BigQuery, Tableau czy Power BI) stosuje dwuetapowy model obliczeń:
- Etap wiersza: dla każdego rekordu w źródle danych obliczana jest wartość pola obliczeniowego. Formuła
Przychód / Wydatkidaje wynik per wiersz. - Etap agregacji: gdy tabela ma grupowanie (np. per kampania, per dzień), silnik musi zagregować wiersze do jednego wyniku. Domyślnie stosuje AVG – czyli średnią arytmetyczną z wartości wierszowych.
Wiersz Total to skrajny przypadek etapu agregacji – wszystkie wiersze sprowadzone do jednej liczby. Przy a/b każdy wiersz ma równą wagę, niezależnie od wolumenu. To matematycznie poprawna operacja, ale biznesowo zupełnie bez sensu – dzień z obrotem 50 000 PLN waży tyle samo co dzień z obrotem 100 PLN.
SUM(licznik) / SUM(mianownik).
Jedyna poprawna metoda: SUM(a) / SUM(b)
Formuła SUM(a) / SUM(b) mówi Data Studio: „najpierw zsumuj osobno licznik i mianownik dla wszystkich wierszy w grupie, a dopiero potem podziel". Dzięki temu większe wartości mianownika (wyższe budżety, więcej sesji, więcej km) naturalnie ważą wynik – identycznie jak kalkulator.
-- ❌ Błędnie – średnia arytmetyczna ROAS-ów per wiersz Przychód / Wydatki -- ✓ Poprawnie – ROAS ważony wolumenem wydatków SUM(Przychód) / SUM(Wydatki)
Przykłady dla popularnych wskaźników
| Wskaźnik | ❌ Błędna formuła | ✓ Poprawna formuła |
|---|---|---|
| ROAS | Przychód / Wydatki | SUM(Przychód) / SUM(Wydatki) |
| CR (konwersja) | Transakcje / Sesje | SUM(Transakcje) / SUM(Sesje) |
| AOV | Przychód / Zamówienia | SUM(Przychód) / SUM(Zamówienia) |
| Marża brutto % | (Przychód - Koszt) / Przychód | (SUM(Przychód) - SUM(Koszt)) / SUM(Przychód) |
| CPC | Koszt / Kliknięcia | SUM(Koszt) / SUM(Kliknięcia) |
| CPK (koszt/km) | Koszty / Kilometry | SUM(Koszty) / SUM(Kilometry) |
| OTD % | Dostawy_na_czas / Dostawy_total | SUM(Dostawy_na_czas) / SUM(Dostawy_total) |
Kiedy a/b jest jednak poprawne?
Są sytuacje, w których formuła bez SUM() jest właściwa – gdy dane są już wcześniej zagregowane i każdy wiersz reprezentuje niezależny, równoważny punkt danych. Przykłady:
- Dane z jednego dnia per kampania, gdy raport jest bez grupowania po czasie – każdy wiersz to osobna kampania i ROAS per wiersz jest już ostateczny.
- Stawki i ceny – jeśli masz kolumnę Cena jednostkowa i chcesz przeliczać ją (np. PLN → EUR), to mnożenie przez kurs walutowy nie wymaga SUM().
- Dane z BigQuery po stronie SQL – jeśli zapytanie zwraca już zagregowane metryki (GROUP BY kampania), wiersze są unikalne i podwójne SUM() mogłoby narobić szkód.
Praktyczna zasada: jeśli tworzysz wskaźnik pochodny (iloraz dwóch miar surowych, które Data Studio będzie sumował), użyj SUM/SUM. Jeśli operujesz na wartości już obliczonej w źródle – możesz pominąć.
Ochrona przed dzieleniem przez zero
Sama formuła SUM(a) / SUM(b) wciąż rzuci błąd, gdy mianownik wynosi zero (np. kampania bez żadnych wydatków). Zabezpiecz to przez NULLIF():
-- NULLIF zamienia 0 na null; Data Studio nie wyświetli błędu, tylko pustą komórkę SUM(Przychód) / NULLIF(SUM(Wydatki), 0) -- Jeśli wolisz 0 zamiast pustej komórki: IFNULL(SUM(Przychód) / NULLIF(SUM(Wydatki), 0), 0)
Checklist weryfikacji formuł w Twoich raportach
Wejdź w tryb edycji każdego raportu i przejrzyj pola obliczeniowe przez ten filtr:
- ☐ Czy pole zawiera
/(dzielenie)? → obowiązkowo sprawdź, czy licznik i mianownik mająSUM() - ☐ Czy wiersz Total w tabeli zgadza się z kalkulatorem na tych samych liczbach? → jeśli nie, masz błąd agregacji
- ☐ Czy pole jest używane po data blendingu? → SUM/SUM jest krytyczne, bo blending agreguje po kluczu złączenia
- ☐ Czy źródło danych to Google Sheets lub CSV? → surowe dane wierszowe wymagają SUM/SUM dla każdego wskaźnika
- ☐ Czy źródło to BigQuery z
GROUP BY? → dane już zagregowane, sprawdź, czy SUM() się nie podwaja
Błąd agregacji to jeden z tych problemów, które są całkowicie niewidoczne w raportach – dopóki ktoś nie sprawdzi wyników kalkulatorem. W firmach, gdzie dashboardy są podstawą decyzji budżetowych, zafałszowany ROAS o 20–30% może prowadzić do realnych strat.
Chcesz audytu formuł w swoich raportach? Napisz – przejrzę wszystkie pola obliczeniowe i sprawdzę, czy liczby w podsumowaniu odpowiadają rzeczywistości.