O contexto
Uma rede varejista com 38 lojas fechava o mês financeiro em 12 dias úteis. O motivo não era falta de gente nem de ferramenta: o ERP estava lá, os extratos estavam lá. O problema era o caminho entre eles.
Todo mês, a equipe financeira baixava extratos de 4 bancos e relatórios de 3 adquirentes de cartão, colava tudo em planilhas e conferia lançamento por lançamento contra o ERP. Uma diferença de centavos numa taxa de antecipação podia consumir uma tarde inteira.
- 160 horas de trabalho manual por mês só em conciliação
- Divergências descobertas semanas depois, quando já era caro corrigir
- Nenhum histórico de quem conferiu o quê, e por quê
O fechamento não atrasava porque a equipe era lenta. Atrasava porque cada mês começava do zero.
Diagnóstico: onde o tempo ia embora
No diagnóstico, acompanhamos dois fechamentos completos e cronometramos cada etapa. O resultado mudou a conversa: a maior parte do tempo não estava na conferência em si, mas em preparar os dados para conferir.
| Etapa | Horas/mês | % do total |
|---|---|---|
| Baixar e padronizar extratos | 58 | 36% |
| Cruzar lançamentos com o ERP | 47 | 29% |
| Investigar divergências | 41 | 26% |
| Montar relatórios do fechamento | 14 | 9% |
Isso definiu a meta antes de qualquer linha de código: fechar o mês em até 4 dias úteis, medido pelo tempo entre o último dia do mês e a aprovação do fechamento.
Blueprint: a arquitetura da solução
A proposta foi tirar das pessoas o trabalho repetitivo e deixar com elas só o que exige julgamento: as exceções.
flowchart TB
B1[Extratos bancários] --> I[Ingestão e padronização diária]
B2[Relatórios das adquirentes] --> I
E1[(ERP)] --> M
I --> M{Motor de conciliação}
M -->|conciliado| R[(Base conciliada)]
M -->|divergente| F[Fila de exceções]
F -->|analista revisa| R
R --> D[Painel do fechamento]Três decisões guiaram o desenho:
- Ingestão diária, não mensal. Conciliar todo dia transforma o fechamento em uma revisão, não em um mutirão.
- Regras explícitas e versionadas. Cada critério de conciliação é uma regra legível, com histórico de alterações.
- Exceção com contexto. Quando algo não bate, o analista recebe o lançamento, o candidato mais provável e o motivo da divergência.
Construção: entregas incrementais
O projeto foi dividido em entregas que já geravam valor sozinhas. A primeira, a ingestão automática dos extratos, eliminou 58 horas de trabalho por mês antes mesmo de o motor de conciliação existir.
gantt title Plano de entregas dateFormat YYYY-MM-DD axisFormat %d/%m section Dados Ingestão de extratos :done, a1, 2026-03-02, 14d Padronização e validações :done, a2, after a1, 10d section Conciliação Motor de regras :done, b1, after a2, 21d Fila de exceções :done, b2, after b1, 10d section Gestão Painel do fechamento :done, c1, after b1, 14d Operação assistida :done, c2, after b2, 21d
O motor de regras
As regras de conciliação seguem uma ordem do mais restritivo para o mais flexível. Um lançamento só cai na fila de exceções depois de passar por todas elas:
REGRAS = [
regra("valor_e_data_exatos", tolerancia_valor=0.00, tolerancia_dias=0),
regra("taxa_adquirente", tolerancia_valor=0.035, tolerancia_dias=2),
regra("agrupamento_por_lote", agrupar_por="lote_liquidacao"),
]
def conciliar(lancamento, candidatos):
for r in REGRAS:
par = r.encontrar(lancamento, candidatos)
if par:
return Conciliado(lancamento, par, regra=r.nome)
return Excecao(lancamento, sugestao=melhor_candidato(lancamento, candidatos))
Guardar qual regra conciliou cada lançamento foi o que deu segurança à equipe para confiar no processo: qualquer resultado pode ser auditado.
Como uma divergência é tratada
sequenceDiagram participant M as Motor participant F as Fila de exceções participant A as Analista participant E as ERP M->>F: Lançamento sem par + melhor sugestão F->>A: Notificação com contexto A->>F: Aprova sugestão ou ajusta F->>E: Registra ajuste com justificativa F->>M: Nova regra sugerida (se recorrente)
Operação e evolução
Nas primeiras semanas, a taxa de conciliação automática ficou em 81%. Analisando a fila de exceções, encontramos padrões que viraram novas regras. Em dois meses, ela passou de 96%.
Resultados
| Indicador | Antes | Depois |
|---|---|---|
| Fechamento mensal | 12 dias úteis | 3 dias úteis |
| Horas manuais em conciliação | 160 h/mês | 22 h/mês |
| Conciliação automática | 0% | 96% |
| Tempo para detectar divergência | ~20 dias | 1 dia |
A meta era 4 dias; o fechamento estabilizou em 3. As horas liberadas foram redirecionadas para análise de margem por loja, um trabalho que antes nunca cabia no mês.
O que levamos deste projeto
- Meça antes de automatizar. O cronômetro do diagnóstico mostrou que o gargalo era a preparação dos dados, não a conferência.
- Entregue em fatias. A primeira entrega pagou parte do projeto antes da metade do caminho.
- Desenhe para a exceção. Automatizar 96% só funciona se os 4% restantes chegarem fáceis de resolver.