The test set
A number on a product page is worth nothing if nobody can check it. This is everything needed to check the ones on the Tablecut page.
What it is measured against
Twenty public documents, none of them ours: US tax forms and tax tables, four research papers, a commercial invoice template, and bank statements published by the banks and public bodies themselves — among them a Société Générale relevé de compte specimen in French, the Banco de Portugal official example, and real Brazilian statements published by the Paraná state treasury. One of them is a scan with no text in it, on purpose: the right answer there is to refuse it, not to invent rows.
The last measurement
| measure | result |
|---|---|
| rows with the columns separated | 90.3% of 916 rows |
| cells still holding two numbers | 1.8% of 4 542 cells |
| cells with letters broken apart | 0.7% |
| scanned document | refused, which is correct |
Per document, in full: medicao.json. The bad numbers are in there too.
Repeat it
sh buscar.sh ./pdfs # downloads the twenty documents npm install playwright node banco.js ./pdfs path/to/app.html run1
It opens the real tool in a real browser, drops each PDF in, and measures what comes out. celulas.js does the other check: it runs two versions side by side and compares every cell of text, in reading order, so a change meant to alter the layout cannot quietly lose content.
The files
- buscar.sh — fetches the documents from their original sources
- banco.js — the measurement
- celulas.js — the cell-by-cell comparison
- LEIA.md — the notes, in Portuguese, including which changes were rejected and why
Some of those addresses will die with time. One that fails does not invalidate the others; it invalidates comparing against older measurements, and that should be said out loud.