Skip to content
BookkeeperLensDemo — synthetic data only

How it works

Five stages, and one thing that is actually proved.

Most bookkeeping tools ask you to trust the output. This one is built so the important part can be checked: the books either foot or they don't, and the app tells you which.

  1. 01

    Statements become transactions

    Bank and card statements are parsed line by line, as PDF or CSV. Every transaction keeps the page and line it was read from, so any figure can be traced back to the paper.

    Docling handles scans and OCR when it's installed; pdfplumber reads the text layer otherwise.

  2. 02

    Receipts are read by a vision model

    Each receipt photo returns a vendor, date, subtotal, tax, total and line items. If the subtotal and tax don't add up to the printed total, confidence is cut rather than the discrepancy being hidden.

    Runs on NVIDIA NIM's free tier, or fully local and private on Ollama.

  3. 03

    Every transaction gets a category

    A vendor rules table does the bulk of the work — it's deterministic, instant and free. The model only sees descriptions no rule matched, once per distinct vendor, and what it decides becomes a rule for next time.

    A model's answer is capped below the review threshold, so it always reaches a human. A line with no recoverable vendor is reported as uncategorized rather than guessed at.

  4. 04

    The ledger is built by code

    Each transaction posts as a double-entry journal entry. An unbalanced entry cannot be constructed — the invariant is enforced where the entry is made — so the trial balance foots because it is impossible for it not to.

    No model has a vote in the arithmetic. A bad completion costs a confidence point, never a posting.

  5. 05

    Reconcile, match, and find what's wrong

    Each month is checked against its statement's ending balance. Receipts are matched to bank lines on amount, date and vendor. Then the cleanup checklist runs: uncategorized lines, duplicates, personal spend, missing receipts, miscategorizations.

    Every finding names the transactions involved, the dollars at stake, and the fix.

The part that matters

A trial balance that foots to zero, and a balance sheet that balances.

Both are machine-checkable, and both are checked on every run. That's the difference between a tool that categorizes your transactions and a tool whose output you can hand to an accountant.

See it on real books →