Reading time: about 10 minutes
This is the first thing that convinces an owner the tool is useful, and also where it is easiest to come unstuck: a misread figure looks exactly like a correctly read one. So this case has two halves, and the second — checking — is the one that matters.
Step by step
-
Take the photo properly — that is half the battle
Paper flat on the table, not in your hand. Light from the front, not behind. The whole sheet inside the frame with a finger’s margin. And one photo per sheet: two sheets in one photo is the number-one cause of a skipped row.
If the paper is creased, flatten it. If it is crooked, take it again. Thirty seconds here saves you the checking later.
-
Upload it and ask for the table with the columns YOU want
The paperclip button, or drag the photo into the text box. Then this — note that the columns are stated: if you do not state them, it makes some up and then they do not fit your sheet.
Transcribe this image into a table with EXACTLY these columns, in this order: code | description | units | unit_price | batch | expiry Rules: - Copy the numbers exactly as they appear. Do not round, do not calculate. - If a cell cannot be read with confidence, write UNREADABLE. Do not guess. - If a column is not on the paper, leave it empty. - Return it as CSV separated by semicolons, with no explanation before or after. - At the end, tell me how many rows you read. -
Count the rows before looking at anything else
That is why the prompt asks for the count. Count the lines on the paper and compare. If the paper has 23 and it says 22, do not hunt for the missing one in the table: retake the photo. A row lost in reading is usually an edge row, and it will be lost again.
This thirty-second control is what turns this into a work tool. Without it, it is a roulette wheel with good presentation.
-
Tell it what to do with what it CANNOT read
This is the instruction that separates this case from a silent disaster. A creased delivery note, a figure covered by the stamp or a line in the shadow of your finger are normal — and by default the model writes something plausible in that cell rather than saying it cannot see it.
Always add this line to the prompt, as it is:
"If a value cannot be read with confidence, write
UNREADABLEin that cell. Do NOT infer it from context or from what would be reasonable. I would rather have five UNREADABLEs than one invented figure."Then you search the table for
UNREADABLEand check those lines on the paper. Two minutes, and it is the whole difference between a table you can use and one that looks fine. -
Get it into the spreadsheet
Copy the CSV, paste it into cell A1 of a new sheet and use "Data → Text to columns" with the semicolon as separator. In Google Sheets it is "Data → Split text to columns".
⚠️ If your quantities use a decimal comma, tell the sheet the separator is the semicolon and check it has not turned
1,5into a date. It is the classic and it still happens. -
Check three rows at random, not the first one
The first row is almost always right: it is the biggest, the most centred and the easiest to read. Take three from the middle and the end and compare them character by character with the paper.
And check one total: if the note has a total, sum it in the sheet and see if it matches. A total that matches is the best evidence that no figure was invented, and you get it for free.
A full example, and what is wrong with it
A twelve-line delivery note, photographed at the counter under pharmacy lighting. This is what came back, and the two errors in it are the two you will always meet.
code;description;units;unit_price;batch;expiry
653421;IBUPROFEN 600MG 40 TABS;10;2.34;L4471;03/2027
698112;PARACETAMOL 1G 40 TABS;20;1.98;K8823;11/2026
712209;OMEPRAZOLE 20MG 28 CAPS;15;1.45;S1120;UNREADABLE
653B21;AMOXICILLIN 500MG 24;8;3.12;N4402;07/2027
… (8 more lines)
And now, what is wrong with that reply:
- Line 4 has a letter inside the code:
653B21. A product code is digits. ThatBis a misread8, and it is the commonest error of all alongside 0/O and 1/l. It is visible at a glance if you know to look; pasted into Excel among two hundred lines, nobody sees it. - The
UNREADABLEon line 3 is the good news. There the wholesaler’s stamp covered the expiry date, and the model said so instead of inventing a plausible one. That is what the step 3 instruction bought you, and it is exactly the difference between a table you can use and one that looks fine: without that line in the prompt it would have written "12/2027" and you would never have known. - The prices use the local decimal separator, and that matters when pasting.
2,34pasted into a differently configured sheet lands as text or as 234. It is not the model’s fault — it is what the paper says — but it is the number one reason the amount column refuses to add up in Excel. If it happens, ask for "decimals with a full stop". - And what you cannot see: whether lines are missing. The table has twelve lines and the note had twelve. It matches. But if the note had had fourteen and the photo cut two off, the table would still look exactly as complete. That is why you count the rows BEFORE looking at anything else — it is the only check you cannot do afterwards.
Two minutes of checking on twelve lines. On a hundred-line note, the same two checks — count the rows and search for UNREADABLE — still take two minutes, and that is what makes this case scale.
Note what is deliberately NOT on that list: re-reading every figure. That would take longer than typing the note out by hand, and it would defeat the point. You check the two things that tell you whether the whole table is trustworthy, and you spot-check three rows at random. Everything else you accept — knowing that you accepted it.
And if your pharmacy is not like that
UNREADABLE stops being an exception and becomes half the table. It still pays off for digitising something handwritten, but you check all of it, not a sample.When it does not work first time
0653421 and deciding it is the number 653,421. And it is especially treacherous because the table it gave you was right — the data is lost on paste. The fix is to format the column as TEXT before pasting (right-click the column → Format cells → Text), or use "Paste special → Text". If you have already pasted, do not patch it by hand: paste again over the now-formatted column.0 and O, 1 and l, 5 and S. In a product code that is a different product. If you are going to order with that code, check it in full.UNREADABLE instruction, a blurred expiry comes out as a perfectly plausible date. Plausible is exactly the problem: you will not look at it twice.