CRM, faturamento, mídia e ERP
Grão declarado, regras de negócio e colunas aditivas
Uma gold por painel, com data da carga
BI, portal e agente de IA lendo a mesma tabela
O que resolve
- O dashboard se atualiza depois de cada carga, sem ninguém exportar CSV.
- O número do painel bate com o sistema de origem e com o relatório que ele substitui.
- Todo mundo vê a data da última atualização e sabe se o número está velho.
Perguntas de negócio que responde
Faça estas perguntas ao seu agente quando o caso estiver pronto.
O que você precisa
- As fontes conectadas na Nekt (CRM, faturamento, mídia, ERP)
- A lista de perguntas que o painel responde e o relatório atual de referência
- A ferramenta de BI ou o destino do portal
O que você recebe
- Uma tabela gold por painel, com grão no nome e regras aplicadas
- Colunas aditivas para o BI recalcular taxas no recorte escolhido
- Um cartão de frescor com a data da última carga de cada fonte
- Um teste de paridade com o relatório antigo ou o sistema de origem
Onde ativar
Looker Studio, Power BI ou Metabase lendo a gold, com taxas como campos calculados de soma sobre soma.
Reverse ETL para Postgres ou Supabase, com a tabela como contrato de carga do app.
Lê a mesma gold e responde com o número do painel.
As transformações são diretas. O trabalho é fechar as definições com quem usa o painel e provar a paridade com o relatório atual antes de desligá-lo. O detalhado traz as regras de negócio, as armadilhas e o teste de aceitação. Ou mande tudo direto para o seu agente com o MCP da Nekt.
O relatório é exportado do CRM para uma planilha toda segunda e o cálculo vive em fórmulas e campos calculados do BI. Quando alguém muda o filtro, o total não fecha. Quando a ingestão para, o painel continua mostrando o número velho sem aviso. Quando o relatório muda de ferramenta, o número muda junto e ninguém sabe qual está certo.
Como costuma ser feito, e a regra
Cada linha é um erro que já aconteceu na prática.
Cada painel lê uma tabela gold com grão único, escrito no nome e numa frase da descrição ('uma linha por anúncio por dia'). Tabela com nome mensal não recebe dado diário. A chave de atualização é o próprio grão: chave diferente do grão duplica linhas em silêncio.
CTR, CPC, CPM, ticket médio, taxa de conversão e custo por resultado guardados por linha são médias e não somam. A gold entrega as colunas aditivas (investimento, cliques, impressões, receita, quantidade) e o BI recalcula a taxa como soma sobre soma no recorte filtrado. Taxa sem denominador é nula, não zero.
Se a gold traz uma linha de total (todas as regiões, todos os canais), ela vem marcada e nunca é somada às linhas de detalhe. Na dúvida, deixe o total para o BI.
Seguidores, alcance deduplicado de vida inteira, saldo e estoque são retratos. Quando aparecem repetidos em todas as linhas de data, não somam: o painel usa o último valor do período. Recortes em formato longo (idade, gênero, posicionamento, dispositivo) são filtrados um tipo de recorte por vez, ou o total sai multiplicado.
Cada métrica tem a sua data de referência escrita: lead pela data de criação, venda pela data de ganho, receita pela data de pagamento ou de competência. O período é fechado e no fuso local, e o mês corrente aparece rotulado como parcial.
Ao migrar de planilha, Power BI, Qlik ou outro BI, reproduza os nomes e os números do relatório atual. Medida que o BI calculava com média ponderada por linhas de histórico precisa vir com o peso na gold. Compare mês fechado contra mês fechado e só depois desligue o antigo. A partir daí, a gold é a fonte canônica e outras fontes são conferência.
Ingestão que para não gera erro, só números parados. A gold carrega a data da última carga de cada fonte (a partir de _nekt_sync_at, convertida para o fuso local) e o painel mostra esse cartão. Para fontes de volume diário, um alerta de completude compara o dia com o pico recente, por exemplo menos de 70% das lojas com venda.
A gold roda depois que a fonte termina, por gatilho de evento. Agendar num horário fixo cria painel com metade do dado em dia de atraso, e gatilho manual é esquecido.
Um painel por unidade, serviço ou cliente não justifica uma transformação por botão. Uma gold com a dimensão (unidade, serviço, cliente) e o filtro no BI substitui dezenas de cópias quase iguais, que divergem com o tempo.
Alguns conectores de BI quebram com timestamp: entregue data como data e, se preciso, timestamp como texto. Destinos Postgres podem reinterpretar meia-noite UTC no fuso local e jogar a venda para o dia anterior: grave a data comercial como data, já na gold.
Como o BI agrega cada tipo de coluna
A gold entrega o tipo certo; o painel só aplica a agregação.
Definições
Armadilhas que já aconteceram
O painel mostrava a média do CTR diário por anúncio e o número não batia com o gerenciador da plataforma.
Entregue cliques e impressões e recalcule no BI.
Uma fonte parou sem erro. O mês aparecia com cerca de um quarto dos lançamentos reais e o relatório de cliente herdou o número velho.
Cartão de frescor no painel e alerta de completude.
Cada botão do dashboard tinha a sua transformação quase igual. Uma correção de regra precisou ser repetida em todas e algumas ficaram para trás.
Uma gold parametrizada pela dimensão.
O destino Postgres reinterpretou meia-noite UTC no fuso local e as vendas de cada dia caíram no dia anterior.
Grave a data comercial como data na gold.
O painel somava o número de seguidores repetido em todas as linhas de data, e o total do mês saía multiplicado pelos dias.
Retrato usa o último valor do período.
O BI antigo calculava médias ponderadas por linhas de histórico e a nova tabela fazia média simples por registro. Os dois números circularam juntos.
Traga o peso para a gold e documente qual versão é a oficial.
Teste de aceitação
O caso está pronto quando todos os itens passam.
- Para um mês fechado, cada métrica do painel bate com o relatório de referência (diferença abaixo de 1%).
- A tabela gold tem exatamente uma linha por valor do grão declarado, sem chave duplicada.
- Trocar o recorte do painel (período, unidade, canal) mantém cada taxa igual à soma sobre soma das colunas aditivas.
- O cartão de frescor mostra a mesma data da última carga da fonte, e com a fonte parada o alerta dispara no dia seguinte.
Pacote para o agente
Cole no Claude, ChatGPT ou outro cliente com o MCP da Nekt conectado.
Painéis e tabelas gold de métricas - O número oficial de cada painel vem da tabela gold dele: <painel> = <tabela>. Silver, raw e o próprio BI são conferência, não fonte. - Grão de cada tabela: <tabela>: uma linha por <grão>. - Taxas (CTR, CPC, CPM, ticket médio, conversão, custo por resultado) não se somam nem se tira média: soma do numerador / soma do denominador no recorte. Denominador zero = nulo. - Retratos (seguidores, saldo, estoque, alcance de vida inteira) usam o último valor do período, nunca a soma. - Linhas marcadas como total nunca se somam às linhas de detalhe. - Data oficial: lead = <data de criação>; venda = <data de ganho>; receita = <data de pagamento ou competência>. - Mês corrente é parcial e vem rotulado. Comparações usam períodos fechados de mesmo tamanho. - Toda resposta traz a data da última carga da fonte. Se a carga tiver mais de <n> horas, avise que o número pode estar desatualizado. Exceções por cliente: - <cliente>: o painel <nome> reproduz o relatório <legado>; a medida <x> é média ponderada por <peso>. - <cliente>: a unidade <código> é matriz sem venda direta; ausência de linhas não é erro.
Construa no meu workspace Nekt o caso "Relatórios e dashboards automáticos" seguindo as regras em https://academy.nekt.com/casos/relatorios-dashboards.md. 1) Encontre as tabelas de origem e confirme as colunas usadas pelas regras. 2) Crie uma transformação no grão indicado aplicando todas as regras. 3) Rode o teste de aceitação e me mostre o resultado de cada item. 4) Crie o context document do caso no workspace, com as exceções dos meus clientes em aberto para eu preencher.
Variações
Reproduzir nomes e números do Qlik, Power BI ou planilha antes do corte, com teste de paridade por mês fechado.
Filtro por cliente ou uma tabela por cliente, sem dado pessoal, enviada para o app do cliente.
Abas automáticas escritas só pela rotina, com as abas manuais preservadas.