No bank feed needed · the original PDF stays on your machine

Difficult statements in. Reconciled import files out.

Upload a client’s bank-statement PDF — scanned, password-protected or an awkward layout. AI extracts every transaction, the balance check tells you nothing is missing, and you download an accounting-ready CSV.

Free to try 5 statements free, no card Works from the PDF, no bank feed needed

The original never leaves your machine

The PDF opens in your browser. Only the pages you approve are processed.

Every statement is checked for balance

Opening balance plus movements must equal the closing balance, or we say so — including when a statement does not state one.

Rows trace back to the page

Click a transaction to see where it sits on the statement — and the rows we could not place are flagged.

See it in action

See exactly what happens after you drop in a statement.

Redact

Hide what the client would not want shared.

The PDF opens on your device. Black out names, account numbers or anything else before a single byte leaves the browser.

You choose every hidden area.

Statement.pdfOn device

Account holder

Account number

Home address

GUSTO PAYROLL6,412.55
ADOBE SYSTEMS59.99
CHECK #10422,300.00

Original PDF

Opens here. Never uploaded or stored.

Approved copy

Only blacked-out pages and text continue.

Review

Check only the rows we flagged.

Every row is read from the page and cross-checked against the text. Rows the model is unsure of, or could not find on the page, are flagged; the rest you skim.

Nothing is committed until you approve it.

Check before adding

Check transactions

Showing 3 of 44 rows

Search transactionsCommit 44 transactions

Use the blue source button to open the original statement page.

All rows 44Needs checking 3Uncategorized 1
DateTransactionCategoryAmountSource
01 Jul

ACH CREDIT NORTHWIND LLC INV 2207

Page 1 of 3

Client revenue+$10,250.00
05 Jul

GUSTO PAYROLL

Page 2 of 3

Payroll−$6,412.55
22 Jul

INTL PURCHASE FIGMA INC EUR 45.00

Page 2 of 3

OfficeSoftware−$50.57
Not found on the page — check the amount against the statement.Mark as checked Checked
Every row links to the page it came from.Nothing is committed until you approve.

Reconcile

Prove the statement balances.

Opening balance, deposits, withdrawals and closing balance have to agree, or you see the gap before you export. A statement that states only one balance is reported as Unknown, never as balanced.

A difference is shown, never hidden.

Opening

$12,486.32

Deposits

+$20,728.65

Withdrawals

−$16,573.08

Closing

$16,641.89

Balanced · difference $0.00

If it does not balance

Off by $148.90 · one row missing?

Export

Download rows you can import.

A clean CSV with debit and credit columns, a signed amount, category, account and the page each row came from. Filter a month, pick a statement, download exactly what is on screen.

Both the statement and the filtered ledger export.

Statement: meridian…07.pdf Download CSV
DateDescriptionDebitCreditCategory
01 JulACH CREDIT NORTHWIND LLC INV 220710,250.00Client revenue
05 JulGUSTO PAYROLL6,412.55Payroll
12 JulCHECK #10422,300.00Office
18 JulCHASE CARD SERVICES PAYMENT1,850.00Transfer
22 JulINTL PURCHASE FIGMA INC EUR 45.0050.57Software

Keep scrolling to continue

01Redact

Hide what the client would not want shared.

The PDF opens on your device. Black out names, account numbers or anything else before a single byte leaves the browser.

You choose every hidden area.

Redact in the app01/04

Why switch

Stop retyping statements.

Bank feeds miss banks, months and scanned documents. Clients send PDFs. Statement Compass turns the PDF you already have into rows you can import — checked against the statement’s own balances.

Retyping or a generic converter
Statement Compass
Retype rows or fix a mangled conversion
Extracted, then checked against the closing balance
Trust the total or count rows by hand
Balance reconciliation on every statement that states its balances
Search the PDF to verify one line
Rows link to their spot on the page; unplaced rows are flagged
Upload the whole PDF to someone else's server
The original stays in your browser

Privacy you can understand

You choose what leaves your device.

Black out anything you do not want to share. Only the pages and text left after your redactions continue, and you can clear your saved data whenever you want.

Private account storage

Your approved copy is kept private to your account.

Saved pages use a private storage bucket, per-user access rules and short-lived links. Delete them from Settings whenever you want.

What the AI receives

Your approved pages and text are sent to Anthropic’s Claude API to find transactions and suggest categories. Anthropic states that API data is not used to train its models.

Read the full privacy policy
  1. 01

    Your original stays here

    The PDF opens in your browser and stays on your device.

  2. 02

    You hide what is private

    Black out names, account numbers, or any other area you choose.

  3. 03

    Only the approved copy continues

    The blacked-out pages and text are sent to find transactions, then saved privately so source checks keep working.

  4. 04

    Clear it when you want

    Delete saved pages, statements and transactions from Settings at any time.

What you get

Reviewed, reconciled rows — ready to import.

Check the flagged rows, confirm the balance, download the CSV. Transactions, categories and every past statement stay a click away.

meridian-checking-2026-07.pdf

Download CSV

Transactions

44

Needs checking

3

Uncategorized

1

Reconciliation

Balanced

Reconciliation

Difference $0.00

Opening

12,486.32

Deposits

+20,728.65

Withdrawals

−16,573.08

Closing

16,641.89

DateTransactionCategoryAmountPage
01 Jul

ACH CREDIT NORTHWIND LLC INV 2207

Client revenue+$10,250.00Page 1
05 Jul

GUSTO PAYROLL

Payroll−$6,412.55Page 2
12 Jul

CHECK #1042

Office−$2,300.00Page 2
18 Jul

CHASE CARD SERVICES PAYMENT

Transfer
Transfer−$1,850.00Page 3
22 Jul

INTL PURCHASE FIGMA INC EUR 45.00

Not found on the page

Software−$50.57—
Commit 44 transactions

Scroll to explore · 1/4

Outcome 01

Handles the difficult ones

Scanned statements, password-protected files and unusual layouts, including banks that feeds do not reach.

Simple pricing

Pay per statement. Stop when you stop.

Five statements free, no card. Then choose how many statements a month you need; the price is always shown before checkout.

Free

For building the habit

$0

  • 5 statements free · up to 10 pages each
  • Reconciliation, source tracing and CSV export
  • Transaction review and categories
  • No card required
Create a free account

Pro

Per statement

For bookkeepers and firms

  • Choose 5–200 statements a month · up to 30 pages each
  • Everything in Free
  • Change your quantity any time from billing
  • Founding-customer price locked for early accounts
Create an account to upgrade

Your privacy questions, answered plainly.

Does it connect to my clients' banks?

No. You upload a statement PDF you already have. Statement Compass never asks for a bank login.

What leaves my machine?

The original PDF stays in your browser. The page images and text you approve are sent for extraction and stored privately to your account.

Who processes the approved pages?

Anthropic's API, under its commercial terms — no training on API data, 30-day default retention. See the sub-processor list.

Can I redact first?

Yes. Draw a box over anything and it is blacked out in the pixels before anything is sent. It is optional and you can turn the reminder off.

Is it accurate?

Every statement that states its opening and closing balances is checked against them, rows the model is unsure of are flagged, and rows link back to their place on the page, with the ones we could not place flagged. You verify before you import — we do not claim 100%.

Can I delete my data?

Yes. Settings clears your statements, transactions and saved page images whenever you want.

Try it with the statement that gave you trouble.

Scanned, password-protected, unusual layout — upload it, check the balance, download the CSV.

Try it with a statement