Skip to main content

Reviewing and reconciling.

~6 min read · For anyone confirming an import before commit

What "reconciliation" means here

Reconciliation is a boring word for an important question: do the numbers I extracted match what the bank printed? For a checking account, the formula is:

opening balance
+ sum of all credits  (deposits, transfers in, interest)
− sum of all debits   (withdrawals, checks, fees, card purchases)
= closing balance

For a credit card:

previous balance
+ purchases + cash advances + fees + interest
− payments − credits  (refunds, statement credits)
= new balance

If the math works out to the cent against the closing / new balance the bank prints on the statement, reconciliation is OK. If it doesn't, something was missed, double-counted, or mis-signed.

For a longer explanation of why this matters, see the reconciliation guide.

The Review screen layout

Two panels side by side:

  • Left — Source PDF. The original PDF the bank gave you, rendered page-by-page. Source bbox highlights show CentProof which row each extracted transaction came from when you hover a transaction on the right.
  • Right — Extracted data. Account Summary panel at the top, Transactions table below. Reconciliation status at the top right.

At the bottom: Cancel, Commit, and (if reconciliation failed) Override & commit buttons.

The Account Summary panel

CentProof mirrors your bank's own summary block line-for-line, so the panel reads top-to-bottom the same way the PDF does. For Chase Total Checking that looks like:

Beginning Balance                $142,646.55
Deposits and Additions            +$6,532.56
Checks Paid                          −$0.00   (omitted when zero)
ATM & Debit Card Withdrawals      −$1,100.00
Electronic Withdrawals            −$4,019.79
Other Withdrawals                 −$3,000.00
Fees                                 −$0.00   (omitted when zero)
Ending Balance                   $145,159.32

For a credit card, the panel shows Previous Balance, Payments, Credits, Purchases, Cash Advances, Balance Transfers, Fees, Interest, and New Balance — whichever subset your bank prints that period. Lines with zero activity are omitted so the panel stays tight.

What this is FOR:auditing. The panel lets you check the totals against the printed statement without scrolling through every transaction. If the Deposits and Additions total matches your bank's number to the cent, you know CentProof extracted every deposit correctly. Same for each row.

Reconciliation status: OK / Failed / Pending

One of three states appears at the top right:

  • ✓ OK — opening + credits − debits = closing balance, to the cent. The data CentProof extracted is internally consistent with the math your bank printed. Click Commit.
  • ✗ Failed — the math is off. The status line shows the diff in dollars and cents (e.g. off by −$42.99). See the next section for what to do.
  • … Pending— temporary state while the parser is still running. You shouldn't see this for more than a second or two.

What to do when reconciliation fails

A failed reconciliation almost always means one of three things:

  1. A row got missed. The parser skipped a transaction (often because it was on the boundary between two pages or had unusual formatting). The diff equals the missing amount.
  2. A row got duplicated. The parser double-counted a row (rare — usually a column-bleed issue on tricky layouts). The diff equals the extra amount.
  3. A sign flip. A credit got read as a debit or vice versa. The diff is twice the affected amount.

Compare the Transactions table on the right to the statement on the left. Scroll through and look for the row that's missing or extra. If you find it: that's a parser bug worth reporting (email support@centproof.com with the redacted PDF; we'll ship a fix in the next maintenance release).

If you need to commit anyway(e.g. you've verified the data is good enough for your workflow even with a small unreconciled gap), click Override & commit. You'll be asked for a one-line reason — "parser missed 1 row of $42.99, reported to support" is a fine reason. The override and its reason are stored on the statement so you have an audit trail later.

Don't override blindly. The whole point of reconciliation is that you can trust the data downstream. If you override every time without investigating, the Search and Reports features build on data that might be wrong. Better to spend the 30 seconds finding the discrepancy.

Combined statements (multiple accounts)

Some banks (BoA Advantage Plus + Regular Savings, Wells Fargo combined) print multiple accounts in one PDF. The Review screen walks through them one at a time:

  • Top of the panel shows Account 1 of 2 → Account 2 of 2 progress.
  • Each account reconciles independently and gets its own Commit / Override action.
  • Duplicates are auto-skipped within the same PDF — if you already imported account 1 from a prior session, CentProof skips to account 2.
  • Cancel at any point and nothing is committed for that PDF.

Source-row highlighting

Hover any transaction row in the right-side table and CentProof highlights the exact line in the left-side PDF where it came from. The bbox highlight has a yellow tint with an orange border — easy to find at a glance even when the PDF page is small.

This is the "show your work" feature. Every transaction in CentProof can be traced back to the exact line on the exact page of the exact PDF it was extracted from. That trail survives commit and is reproducible forever via the encrypted PDF stored in the app data directory.

What happens when you click Commit

After Commit:

  1. CentProof writes the statement + all transactions to the local SQLite database.
  2. The PDF gets encrypted (AES-256-GCM with a key stored in macOS Keychain) and saved as a .bin blob in the app data directory.
  3. Existing correction rules (from any previous tagging you've done) auto-apply to the new rows. If you tagged "STARBUCKS" as a Coffee entity two months ago, every STARBUCKS row in this new statement is now tagged automatically.
  4. The AI suggestion phase runs in the background on any rows that aren't yet covered by a correction rule. (See Ask CentProof.)
  5. The Review screen closes and you land on the Transactions tab with the new rows visible.

Next: tag your first merchant

Entities, categories, and the "tag once, applies forever" workflow.

Tagging entities and categories →