About
A bookkeeping cleanup engine that can prove its own arithmetic.
Upload a year of bank statements and a pile of receipts. BookkeeperLens categorizes every transaction to a tax category, reconciles every month against the bank, matches the receipts, and hands back a score out of 100 with an exact list of what's wrong — with every number traceable to the paper it came from.
How it works
- 01
Add the documents
Bank and credit-card statements as PDF or CSV, plus photos of your receipts. No bank login and no account linking — these are the same files you'd download from online banking.
- 02
Read every statement line
Each statement is parsed into transactions that remember the page and line they came from, so every figure downstream resolves back to the exact line of paper it was read from.
- 03
Read the receipts
A vision model turns each photo into vendor, date, subtotal, tax and total. If the subtotal and tax don't add up to the printed total, the confidence is cut rather than the discrepancy hidden.
- 04
Categorize to Schedule C
A vendor rules table does the bulk — deterministic, instant and free. The model only sees descriptions no rule matched, and a line naming no vendor at all is reported as uncategorized rather than guessed at.
- 05
Post a double-entry ledger
Every transaction becomes a balanced journal entry. This part is ordinary code, never a model: an unbalanced entry cannot be constructed, so the trial balance foots because it is impossible for it not to.
- 06
Reconcile, match, and find what's wrong
Each month is checked against its statement's ending balance, receipts are matched to the bank lines that paid them, and the cleanup checklist runs: duplicates, personal spend, missing receipts, miscategorizations.
- 07
Review and export
A tax-readiness score out of 100 and a prioritized fix list. Click any number to see its source, correct anything in one click — your correction becomes a rule — then download the report as PDF or the books as CSV.
The part that is actually checked
The books either foot, or the app says they don't.
Two claims here are machine-verifiable and verified on every run: the trial balance foots to zero, and the balance sheet balances. Because the ledger is built by code rather than by a language model, a bad model answer can lower a confidence score but can never produce a wrong posting. Anything the model decided arrives capped below the review threshold and flagged for a human — the rules table carries everything we actually know.
What it does that a spreadsheet doesn't
High-volume classification
Hundreds of transactions categorized to a Schedule C chart of accounts, each with a confidence, a stated reason, and learning from your corrections.
Cross-document linkage
Receipts fuzzy-matched to bank-statement lines on amount, date and vendor — a different problem from reading either document alone.
Provable arithmetic
A trial balance that foots to zero and a balance sheet that balances, both machine-checked on every run.
Anomaly detection
Duplicates, personal spend on the business account, missing receipts, miscategorizations, months that don't reconcile.
Auditability
Every number links to the statement line or receipt it came from, shows how it was decided, and is editable.
Privacy and data
A demo, and not tax advice. Every business in it is fabricated — invented names, invented account numbers, no real people. Don't upload real bank statements to a demo; the point of this one is that you can see exactly what it does before you would.
Runs on free models, or fully local
FastAPI · Postgres + pgvector · Next.js. Every language, vision and embedding call sits behind one adapter: NVIDIA NIM's free tier, a local Ollama where nothing leaves the box, or a deterministic offline stub. No paid APIs, and embeddings are always local.
Who built it
Alex Kargin
Data and ML/AI engineer. BookkeeperLens is the third piece in a portfolio of applied document-intelligence builds, each chosen to prove something the others don't.
See it on a real set of books
Four fabricated businesses, each carrying a different mess — including one whose books are already correct, which is what makes the other three scores mean anything.
BookkeeperLens is a portfolio demo running on synthetic data. It is not tax advice, it files nothing, and it does not replace an accountant.