Como era antes
Nenhuma leitura diária fechada da loja existia. Abria-se o relatório por departamento do ERP avulso, quando alguém lembrava, sem série histórica e sem cupom, curva ou ruptura no mesmo lugar. Não havia processo manual a substituir — o ganho aqui não é de tempo, é de decisão.
O que eu fiz
Ao medir o primeiro dia para o relatório de abertura, o número não bateu. A camada analítica que alimentava os painéis mostrava 17,8% do valor que o transacional do ERP registrava para o mesmo domingo.
Três fontes diferentes concordavam entre si e erravam juntas — todas bebem do mesmo sync. Uma validação cruzada entre elas devolveria um falso OK. O que fechou o diagnóstico foi a curva por hora: a fonte analítica tinha aproximadamente o mesmo punhado de cupons em toda hora do dia, uma amostra uniforme de cerca de 15%. Isso não é corte de horário, é carga parcial.
A consequência virou decisão de arquitetura: a visão diária lê a camada transacional do ERP, não o consolidado. Fecha ao centavo no mesmo dia e não depende do sync consolidar.
O que mudou
Ao escalar para o mês inteiro eu conferi a soma das linhas contra o total e achei mais dois defeitos meus, antes de alguém usar o número:
- A consulta era dirigida pela venda, então departamento com estoque e sem venda no dia sumia da linha e continuava no total.
- Um
INNER JOINna hierarquia descartava em silêncio 254 produtos sem subgrupo cadastrado. Viraram uma linha explícita de "sem departamento" — a lacuna de cadastro passou a ser visível e corrigível na origem.
O selo de integridade também mudou de nome. Era "bloquear — dia parcial" e virou "parcial — publicar com a ressalva", porque a versão anterior já tinha feito o pior domingo do mês desaparecer do relatório. Dado suspeito se anota; não se suprime.