A diretoria parou de abrir relatório para descobrir o que saiu do padrão
Margem, ruptura, fluxo de clientes, quebra e compras viviam em relatórios separados. Para saber se o dia tinha sido normal, alguém precisava abrir cada um, comparar com a semana anterior e decidir de cabeça o que merecia atenção. O que não era olhado no dia virava surpresa no fim do mês.
- 31
- regras de alerta ativas, rodando todo dia de manhã sobre os dados do ERP
- 4,2x
- era quanto a regra antiga de ruptura oscilava só por causa do atraso na carga de dados
- 45 s
- de limite por consulta, depois de uma aba ficar presa em 'carregando' para sempre
DIAGNÓSTICO OPERACIONAL
Como era antes
A pergunta da diretoria toda manhã era simples: o dia de ontem foi normal? Para responder, alguém abria o relatório de vendas, o de margem, o de ruptura, o de quebra e o de compras, comparava cada um com a semana anterior e decidia de cabeça o que merecia atenção.
Esse trabalho dependia de quem estava olhando e de quanto tempo sobrava no dia. Margem que caía dois pontos numa terça passava despercebida. Ruptura em produto importante só aparecia quando o cliente reclamava. E a reunião começava pelo número que alguém lembrou de trazer, não pelo que mais importava.
ENGENHARIA E ARQUITETURA
O que eu fiz
Um motor de alertas diários e um painel executivo em cima dele. Todo dia de manhã, 31 regras ativas leem os dados do ERP e respondem uma pergunta cada: a margem ficou abaixo do padrão do dia da semana? O fluxo de clientes ou o ticket médio caíram? Quais produtos de curva A e B estão sem estoque? Algum setor da produção quebrou acima do normal? Entrou compra ou transferência sem necessidade?
Três decisões de desenho fazem o painel funcionar:
- Cada alerta tem dono. Diretoria, Compras ou Controladoria. O que é estrutural fica no painel de quem cuida, e a diretoria vê só os três mais relevantes do dia.
- O limiar é parâmetro, não código. Calibrar uma regra é mudar um número na tabela, sem novo deploy e sem depender de TI.
- Cada alerta explica por que disparou. O valor apurado e o limite aparecem lado a lado, na mesma unidade. Se a conta não fecha na tela, ninguém confia no resto do relatório.
RESULTADOS MENSURÁVEIS
O que mudou
A diretoria passou a começar o dia por uma lista curta do que saiu do padrão, com o responsável já nomeado, em vez de abrir relatório por relatório. Os benefícios práticos:
- Um lugar só. Vendas, margem, ruptura, quebra e compras na mesma tela, atualizados antes da primeira reunião.
- Prioridade pronta. O top 3 do dia diz por onde começar; o resto continua visível para quem é dono do assunto.
- Confiança no número. Toda mudança de regra passa por um teste contra o histórico antes de entrar no ar, para garantir que o alerta só mude quando a regra de fato mudou.
- Autonomia do time. Ajustar sensibilidade de um alerta virou tarefa de quem usa, não chamado para desenvolvedor.
O que ainda não está medido: quanto tempo de análise isso economizou por semana e quantas decisões mudaram por causa de um alerta. O painel é usado todo dia; o efeito dele em resultado ainda precisa de uma janela maior. Até lá, o caso fica como está: exposto, não concluído.
DINÂMICA DE OPERAÇÃO
Uma coisa que eu descobri tarde, e você descobriria também
O alerta de ruptura media o atraso do sistema, não a falta de produto.
A regra antiga classificava a gravidade da ruptura pelos dias sem venda. Só que a carga da madrugada muitas vezes rodava antes de o ERP consolidar as vendas do dia anterior. Nesses dias, todo produto parecia estar um dia a mais sem vender, a gravidade subia para todo mundo e o alerta disparava. Nos dias em que a carga chegava completa, ele ficava quieto.
Resultado: a contagem oscilava 4,2 vezes governada pela carga de dados, e o limiar tinha sido calibrado justamente sobre os dias ruins. A regra estava invertida. A correção foi trocar o critério por estoque zerado de verdade, que não depende da venda do dia anterior, e ampliar o universo para curvas A e B. A contagem ficou estável, com ou sem atraso na carga.
Uma segunda lição, menor e do mesmo tipo: todo pedido do painel ganhou um limite de 45 segundos. Durante uma manutenção do banco, uma consulta parou de responder sem dar erro, e a aba ficou girando para sempre. Sem prazo máximo, “sem resposta” e “demorando” viram a mesma coisa na tela.
O QUE EU APRENDI
Um alerta calibrado sobre dado quebrado aprende o defeito. A regra antiga de ruptura disparava justamente nos dias em que a carga da noite não tinha trazido as vendas do dia anterior: media o atraso do sistema, não a falta de produto. Antes de ajustar qualquer limiar, a primeira pergunta passou a ser se o dado de origem está são.
OUTROS PROJETOS DA MESMA DOR