Pragmatic Coders PL
  • Usługi
        • Tworzenie produktów cyfrowych
        • Budowanie dedykowanego oprogramowania
        • Wspieranie projektów technologicznych
        • Przejmowanie projektów technologicznych
        • Przepisywanie systemów legacy
  • Klienci
        • Wszyscy Klienci
        • E-commerce
          • Kitopi - Wirtualna kuchnia
          • Webinterpret - automatyzacja e-commerce
        • Przejęcia projektów
          • Pomogliśmy platformie proptech wyjść z poważnego kryzysu
          • Zbudowaliśmy launcher web3 w 6 tygodni
  • Zasoby
        • Webinary
          • Dlaczego AI nie zwiększyło efektywności IT w Twojej firmie?
          • Czy kodowanie z AI to wielka ściema?
          • Przepisanie systemu legacy z AI w 2 miesiące — case study
        • Ebooki
          • Jak ocenić stan projektu IT? Autodiagnoza
        • Checklisty
          • Checklista: Dlaczego AI nie zwiększyło efektywności IT
          • AI Readiness Checklist dla zespołów tworzących oprogramowanie
          • Product Health Checklist
          • Technical Health Checklist
  • Blog
        • Wszystkie wpisy na blogu
        • Redakcja
        • Strategia biznesowa
        • Rozwój produktu
        • Dług techniczny
        • Aktualności
  • Kontakt
  • 🔥Umów bezpłatną konsultację🔥
Kontakt
PL
  • EN
  • PL
Strona główna Blog Dług Techniczny Dlaczego raporty finansowe w SaaS różnią się między źródłami?
Dług Techniczny, Zarządzanie produktem
2026-09-17
8 min read

Dlaczego raporty finansowe w SaaS różnią się między źródłami?

Dlaczego raporty finansowe w SaaS różnią się między źródłami - okladka

Otwierasz zestawienie faktur, księgę główną i panel płatności. Wszystkie pokazują dane za ten sam miesiąc, ale kwoty się nie zgadzają. Pierwszy odruch: gdzieś jest błąd. Tyle że rozbieżność nie musi oznaczać, że któryś z raportów jest niepoprawny.

Jedno źródło może ujmować transakcję według daty wykonania usługi, drugie według daty płatności, a trzecie według wpływu środków. Zanim zlecisz poprawkę, trzeba więc ustalić, czy raporty stosują inne zasady, czy dane rzeczywiście rozjechały się między systemami.

W tym artykule pokażę, jak rozróżnić te dwa przypadki, znaleźć źródło rozbieżności i naprawić problem tak, żeby nie wracał w kolejnych raportach.

W skrócie

  • Raport sprzedaży, panel płatności i księga mogą poprawnie pokazywać różne kwoty za ten sam okres, ponieważ ujmują transakcję według daty wykonania usługi, zapłaty albo wpływu środków.
  • Rozbieżność ma dwa główne źródła: raporty stosują odmienne definicje albo operacja została poprawnie zapisana tylko w części systemu.
  • Porównanie miesięcznych sum pokazuje skalę rozbieżności, lecz dopiero prześledzenie jednej transakcji pozwala ustalić przyczynę tej rozbieżności.
  • Ręczna korekta pojedynczego rekordu usuwa objaw, nie źródło problemu. Trwała naprawa wymaga wspólnej definicji raportu, poprawienia działania systemu oraz decyzji o danych historycznych.

Zestawienie faktur, panel płatności i księga mogą poprawnie pokazywać różne kwoty

Wystawienie faktury, płatność i wpływ środków na konto nie muszą nastąpić tego samego dnia. Dlatego raporty mogą pokazywać różne wartości i nadal poprawnie opisywać rzeczywistość.

Załóżmy, że faktura dotyczy usługi wykonanej w sierpniu. Klient płaci za nią we wrześniu, a bank potwierdza wpływ następnego dnia. Jedna transakcja ma więc co najmniej trzy istotne daty: wykonania usługi, rejestracji płatności i wpływu środków na konto.

Raport sprzedaży może przypisać kwotę do sierpnia. Panel operatora płatności pokaże ją we wrześniu. Wyciąg bankowy uwzględni środki dzień później.

Nie musisz więc szukać jednej kwoty za sierpień we wszystkich trzech raportach. Musisz umieć powiedzieć, dlaczego ta sama faktura jest w raporcie sprzedaży w sierpniu, a w panelu płatności we wrześniu. Tak samo nie ocenisz budżetu IT po jednej metryce: liczy się, co ta liczba oznacza i z czym ją zestawiasz.

