Agentic OCR that turns any document into Excel
A PDF, a photograph, a bad scan. Rowbot pulls out every table — and the names, dates and reference numbers around them — checks the totals by running the arithmetic, and shows you where on the page each figure came from.
- OCR the page and find its tables
- Import each into a named sheet
- Check every total
Worked it out · checked four column totals
const d = sheets['Revenue'].col('D');
log(round(d.reduce((a, b) => a + b)));Three of the four quarterly totals reconcile. Revenue!D10 prints 30,990 where the column adds up to 31,990 — I kept the page's figure and flagged it.
Ask Rowbot for a change…
| Row | Region | Q1 | Q2 | Q3 | Q4 |
|---|---|---|---|---|---|
| 2 | North America | 12,430 | 13,905 | 8,200 | 16,880 |
| 3 | EMEA | 8,120 | 8,640 | 6,300 | 10,050 |
| 4 | APAC | 5,600 | 6,215 | 4,400 | 7,995 |
| 5 | LATAM | 2,310 | 2,480 | 2,200 | 2,910 |
| 6 | UK & Ireland | 4,870 | 5,120 | 3,650 | 6,240 |
| 7 | DACH | 3,940 | 4,305 | 2,980 | 5,110 |
| 8 | Nordics | 2,150 | 2,390 | 1,720 | 2,845 |
| 9 | Japan | 3,275 | 3,610 | 2,540 | 4,320 |
| 10 | Total | 42,695 | 46,665 | 30,990 | 56,350 |
The page printed 30,990, but D2:D9 adds up to 31,990. Kept the page's figure and flagged it.
Made for bad scans
A photograph, a fax, a page that has been through the copier twice. Merged headers and spans survive, right-to-left tables stay the right way round, and every cell carries how sure the reader was.
Checks the sums by running them
It writes the arithmetic as code and executes it, so a total that does not reconcile is caught by a computer rather than guessed at — and you can read the code it ran.
Every figure traceable
Click a number and the page it came from opens beneath the sheet with that figure marked. Nothing in the workbook is further than one click from the paper.