PennyTie

PennyTie › Guides › How it checks

How PennyTie checks your numbers

6 min readUpdated November 2026Method page

After reading a statement, PennyTie does arithmetic on what it found and tells you whether the numbers agree. This page explains each check, and is just as clear about what a passing result does not prove.

The short answer

  • The core check: opening balance + credits − debits must equal the closing balance printed on the statement, to the cent.
  • Three outcomes: verified, requires review, or unsupported. PennyTie never guesses to force a pass.
  • A pass means internal consistency only. It does not prove the statement is genuine or that transactions are labeled correctly.

See a check on the sample  Free up to 5 pages. Nothing is uploaded.

The core formula

Every statement obeys one rule: what you started with, plus money in, minus money out, is what you ended with. PennyTie reads the opening balance, the closing balance and every transaction, then computes the left side and compares it with the closing balance printed on the page.

Example A: the numbers agree Opening balance1,000.00 + Credits500.00 − Debits300.00 = Computed closing1,200.00 Closing on statement1,200.00 Difference 0.00 → verified Example B: they do not Opening balance1,000.00 + Credits500.00 − Debits300.00 = Computed closing1,200.00 Closing on statement1,250.00 Difference −50.00 → requires review Made-up numbers for illustration.
Both examples use invented figures. In B, a row may have been missed or misread, or the statement may contain a figure PennyTie could not see. The difference points you to where to look.

When the difference is not zero, this guide shows how to find the cause from the size of the gap.

Cent-exact math with BigInt

Amounts are converted to whole numbers of cents and added as BigInt integers. Ordinary decimal numbers in JavaScript are floating point, which can produce errors like 0.1 + 0.2 = 0.30000000000000004. Integer cents avoid that, so a difference of 0.00 really is zero, not "zero within rounding".

What the three results mean

ResultWhat it meansWhat to do
verifiedThe balance formula ties to 0.00, the other checks that apply pass, and no row is flaggedStill skim the rows; see the limits below
requires reviewA check failed, a balance is missing, or a row is flaggedLook at the flagged rows and the difference, fix or confirm, then export
unsupportedThe statement could not be read in a way PennyTie trustsConvert another way; for example, scanned images are not supported

If you add or edit rows yourself, the report says so.

The other checks

Running balance chain

Where the statement prints a balance on each row, PennyTie checks that each row follows from the one before it: previous balance plus this row's amount equals this row's balance. The result reports how many rows are consistent, such as 41 of 41. This catches a dropped or misread row even when the totals happen to cancel.

Matching the statement's own totals

Many statements print summary lines such as total deposits and total withdrawals. When they are stated unambiguously, PennyTie compares them with the sums of the rows it read. A mismatch is reported.

Chaining several statements

When you merge multiple statements, PennyTie checks that each closing balance equals the next statement's opening balance, and that periods do not overlap. If it cannot confirm the link, it says so rather than passing silently.

Statement 1opening 1,000.00closing 1,200.00 Statement 2opening 1,200.00closing 1,450.00 Statement 3opening 1,450.00closing 1,380.00 matchmatch Made-up numbers for illustration.
A chain is consistent when each link matches to the cent.

Credit card sign rules

On a card statement the balance is an amount you owe, so the signs flip compared with a bank account: purchases increase the balance owed, and payments and credits reduce it. Some card statements mark credits with CR and leave purchases unmarked; others group everything under headings like Payments and Credits and Purchases, with every amount printed positive. PennyTie tries the bank convention and the card convention and keeps the one that ties to the closing balance. When it uses the card convention, it shows a note that amounts are changes to the balance owed (purchases positive, payments and credits negative). If neither ties, the result is requires review. See credit card statement PDF to CSV.

What a passing check does not mean

Verified is not authentic

The check is internal consistency. It does not prove the statement is genuine, came from your bank, or is unaltered. It does not prove each transaction is categorized or described correctly. Do not use PennyTie to authenticate a document.

  • Offsetting errors: two mistakes that cancel each other can still tie. The running balance check catches many of these, but only where the statement prints row balances.
  • Your judgment still matters: skim descriptions, dates and signs before importing into your books.

How well tested is it?

PennyTie has an automatic test run (tests/run.mjs) over 29 fictional statement files. That shows the logic behaves as designed on those layouts. Verification on real banks' PDFs is still limited, and layouts vary a lot between banks. When a statement cannot be read confidently, PennyTie does not force an answer: it marks the result requires review or unsupported so you can see the problem. Found a statement that fails? Email pennytie.support@gmail.com (please remove personal details first).

Watch the checks run

Drop a text-based PDF and read the check list under the result.

Open PennyTie

Questions

What does verified mean in PennyTie?

Opening balance plus credits minus debits equals the printed closing balance, and the other checks that apply also pass. It means the numbers are internally consistent.

Does verified mean the statement is genuine?

No. It cannot tell whether a statement is authentic or unaltered, and it does not confirm transactions are categorized correctly.

Why BigInt cents?

Whole-number cents make sums exact. Floating-point decimals can introduce tiny rounding errors.

What if a statement cannot be read?

PennyTie does not guess. It marks the result requires review or unsupported.

How well tested is it?

Automatic tests run on 29 fictional statement files. Verification against real banks' PDFs is still limited.

Keep going