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:
- 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).
- 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
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.HTMLisland withserver_functions, a realpdf.jsviewer, 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.
Links
- Hugging Face Space: build-small-hackathon/reconciliation-workbench
- Demo video: demo.mp4
- Social post: X
Built by niuniu869.
