Agregacja i skonsolidowane sprawozdania
Agregacja i skonsolidowane sprawozdania
Agregacja to przekształcenie szczegółowych zapisów w wskaźniki podsumowujące wymagane sekcje i okresy. Konsolidacja - połączenie agregatów z różnych źródeł/podmiotów prawnych/produktów w jeden raport z korektami (waluta, zasady rachunkowości, eliminacja). Poniżej znajduje się systematyczne podejście: od projektowania okien sklepowych po raportowanie operacyjne.
1) Zadania i rodzaje konsolidacji
Działanie/Produkt: DAU/WAU/MAU, konwersje, przychody według kraju/kanału/platformy.
Financial (ex. i regulacyjne): P&L, Cash Flow, Balance Sheet, GGR/Net Gaming Revenue, podatki, raporty podmiotów prawnych.
Ryzyko/zgodność: zwalczanie nadużyć finansowych, wskaźniki RG, SLA/dostępność, dryfowanie danych/modeli.
Strategiczne: skonsolidowane KPI poprzez posiadanie, portfel marki, regiony.
2) Architektura warstwy agregacyjnej
Warstwy danych: 'raw' → 'staging' → 'core' (fakty/wymiary) → 'marts' (agregaty do raportów).
Warstwa semantyczna: definicje metryczne, kalendarz, waluty, zasady rollup.
Ziarno i ziarno czasu: 'event', 'user _ day', 'txn',' brand _ country _ day '→ kolejne rollupy do tygodnia/miesiąca/kwartału.
Tożsamości: stabilne klucze (user/brand/legal_entity), tabele mapowania).
3) Rollups i hierarchie
Hierarchie wymiarów są Gra → Kategoria → Dostawca, Kanał → Kampania → Kreatywne, Miasto → Region → Kraj → Klaster.
Zasady sumowania: dodatek (suma), półprodukt (migawka - średnia/ostatnia w danym okresie), brak dodatku (współczynniki/procenty).
Deduplikacja - unikalne użytkownicy i wydarzenia zbożowe; unikać podwójnego liczenia podczas łączenia źródeł.
4) Wielokrotność, strefy czasowe, kalendarz
Czas: przechowywać 'event _ time _ utc' i plastry lokalne; kalendarz dni urlopowych/roboczych.
Waluta: Zachowaj „surową” kwotę + „base _ ccy” według kursu wymiany w dniu transakcji (lub średniego kursu wymiany w okresie z zastrzeżeniem).
Normalizacja: Pokaż wyraźne jednostki/waluta/data kursu wymiany.
sql
WITH fx AS (
SELECT date, from_ccy, to_ccy, rate
FROM dim_fx_rates
WHERE to_ccy = 'EUR'
),
tx AS (
SELECT t. txn_id, t. amount, t. ccy, t. brand, t. country, t. event_date
FROM fact_tx
)
SELECT brand, country, DATE_TRUNC('month', event_date) AS month,
SUM(amount COALESCE(fx. rate, 1)) AS revenue_eur
FROM tx
LEFT JOIN fx
ON fx. date = tx. event_date AND fx. from_ccy = tx. ccy
GROUP BY 1,2,3;
5) Konsolidacja według źródła/podmiotu prawnego
Mapowanie wykresów kont: pojedynczy CoA (wykres kont) + mapowanie z planów lokalnych.
Zasady rachunkowości: MSSF/GAAP/zasady podatkowe → warstwa transformacji (na przykład dochody brutto/netto, ujmowanie premii/prowizji).
Eliminacja obrotu wewnątrz grupy: wyłączenie transakcji między podmiotami prawnymi gospodarstwa.
Metody konsolidacji: metoda pełna, proporcjonalna, metoda kapitałowa.
Akcjonariusze mniejszościowi: alokacja udziałów niekontrolujących (KIK).
sql
WITH interco AS (
SELECT a. txn_id
FROM fact_tx a
JOIN dim_counterparty b ON a. counterparty_id = b. id
WHERE a. legal_entity IN (SELECT id FROM dim_legal WHERE group_id = 1)
AND b. legal_entity IN (SELECT id FROM dim_legal WHERE group_id = 1)
)
SELECT
FROM agg_pl_month
WHERE txn_id NOT IN (SELECT txn_id FROM interco);
6) Jakość i pojednanie
Uzgodnienia źródłowe: kwota według źródła = kwota w prezentacji (z tolerancją kursu walutowego/czasu).
Niezmienne: „DAU ≤ MAU”, suma w ciągu dni = suma miesięczna (dla mierników dodatku).
Kontrola kompletności: udział NULL, udział duplikatów, opóźnienie świeżości.
Raport rozbieżności - Lista rozbieżności i kroków zaradczych.
7) Wydajność i SLO
świeżość SLO: jednostki operacyjne - lag ≤ 15 min; czas dzienny - do godziny 06:00 czasu lokalnego; miesięcznie - do T + 1/T + 3.
Optymalizacja: wstępne agregacje, przyrostowe ponowne obliczenia, podział (według daty/marki/kraju), pamięć podręczną dla popularnych plasterków.
Ograniczenia interfejsu użytkownika: ≤ 12 kategorii na harmonogram; paginacja tabel; leniwe obciążenie.
8) Zarządzanie definicjami i wersjami
Słownik metryki: kod, definicja, formuła, źródło, jednostki, właściciele, poręcze.
Wersioning: "METRIC _ vN'; wszelkie edycje → nowa wersja + backfill i changelog.
Warstwa semantyczna: jedno źródło prawdy dla BI/eksperymentów/przesyłek.
9) Bezpieczeństwo i dostęp
RLS/CLS: dostęp według roli (kraj/marka/osoba prawna), maskowanie PII.
Audyt: kto przesłał raport; kontrola wywozu (terminy, żetony).
Minimalizacja: agregaty emisji, a nie surowe dane PII.
10) Typowe kruszywa i wizualizacje
Produkt: lejki (krokowe), kohorty (heatmap), retencja D7/D30, ARPU/ARPPU, GGR/Net.
Finanse: P&L według hierarchii, czynniki wodospadu (most), struktura przychodów według regionu, dynamika G & A.
Operacje/ML: SLA, latency p95/p99, PR- AUC/Recall @ FPR ≤ x%, dryf mapy PSI-heatmap.
11) Paszport skonsolidowanego sprawozdania (wzór)
Kod/Wersja: „CONSOL _ PNL _ v3”
Cel: zarządzanie P&L według grupy marki, wielokrotność → waluta bazowa EUR
Zakres: wszystkie podmioty prawne grupy; metoda - pełna konsolidacja; KIK - zaznaczone
Źródło/warstwa: 'mart _ fin _ pnl _ v3' (na podstawie 'fact _ tx _ v2', 'dim _ legal', 'dim _ fx _ rates')
Ziarnistość: miesiąc (rollup z dnia)
Eliminacje: „intercompany = true” - wyłączony obrót wewnątrz grupy
SLO: T + 1 06:00 zamek; dostępność ≥ 99. 9%
Uzgodnienia - raport księgowy 'BK _ PNL _ T + 1', zmienność ≤ 0. 3%
Właściciele: Finance Analytics, Data Platform
Poręcze: stół FX nie starszy niż 24 godziny; transakcje obejmujące ≥ 99. 5%
12) Częste błędy i jak ich uniknąć
Ciche zmiany formuły: zawsze poprzez wersje i changelog.
Podwójne liczenie: Duplikat sprężyn/joynes - klucze sterujące i ziarno.
Strefy czasowe mieszania: scentralizowany kalendarz i pamięć UTC.
Niepoprawne wartości procentowe: Sumaryczny licznik/mianownik, a nie „średnia średnich”.
„Surowe” stawki: wyraźna data/źródło FX, spójna polityka zaokrąglania.
Brak eliminacji: obroty międzyzakładowe raporty skew.
Nieprzezroczysta świeżość: Zawsze pokaż „zaktualizowany N minut temu”.
13) Pseudo-SQL: Incremental Monthly Aggregate
sql
-- Recalculate only affected days/months
WITH changed_days AS (
SELECT DISTINCT DATE(event_time_utc) AS d
FROM fact_tx_delta -- new/modified per day
),
daily AS (
SELECT
DATE(event_time_utc) AS d,
brand, country,
SUM(net_revenue_eur) AS net_eur
FROM fact_tx
WHERE DATE(event_time_utc) IN (SELECT d FROM changed_days)
GROUP BY 1,2,3
)
MERGE INTO agg_month_brand_country m
USING (
SELECT DATE_TRUNC('month', d) AS month, brand, country, SUM(net_eur) AS net_eur
FROM daily
GROUP BY 1,2,3
) s
ON (m. month = s. month AND m. brand = s. brand AND m. country = s. country)
WHEN MATCHED THEN UPDATE SET m. net_eur = s. net_eur, m. updated_at = NOW()
WHEN NOT MATCHED THEN INSERT (month, brand, country, net_eur, updated_at)
VALUES (s. month, s. brand, s. country, s. net_eur, NOW());
14) Procesy i działanie
1. Projektowanie: cele/publiczność, mierniki, hierarchie, waluty/strefy czasowe.
2. Dane: umowy źródłowe, programy, testy jakości.
3. Budynek okna: obiekty semantyczne, zasady rollup, eliminacje.
4. Uzgodnienia: automatyczne raporty wariancji, bilety korekcyjne.
5. Wydanie: wersja, dokumentacja, szkolenie użytkownika.
6. Monitorowanie: świeżość, kompletność, duplikaty, czas reakcji, incydenty.
7. Przegląd: kwartalna weryfikacja definicji, mapowania, polityki FX.
15) Lista kontrolna sprawozdania skonsolidowanego
- Definicje metryczne i hierarchiczne udokumentowane warstwą semantyczną
- Tworzy się przeliczanie walut i strefy czasowe; pokazuje jednostki i datę kursu
- Wdrożono rewolucje wewnątrzgrupowe/eliminacje KIK (w stosownych przypadkach)
- Niezmienne i uzgodnienia ze źródłami odniesienia są przeprowadzane w tolerancjach
- Możliwe jest ponowne obliczenie przyrostowe i podział
- świeżość/dostępność SLO są ustawione; wyświetlane są statusy aktualizacji
- Maskowanie RLS/CLS i PII jest skonfigurowane; włączona kontrola eksportu
- Wersja/changelog i właściciele określone; miały incydenty w książce startowej
Razem
Agregacja i konsolidacja to nie tylko „GRUPA BY”, ale system całościowy: spójne definicje, prawidłowe rollupy, wielowarstwowe i kalendarzowe, eliminacje i pojednania, obserwowalność i SLO. Stosując się do opisanej architektury, zmieniasz heterogeniczne dane w niezawodne skarbce do zarządzania produktem, finansami i ryzykiem.