Zanim zlecisz poprawkę, sprawdź, czy nie porównujesz sprzedaży z sierpnia z płatnościami z września.

Jedna transakcja SaaS z trzema datami ujęcia: raport sprzedaży bierze datę usługi, panel płatności datę zapłaty, wyciąg bankowy datę wpływu

Ustal, czy raporty używają tych samych definicji i dat

Zanim założysz, że dane są błędne, ustal, jaki okres obejmuje każdy raport, według której daty ujmuje transakcję i jak traktuje późniejsze zmiany.

Załóżmy, że fakturę z 1 sierpnia ktoś anuluje 10 września, a potem znowu wygeneruje raport za sierpień. Jaką kwotę powinien on wtedy pokazać?

Moduł faktur może pominąć tę fakturę, bo 10 września została anulowana. Księga główna, czyli General Ledger (GL), może nadal ją uwzględniać zgodnie ze stanem na 31 sierpnia (w tamtym momencie należność przecież istniała). Oba raporty mogą być w takim wypadku “poprawne”, choć pokazują inne wartości.

W tym przykładzie jeden raport bierze stan po anulowaniu, drugi stan przed. U was mogą rozjechać się inne zestawienia, z tej samej przyczyny albo z zupełnie innej. Skoro liczby już się nie zgadzają, musisz wiedzieć dlaczego, zanim zlecisz ewentualną poprawkę.

Anulowanie faktury nie zawsze znaczy to samo

Sposób anulowania dokumentu bezpośrednio wpływa na wynik raportu. System może oznaczyć fakturę jako nieważną albo utworzyć osobny dokument korygujący.

W pierwszym wariancie faktura może zniknąć z bieżącego zestawienia. W drugim pozostaje w historii, a dokument korygujący zmienia jej wartość. Raport za okres między fakturą a korektą pokaże więc inną kwotę niż raport po korekcie.

To, czy system pomija anulowaną fakturę, czy uwzględnia ją wraz z dokumentem korygującym, zmienia skład raportu i jego wynik.

Ta sama transakcja może mieć różną datę w różnych raportach

Strefa czasowa też wpływa na to, do którego dnia raport przypisze transakcję. Jeden moduł może brać datę według UTC, a drugi według lokalnego czasu klienta.

Transakcja wykonana blisko północy może wtedy zostać przypisana do różnych dni w różnych modułach. Jeśli transakcja przypada na granicę miesiąca, może też wpłynąć na wynik za dany miesiąc. To może być błąd implementacji, ale może też wynikać ze świadomie przyjętej reguły. Problem zaczyna się wtedy, gdy nikt nie potrafi tej reguły wyjaśnić.

Jeśli definicje są spójne, a liczby nadal się różnią, trzeba przejść do drugiej grupy przyczyn.

Sprawdź, czy dane nie rozjechały się między modułami

Zgodne definicje nie gwarantują zgodnych danych. Dana operacja mogła powieść się tylko w części systemu.

Załóżmy, że anulowanie faktury powiodło się w module faktur. Moduł księgowy odrzucił jednak zmianę, ponieważ poprzedni miesiąc został już zamknięty. Użytkownik widzi anulowany dokument, ale kwota z faktury nadal pozostaje w księdze.

Kilka kroków miało złożyć się na jedną zmianę, ale system wykonał tylko część z nich. Jeśli błąd nie został poprawnie obsłużony albo komunikat został zignorowany, problem może pozostać niewidoczny. To tzw. silent failure.

Taki problem jest trudniejszy do wykrycia i obsługi w systemach, które przetwarzają zdarzenia w tle lub dzielą proces między wiele usług. Nie oznacza to jednak, że mikroserwisy z definicji psują dane. Ryzyko wynika z niewłaściwej obsługi sytuacji, w której tylko część operacji kończy się powodzeniem.

System może próbować wycofać kroki, które zdążył wykonać. Ale cofnięcie również może się nie udać. Im więcej etapów ma operacja, tym więcej możliwych stanów pośrednich może powstać.

W poprzedniej sekcji problemem była różna interpretacja poprawnych danych. Tutaj dwa moduły opisują sprzeczne stany. To niespójność danych, której koszty widać z opóźnieniem. Żeby rozstrzygnąć, z którym przypadkiem masz do czynienia, musisz znaleźć konkretną transakcję.

Zawężaj analizę od miesiąca do pojedynczej transakcji

