Drop last year's bank statements, ledgers and trial balance. In seconds you'll see what's machine-readable, what needs a better copy — and statements come back as verified, typed spreadsheets.
Files: PDF (born-digital or scanned), Excel (.xlsx — every sheet is examined), images (PNG/JPEG), and ZIP bundles — each supported file inside a ZIP gets its own report, exactly as if dropped individually (up to 20 members; junk files skipped). Up to 10 files per drop, 25 MB each.
Ageing reports it verifies: receivables ageing with bucket columns (<30 / 30–90 / 90–180 / >180 days) — every customer's buckets must sum to their outstanding total, printed column totals must match computed ones, and overdue concentration is reported.
Statement shapes it verifies: classic Date / Description / Debit / Credit / Balance tables; layouts that print 0.00 in the unused side; single signed-amount columns (negative = money out); multi-account registers (Account + currency columns — one verified statement per account); multi-page statements, including newest-first; wrapped description lines; DR/CR, parentheses and plus-sign amounts; common date formats.
Ledger shapes it verifies: Tally-style account books (Date / Particulars with Dr/Cr markers / Vch Type / Vch No / Debit / Credit, narration lines, opening/closing rows — checked for column self-balance, opening + movements = closing, duplicate entries and repeated voucher numbers) and QuickBooks/Zoho account ledgers (headerless exports with running balances — chain-verified in book orientation, one result per account). Excel serial dates and US date formats handled.
Trial balances it verifies: two-column exports (Account / Debit / Credit) — total debits must equal total credits, the printed total row must match the computed one, and every account must sit on exactly one side. Party/receivables ledgers without an opening row are treated as period-born (opening 0); exports missing their closing row are flagged with a request for the full export.
Checks run on every statement: one side per row · dates parse · no duplicated rows · balances chain (±0.01) · totals tie. A statement is marked Verified only when all of them pass.
What it won't do: documents without a running balance column can't be chain-verified — they're reported as readable, never guessed at. Poor scans come back "not machine-readable" with advice on what to request instead. Every status on this page is computed, never inferred: if we can't prove it, we say so.