Como funciona a conferência de saldos, e o que ela deixa passar
Todo conversor desta categoria diz ser exato. Nenhum deles diz como, nem o que teria de ser verdade para que estivessem errados. Esta página diz as duas coisas, porque uma afirmação que não dá para conferir não vale nada quando os números vão para a contabilidade de alguém.
A ideia
Um extrato bancário carrega consigo a própria prova. Ele imprime um saldo inicial, um saldo final e, muitas vezes, um saldo acumulado ao lado de cada linha. Esses números vieram do livro-razão do banco, não da nossa leitura do PDF — de modo que são uma conferência independente de tudo o que foi lido. Se os nossos lançamentos e os saldos do banco não batem, a leitura está errada, e dá para saber disso sem nunca ter visto o original.
Duas conferências, escolhidas automaticamente
Saldo acumulado, linha por linha
Quando pelo menos 60% das linhas trazem um saldo, cada linha precisa satisfazer saldo anterior + valor = saldo desta linha. As linhas sem saldo impresso levam o total acumulado adiante, de modo que uma lacuna não desalinha as linhas seguintes. Cada linha é conferida de forma independente e, quando há divergência, a conta se ressincroniza com o saldo impresso: uma única linha errada não se propaga a ponto de virar uma página de alarmes falsos.
Do saldo inicial ao saldo final
Sem coluna de saldo — os extratos no estilo Chase são organizados por seção e não imprimem nenhuma — a conferência é saldo inicial + Σ(todos os valores) = saldo final. Mais fraca, porque é uma equação em vez de muitas, mas ainda pega uma linha perdida, duplicada ou mal lida, já que qualquer uma delas mexe no total.
Fonte: src/parse/reconcile.ts.
Os sinais são resolvidos, não adivinhados
Muitos extratos imprimem os valores sem sinal e deixam o sentido por conta de um cabeçalho de coluna ou de um título de seção. Adivinhar é como os conversores transformam em silêncio um depósito em um saque. Em vez disso, quando uma linha não passa na conferência mas passaria com o sinal invertido, o sinal é invertido — porque a coluna de saldo prova o sentido — e toda inversão é informada na saída. Uma correção sobre a qual você não é avisado é indistinguível de um erro.
O que a conferência não consegue detectar
Esta é a parte que as outras páginas deixam de fora. A conferência verifica totais, então todo erro que preserva o total sobrevive a ela:
- Dois valores trocados entre linhas. A soma não muda, então a cadeia continua batendo — enquanto dois lançamentos carregam o valor um do outro.
- Uma descrição colada na linha errada. As descrições não entram na aritmética em momento nenhum.
- Dois erros que se anulam. Uma linha lida 10,00 a mais e outra 10,00 a menos batem perfeitamente.
- Uma seção inteira pulada entre o último saldo e o saldo final, quando o extrato não imprime nenhum saldo final que ancore o fim.
- As datas. Só os valores são conciliados. Um formato de data mal lido joga cada lançamento no mês errado enquanto o dinheiro continua fechando — e é por isso que há um aviso separado quando a maioria das datas cai fora do período que o próprio extrato imprime. Essa rede precisa de um ponto de apoio: um extrato que não imprime período nenhum, e cujos dias caem todos no dia 12 ou antes, não deixa nada com que conferir o formato. Saber qual banco o emitiu é então a única coisa que decide se 05/03 é março ou maio.
- A moeda. Os números são conciliados; a unidade nunca é. Todo peso latino-americano é impresso como
$, então um extrato chileno ou mexicano lido como dólares dos Estados Unidos erra por um fator de cerca de mil em cada linha — e a cadeia fecha exatamente do mesmo jeito, porque nenhuma cifra foi alterada. Aqui também é o banco emissor que resolve, a não ser que o extrato digaUS$ouUSDcom todas as letras.
Nenhum desses casos é hipotético; são a razão pela qual a página diz a soma bate e não este arquivo está correto. A conferência eleva o piso mínimo. Ela não substitui uma pessoa que saiba o que estava no extrato.
Quando não bate
Nada é adivinhado e nada é escondido. A linha em que a cadeia se rompe é mostrada com o valor que lemos e o valor que a coluna de saldo implica, e você escolhe: ficar com a cifra da coluna de saldo, ou manter o que o extrato imprimiu e levar a diferença para a exportação. Enquanto a cadeia não bater de ponta a ponta, o arquivo não é chamado de verificado.
Extratos digitalizados são recusados
Um PDF com menos de 100 caracteres extraíveis por página não tem camada de texto — é uma fotografia de um extrato. Esses arquivos não são mais recusados de saída: o reconhecimento de caracteres é oferecido e só roda se você pedir, porque custa cerca de um segundo por página e lê os valores de uma imagem, não de uma camada de texto. A conciliação acima então se aplica ao resultado sem nenhuma mudança, e é exatamente por isso que oferecer isso se sustenta: um extrato reconhecido cuja cadeia fecha é prova, e um cuja cadeia não fecha aparece aqui e não nos seus livros. Dá para saber que tipo de arquivo você tem em dez segundos: abra o PDF e tente selecionar uma linha de texto.
Confira você mesmo
Tudo o que está acima é aritmética que você pode refazer numa planilha: some a coluna de valores, acrescente o saldo inicial e compare com o saldo final que o banco imprimiu. Se baterem, a conversão preservou o dinheiro. É essa a afirmação inteira — e ela é deliberadamente pequena o bastante para ser auditada.