Nie próbuj wyjaśniać całego raportu naraz. Znajdź najmniejszy zakres danych, dla którego źródła nadal pokazują różne wyniki.

Porównanie samych sum potwierdzi, że problem istnieje. Nie wyjaśni jednak jego mechanizmu. Tutaj trzeba zejść poziom niżej:

  1. Porównaj te same źródła i ten sam okres. Zestaw panel płatności, moduł faktur i moduł księgowy.
  2. Sprawdź wzorzec w czasie. Zobacz, czy podobna różnica powtarza się w kolejnych miesiącach.
  3. Zawężaj zakres. Przejdź od miesiąca do tygodnia, dnia i konkretnej transakcji.
  4. Odtwórz przebieg zdarzenia. Porównaj daty, statusy i kolejne kroki we wszystkich modułach.
  5. Rozstrzygnij przyczynę. Ustal, czy widzisz różne definicje, czy faktyczną niespójność danych.

Powtarzalna różnica bywa szczególnie pomocna. Jeśli ta różnica co miesiąc odpowiada stawce VAT, warto sprawdzić, czy podatek nie jest pomijany w jednym źródle albo naliczany podwójnie w innym.

Wahanie od 7,5% do 9% nie wyklucza wspólnej przyczyny. Błąd może dotyczyć tylko dokumentów korygujących, cofniętych płatności albo wybranego typu transakcji. Procent zmienia się wtedy wraz z udziałem tych zdarzeń w danym miesiącu.

Dopiero pojedyncza faktura pozwala prześledzić, dlaczego moduł A i moduł B pokazują różne wyniki. Czasem znajdziesz błąd. Innym razem dane są poprawne, a rozbieżność wynika z tego, że zespół źle rozumiał, jak każdy raport ma ujmować transakcję.

Gdzie pomaga AI? AI może przygotować zapytania SQL na podstawie schematu i pomóc porównać wyniki. Nie zna jednak definicji biznesowej, jeśli nie ma jej w swoim kontekście. Bezpieczniej, gdy AI zaproponuje zapytanie, człowiek je sprawdzi, a do dalszej analizy przez AI trafią tylko zanonimizowane wyniki. Swobodny dostęp AI do środowiska produkcyjnego stwarza ryzyko dla poufności danych i wydajności systemu.

Napraw definicję, system i dane historyczne

Zmiana jednego rekordu może zamknąć ticket, ale nie usuwa przyczyny. Trwała naprawa musi objąć to, jak każdy raport ma ujmować transakcję, zachowanie systemu i dane historyczne.

Jeżeli zespół poprawi datę jednego dokumentu korygującego, to klient znów zobaczy oczekiwaną kwotę. Ale system się nie zmieni, a wcześniejsze dane zostaną bez zmian.

Dlatego naprawa powinna obejmować trzy warstwy:

  1. Definicja. Uzgodnić z biznesem, działem finansowym i zespołem technicznym, jak każdy raport ma ujmować transakcję i co mają oznaczać prezentowane w nim dane.
  2. System. Poprawić kod i obsługę błędów tak, żeby ta sama niespójność nie powstała ponownie.
  3. Historia. Zdecydować, czy przeliczyć stare dane, oznaczyć zmianę metodologii, czy wyznaczyć moment, od którego ma obowiązywać nowa reguła.

To, jak każdy raport ma ujmować transakcję (definicja), nie może być znane wyłącznie osobom, które obsłużyły incydent. Ma być dostępne dla użytkowników, działu finansowego, zespołu technicznego i narzędzi wspierających analizę.

Za pół roku osób, które wprowadziły poprawkę, może już nie być w projekcie. Jeśli tylko one wiedzą, jak raport ma ujmować transakcję, bus factor spada do jednej osoby. Nowa osoba musi móc ustalić, dlaczego raport przed 1 września działa inaczej niż raport po tej dacie.

Właśnie tutaj powstaje dług danych. Składają się na niego nie tylko błędne rekordy, ale też brak dokumentacji wyjaśniającej znaczenie poprawnych danych. Bez tej wiedzy za kilka miesięcy zespół znów będzie zmuszony naprawiać ten sam problem.

Oceń, czy rozjazd raportów jest objawem większego problemu

Powracające różnice mogą oznaczać, że problem wykracza poza jeden raport, szczególnie gdy zespół nie potrafi wyjaśnić definicji raportów, błędy znikają bez śladu, a poprawki nie obejmują danych historycznych.

