Evidence
The evidence so far.
Tables has been checked on five rendered tables and two phone photographs of printed examples. Here are the results, the mistakes found and the limits of those checks.
Model examples
Recorded 2026-09-104 of 5 named synthetic tables exact; unruled adds an empty row. This is five executions on five invented images. It is not an accuracy estimate and no percentage is reported.
| Image | Exact cells | Extra rows / cells | Whole table exact | Note |
|---|---|---|---|---|
| Ruled table | 12 / 12 | 0 / 0 | Yes | Including the space in “Blue folders”. |
| Unruled table | 12 / 12 | 1 / 3 | No | One extra empty row after the last data row. All 12 expected cells matched, which does not make the table exact. |
| Empty cells | 12 / 12 | 0 / 0 | Yes | Both deliberately empty cells preserved as empty. |
| Sectioned table | 44 / 44 | 0 / 0 | Yes | Section headings, dotted rows and a grouped negative amount. |
| Currency and punctuation | 21 / 21 | 0 / 0 | Yes | £, €, $, a negative currency amount, commas, decimal points and leading zeroes. |
Method
- Five wholly synthetic table images, rendered with Pillow and Arial. No personal document was used.
- Original image bytes were submitted in filename order to the Cup's ordinary local HTTP worker, with non-loopback networking denied at the operating system.
- The worker's final grid was scored against the authored expected cells by literal string at each row and column position: no trimming, number conversion, fuzzy matching or row realignment.
- A whole table is exact only when every expected cell matches and there are no missing or extra rows or cells.
- Repeated runs of one image are not new cases, and cells from one image are not independent samples. No percentage or interval is reported.
Not yet tested
- Strong tilt, shadow and blur across a wider range of phone photographs; direct original-JPEG browser upload was not exercised in the photograph check.
- Handwriting, small type, merged or spanning headings, and larger or more complex layouts.
- Any document that is not a clear, upright, tightly cropped printed table in English.
- How reliably people spot and correct errors in everyday use, and which mistakes make a draft difficult to use.
Phone photographs
Recorded 2026-09-12Both photographed tables were exact in both runs.
- Photographed ruled table: 12 of 12 cells exact; no missing or extra rows or cells in either run.
- Photographed unruled table: 12 of 12 cells exact; no missing or extra rows or cells in either run.
Two phone photographs of printed synthetic tables were cropped with assistance and converted to metadata-free PNGs, without resizing, enhancement or perspective correction. Each PNG was submitted twice to the real local HTTP reader using the unchanged model lock shown below. The results were compared with the original authored cells.
This checks these two prepared photograph inputs. It does not establish accuracy on arbitrary photos or independent human correction. Direct upload of the original JPEGs through the browser was not tested, and no new operating-system network audit was performed. The five rendered examples were also repeated: the unruled render still added an empty row.
The model files these results belong to
Results are only evidence for the exact files they were recorded with. A changed model, preprocessing step or runtime needs fresh inference; re-scoring an old recording is not a new result.
- Lock
- RapidAI/SLANet-plus-PP-OCRv4-det-PP-OCRv6-rec
SLANet-plus-d57a942a_PP-OCRv4-det-1.4.4_PP-OCRv6-rec-3.9.2 - Runtime
- RapidTable 3.0.2 and RapidOCR 3.9.2 on CPU, in the Cup's pinned Python 3.13 environment
- Size
- 34,323,737 bytes across four files
- Licence
- Apache-2.0 upstream (PaddleOCR and RapidAI). That identifies the release terms of the software and models, not an audit of their training sources.
File identities (SHA-256)
- structure.onnx
- SLANet-plus table structure (PaddleOCR, via OpenDataLab PDF-Extract-Kit 1.0)
d57a942af6a2f57d6a4a0372573c696a2379bf5857c45e2ac69993f3b334514b - detect.onnx
- PP-OCRv4 mobile text detector (rapidocr_onnxruntime 1.4.4 archive)
d2a7720d45a54257208b1e13e36a8479894cb74155a5efe29462512d42f49da9 - recognise.onnx
- PP-OCRv6 small multilingual recogniser (rapidocr 3.9.2 wheel)
6f327246b50388f3c176ae304bd95767ea6dc0c9ae92153ef8cbe210b3c14884 - orient.onnx
- PP-OCR mobile orientation classifier (rapidocr_onnxruntime 1.4.4 archive)
e47acedf663230f8863ff1ab0e64dd2d82b838fceb5957146dab185a89d6215c
Claims the product makes, and their checks
Confirmed 2026-09-11Each sentence Tables shows a user is listed with the check behind it and the boundary of that check. “Unchecked” is a visible limit, not a promise. As of 2026-09-11 the deterministic suite is 50 deterministic Python checks, 3 style checks and 32 controlled browser checks. These establish what the software does with recognised text under its documented rules. They say nothing about how often the reader recognises text correctly.
| Claim as worded | Evidence type | Check and its boundary | Last confirmed |
|---|---|---|---|
| “Nothing calculates or corrects values.” | Deterministic | Alignment preserves retained recognised literals under changed placement, including signs, zeroes and repeated fragments. Covers retained text under the documented rules, not OCR accuracy. | 11 Sep 2026 |
| “Empty cells and literal numbers are preserved into CSV.” | Deterministic | Python and browser checks assert the complete downloaded CSV string, including quoting, embedded newlines and blank columns. | 11 Sep 2026 |
| “Merged or irregular predicted cells are refused, not silently flattened.” | Deterministic | Refusal of predicted structure; the browser offers another image with no draft or export. Does not prove every merged source image is recognised as such. | 11 Sep 2026 |
| “Every edit or structural correction clears the review checkbox.” | Deterministic | Browser checks show export disabled until review is renewed after cell edits and row or column changes. | 11 Sep 2026 |
| “The preview shows exactly the area sent to the local reader.” | Deterministic | Rotation and crop send the preview pixels and retain the original. Controlled upload pixels, not model accuracy on photographs. | 11 Sep 2026 |
| “Your image is not sent to a cloud service.” | Actual model under OS isolation | Directory-isolation validation with an explicit external-socket denial probe and real model flows under inherited network denial. Unrestricted dependency behaviour is unchecked. | 10 Sep 2026 |
| “Normal start, build and use never install packages or download models.” | Actual model under OS isolation; deterministic guards | Recorded offline build, start and live flow; corrupt or missing assets stay a visible readiness error. | 10 Sep 2026 |
| “There is no result history. You choose what to save.” | Partial | Visible clearing and cancelled-input cleanup are checked. Full absence of history across browser, worker and dependency storage is unchecked; downloaded CSV remains wherever the browser saved it. | unchecked as a complete claim |
Human use
14 September 2026
I’ve used Tables on 12 everyday tasks and used two exported CSVs afterwards. In a separate seven-task trial, both ordinary Tables exports were exact, but mistakes remained in two prepared correction tasks.
That’s enough for me to keep using and improving it. It doesn’t yet show how well it works for other people, or how reliably they can spot mistakes.
Record sources and dates
Original snapshot taken on 2026-09-11 from cups/tables/docs/tables-comparison.md, docs/tables.md, docs/claims.md and model-lock.json in dogwonder/kettle-cups at 9cbdfc5361afcd04f4a5779aa5ca074c648410d3. The original model and software findings below retain their September 2026 dates. The phone-photo check was added from the local report on 12 September 2026. This page is a reviewed copy; building the site runs no inference.
Photograph report: cups/tables/docs/photo-check-13.md; source base d699171 with photograph fixtures and their truth added locally.
Report SHA-256: 591d8802123219de1b510909657f54ca0e637e7ad85c6dff38ad8b7e9326eb54
Human-use record, 14 September 2026: cups/tables/docs/first-ten.md, cups/tables/docs/practical-use-decision.md and cups/tables/research/tables-use/rehearsal.md (Author pilot observations — 14 September 2026), at 2f88d98521de4eef4aca10b3ceb13165514a0b84.
These are my own tasks and reports, not independent participant sessions. The everyday-task use reports and the separate author pilot are distinct records; they do not establish general time savings or reliable error detection.