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:

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.