W takiej sytuacji CFO lub CEO nie musi od razu zamawiać dużego audytu. Może zacząć od samodzielnej diagnozy stanu projektu IT. Pozwala ona sprawdzić, czy sprzeczne raporty są odosobnionym problemem danych, czy elementem szerszej utraty kontroli nad produktem.

Jeżeli diagnoza pokaże brak spójnego obrazu stanu, odpowiedzialności i procesu, punktowe poprawki mogą nie wystarczyć. Wtedy potrzebne bywa wsparcie zagrożonego projektu technologicznego, które porządkuje sposób pracy, zarządzanie ryzykiem i realizację zobowiązań.

Podsumowanie

Różne raporty finansowe nie muszą świadczyć o błędzie. Mogą ujmować transakcję według innej daty, odtwarzać stan z innego momentu albo inaczej traktować korekty. Jeśli każdy raport ma ujmować transakcję według tych samych zasad, szukaj operacji, która powiodła się tylko w części systemu.

Kolejność ma znaczenie: ustal, jak każdy raport ma ujmować transakcję (definicja), znajdź transakcję, odtwórz jej przebieg, a potem napraw system i dane historyczne. Wiarygodny raport nie musi pokazywać tej samej liczby co każdy inny. Musi jasno wskazywać, na jakie pytanie odpowiada, na jakich danych opiera wynik i dlaczego można mu zaufać.

Podsumuj ten artykuł za pomocą sztucznej inteligencji
ChatGPT
ChatGPT
Claude
Claude
Perplexity
Perplexity
Autor

Author

Arkadiusz Gruca

Arkadiusz Gruca

Arkadiusz pisze o zarządzaniu projektami IT, tłumacząc złożone zjawiska w sposób zrozumiały i użyteczny dla biznesu. Od ponad sześciu lat tworzy treści pomagające liderom podejmować lepsze decyzje.

LinkedIn

Co-author

Dominik Króliczek

Dominik Króliczek

Senior Software Developer @ PC

LinkedIn
Newsletter

Powiązane artykuły

Zajrzyj na naszego bloga i zdobądź wiedzę branżową, której nie znajdziesz nigdzie indziej

Jak zarząd może nadzorować technologię bez wchodzenia w kod? Jak zarząd może nadzorować technologię bez wchodzenia w kod
Zarządzanie produktem, Dług Techniczny
2026-09-03
9 min read

Jak zarząd może nadzorować technologię bez wchodzenia w kod?

Technical due diligence przed rundą: co sprawdzi fundusz VC Technical due diligence przed rundą - okladka
Dług Techniczny, Rozwój Produktu
2026-09-01
9 min read

Technical due diligence przed rundą: co sprawdzi fundusz VC

Gdzie technologia tworzy ryzyko finansowe? Kluczowe obszary dla CFO Gdzie technologia tworzy ryzyko finansowe - okladka
Dług Techniczny, Zarządzanie produktem
2026-08-27
9 min read

Gdzie technologia tworzy ryzyko finansowe? Kluczowe obszary dla CFO

Nasze usługi

Tworzymy innowacyjne produkty cyfrowe

Tworzymy innowacyjne produkty cyfrowe

Masz pomysł na produkt cyfrowy? Zaprojektujemy UX, dobierzemy technologię i wdrożymy rozwiązanie. Od MVP po skalowanie produktu.
Learn More
Budujemy dedykowane oprogramowanie

Budujemy dedykowane oprogramowanie

Potrzebujesz dedykowanego oprogramowania? Zaprojektujemy i wdrożymy rozwiązanie szyte na miarę, które zwiększy wydajność Twojej firmy.
Learn More
Ratujemy zagrożone projekty technologiczne

Ratujemy zagrożone projekty technologiczne

Twój projekt IT nie jest skazany na porażkę. Naprawimy kod, zmniejszymy ryzyko i dopasujemy założenia do Twoich celów biznesowych.
Learn More
lyfery_logo.jpg

lyfery_logo.jpg

Podsumuj ten artykuł za pomocą sztucznej inteligencji ChatGPT Claude Perplexity
Learn More

Newsletter

Opowiadamy o biznesie, projektowaniu i zarządzaniu produktem, programowaniu, AI – i więcej.

ZAJRZYJ DO ŚRODKA

ul. Opolska 100

31-323 Kraków, Poland

NIP: 6772398603

[email protected]

+48 783 871 783

Śledź nas
Facebook Linkedin Github Behance Dribbble
© 2026 Pragmatic Coders PL. All right reserved.
  • Polityka prywatności
  • Regulamin serwisu
  • Mapa strony