Agregação e relatórios consolidados
Agregação e relatórios consolidados
A agregação é a conversão de registros detalhados em números resumidos para os cortes e períodos desejados. A consolidação é a combinação de unidades de diferentes fontes/entidades/produtos em um único relatório com ajustes (moeda, política de contabilidade, elisão). A seguir, uma abordagem de sistema, desde o projeto de vitrines até a operação de relatórios.
1) Tarefas e tipos de consolidação
Operação/alimentos: DAU/WAU/MAU, conversões, receitas por países/canais/plataformas.
Financeiro (por exemplo. e regulatório): P&L, Cash Flow, Balanço Sheet, GGR/Net Gaming Revenue, impostos, relatórios de direito.
Risco/complicação: antifrode, indicadores RG, SLA/disponibilidade, à deriva de dados/modelos.
Estratégico: conjunto de KPI por holding, portfólio de marcas, regiões.
2) Arquitetura de camada de agregação
Camadas de dados: 'raw' 'staging' n' core '(factos/medidas) ' marts' (agregados sob relatórios).
Camada semântica: Definições de métricas, calendário, divisas, regras de rolo.
Grãos e time-grain: 'event', 'user _ day', 'txn', 'brand _ country _ day' → mais rolos até semana/mês/trimestre.
Identidades: chaves estáveis (user/brand/legal _ entity), tabelas de correspondência (maping).
3) Rollaps e hierarquia
Hierarquias de dimensões: 'Jogo Categoria Provedor', 'Canal Campanha', 'Cidade Região País Cluster'.
As regras de somação são aditivas (soma), semidesditivas (snapshot - médio/último período), não-supérfluos (coeficientes/juros).
Deduplicação: usuários únicos e eventos de grão; evite a dupla contabilidade na fusão de fontes.
4) Multivaltos, temporizões, calendário
Tempo: guarde 'event _ time _ utc' e cortes locais; calendário de feriados/dias escravos.
Moeda: guarde o valor «cru» + 'base _ cky' na taxa de câmbio da data da operação (ou a taxa média do período com reserva).
Normalização: mostre unidades/moeda/data de curso explícitas.
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) Consolidação por origem/direito
Maping de planos de contas: CoA único (Chart of Accounts) + maping de planos locais.
Políticas contábeis: IFRS/GAAP/regras fiscais → camada de transformações (por exemplo, receita bruta/neta, reconhecimento de bônus/comissões).
Elimitação de rotação interna: exclusão de transações entre advogados da holding.
Métodos de consolidação: contabilidade total, participativa (proportionate) (equity method).
Minoritários: atribuição de participação de acionistas descontrolados (NCI).
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) Qualidade e confecção (reconciação)
Comprimidos de origem: soma por fonte = soma na vitrine (com acesso a curso/hora).
Invariantes: 'DAU ≤ MAU', soma diária = total mensal (para métricas aditivas).
Controle de totalidade: NULL, duplicação, atraso recente.
Relatório de discrepância: lista de inconsistências e etapas de resolução.
7) Desempenho e SLO
SLO frescura: unidades operacionais - liga ≤ 15 min; diurno - até 06:00 locais; mensais - até T + 1/T + 3.
Otimização: pré-agregações, recontagens incorporadas, partilhamento (por data/marca/país), dinheiro para cortes populares.
Restrições UI: ≤ 12 categorias por cronograma; paginação de tabelas; lazy-load.
8) Gerenciamento de definições e versões
Dicionário de métricas: código, definição, fórmula, origem, unidades, proprietários, guardrails.
Versionização: 'METRIC_vN'; qualquer edição → nova versão + backfill e changelog.
Camada semântica: uma fonte de verdade para BI/experimentos/embarques.
9) Segurança e acesso
RLS/CLS: acesso por papéis (país/marca/direito), camuflagem PII.
Auditoria: quem descarregou e qual relatório; controle de exportação (prazos, tokens).
Minimizar: emitir unidades, não dados PII crus.
10) Equipamentos e visualização típicos
Produto: vórtices (step-bars), cômodos (heatmap), retenção D7/D30, ARPU/ARPU, GGR/Net.
Finanças: P&L em hierarquia, fatores de cachoeira (bridge), estrutura de receita por região, dinâmica G & A.
Operações/ML: SLA, latency p95/p99, PR- AUC/Recall@FPR≤x%, PSI-heatmap à deriva.
11) Passaporte de relatório consolidado (modelo)
Código/versão: 'CONSOL _ PNL _ v3'
Destino: P&L gerencial por grupo de marcas, multivaluto → moeda básica EUR
Revestimento: todos os advogados do grupo; método - consolidação total; NCI - Destaque
Origem/camada: 'mart _ fim _ pnl _ v3' (baseado em 'fact _ tx _ v2', 'dim _ legal', 'dim _ fx _ rates')
Granularidade: mês (roll do dia)
Elimitações: 'intercompany = true' - Excluídos roteiros intra-grupais
SLO: T + 1 06:00 lek; disponibilidade ≥ 99. 9%
Relatório de contabilidade 'BK _ PNL _ T + 1', variação ≤ 0. 3%
Proprietários: Finance Analytics, Data Platford
Guardrails: tabela FX no máximo 24 h; coverage transações ≥ 99. 5%
12) Erros frequentes e como evitá-los
Mudanças silenciosas de fórmulas, sempre através de versões e changelog.
Dupla contabilidade: duplas de fontes/joynes - controle chaves e grãos.
A mistura de áreas temporais: calendário centralizado e armazenamento UTC.
Porcentagem errada: agregue o numerador/denominador em vez de «média».
Cursos crus: data/origem explícita FX, política consistente de arredondamentos.
Falta de elisões: os roteiros entre grupos distorcem os relatórios.
Frescura opaca: mostre sempre «atualizado há um minuto».
13) Pseudo-SQL: unidade mensal incorporativa
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) Processos e operações
1. Design: objetivos/audiência, métricas, hierarquia, moeda/temporizações.
2. Os dados são contratos de fontes, esquemas, testes de qualidade.
3. Construção de vitrines: objetos semânticos, regras de rolo, elisões.
4. Relatórios automáticos de discrepância, tíquetes de correção.
5. Versão, documentação, treinamento dos usuários.
6. Monitoramento: frescura, completeness, duplicados, tempo de resposta, incidentes.
7. Revisão, verificação trimestral de definições, mappings, políticas FX.
15) Folha de cheque antes do relatório consolidado
- Definições de métricas e hierarquias documentadas em camada semântica
- A conversão das moedas e os temporizões foram configurados; mostra as unidades e a data do curso
- Implementação de elisões de rotação/NCI (se aplicável)
- Os invariantes e os cruzamentos com fontes arbitrais são aplicados em permissões
- Contagem e partilha incorporadas
- SLO de frescura/disponibilidade definidos; estados de atualização são exibidos
- RLS/CLS e camuflagem PII configurados; auditoria de exportação incluída
- Versão/changelog e proprietários indicados; há incidentes de runbook
Resultado
Agregação e consolidação não são apenas «GROUP BY», mas sim um sistema holístico: definições alinhadas, rolos corretos, multivaltos e calendários, elisões e acréscimos, observabilidade e SLO. Seguindo a arquitetura descrita, você transforma dados heterogéneos em conjuntos confiáveis para gerenciar produtos, finanças e riscos.