Skip to main content
Back to Showcase

Reconciliation Workbench: A Small Model Reads Financials, an Engine Catches OCR Errors

Author:niuniu869Model:MiniCPM-V 4.6

MiniCPM-V reads financial reports; a deterministic engine catches OCR digit errors

Reconciliation Workbench is an audit "tie-out" desk on a live financial statement. A small model, MiniCPM-V 4.6 (~1.3B), reads the report, while a deterministic engine does every piece of arithmetic to catch the numeric errors OCR introduces: leading-digit insertions, trailing truncations, column misalignment and garbled characters. Every number traces back to its place in the source PDF and explains its reconciliation relationship; in the full version it can also be hand-corrected and re-checked, leaving an exportable audit trail.

It is a Build Small Hackathon submission on the Backyard AI track.

The problem​

This is the unglamorous, real-world problem auditors face every day: a 300-page Chinese annual report or prospectus is OCR'd, and a single misread digit silently breaks a balance sheet. Reconciliation Workbench catches those errors and never "helpfully" rewrites the source.

Why small​

You do not need a giant LLM to audit a financial statement.

  • Reading is for a small model: MiniCPM-V 4.6 has ~1.3B parameters, well under the Tiny Titan 4B bar.
  • Arithmetic is for code: every add, subtotal and cross-foot happens in a pure-function deterministic engine.

Moving the error-prone math out of the model is exactly why it catches OCR errors instead of inventing new ones: a model that both reads and computes could hallucinate a plausible-but-wrong total.

Try it​

The Space bundles two samples and needs no keys:

  1. Sanmu Group 2024 Annual Report: a real PDF with per-digit pixel highlighting and a tri-state overlay (green = reconciled, red = suspected OCR error, grey = not covered by rules).
  2. A prospectus: the engine catches subtotal reconciliation errors on the consolidated balance sheet, with a verification queue you can step through.

Pick a sample in the top-right corner and open each finding; click a flagged number to see it light up in the PDF, the live sheet and the focus card at once.

This is a read-only public demo. Live PDF upload and the human-correction → recompute → audit-trail loop run on the deterministic engine, which is proprietary and not shipped in the public demo. The demo video below shows those features in action.

How it works​

Plain Text
A single custom gr.HTML island (pdf.js + live sheet + verification panel + all interaction)
└─ payload: small model reads + structures → deterministic engine reconciles → tri-state findings
  • Custom UI: not a stack of default Gradio components, but one custom gr.HTML island with server_functions, a real pdf.js viewer, tri-state bbox overlays and a keyboard-driven review queue.
  • Iron rule: extraction and arithmetic are separated; the raw OCR value is immutable; a human correction is a new, traceable transaction, and the original is always kept as a reference column.
  • Fail loud: the UI reports "N tables dropped during location · 0 findings ≠ error-free" and never disguises "couldn't extract" as "nothing wrong".

Demo video​

The 3-minute demo video walks through the full loop: the 1.3B model reads a real annual-report PDF → the deterministic engine flags a balance-sheet subtotal that doesn't tie → the engine-inferred correction is applied → it recomputes and re-ties (✓ Closed), with a full, tamper-proof audit trail.

Limitations​

  • The public demo ships only the frontend and pre-computed sample results.
  • The deterministic reconciliation engine and the extraction pipeline are proprietary and not included, so the public version does not support uploading your own PDFs or the human-correction loop.

Built by niuniu869.

Project info

Author
niuniu869