Receipt Scanning Failing? Six Common Causes and Concrete Fixes
The OCR (Optical Character Recognition) in Okidoky runs locally in your browser via Tesseract.js. That's good for your privacy — your receipt doesn't leave your device — but it also means recognition quality depends on the photo you take. About nine in ten receipts work first try. The remaining ones almost always have a specific cause. Here are the six we see most often.
1. Photo too dark (or overexposed)
This is by far the most common cause. A receipt on a dark counter, a ceiling lamp throwing a shadow, or a bright balcony light reflecting — all of these make the text hard for the OCR engine to read.
Fix: take the photo on an evenly lit surface. A white table by daylight is ideal. Avoid your shadow being in the frame. If your phone has a flash, turn it OFF — flash on thermal paper creates more problems than it solves. A second chance: retake the photo from a slightly different angle so reflections disappear.
2. Receipt creased, folded or torn
A receipt that's spent a day in your pocket is often distorted. The OCR can work line-by-line, but if a tear cuts through a digit, the total field loses context.
Fix: lay the receipt AS flat as possible before taking the photo. Putting a closed book on it for a few seconds works wonders. For a tear: try placing the two halves next to each other on a dark background so the tear is less noticeable. If the receipt stays very crumpled, what often works better: photograph only the total section at the bottom, and fill in merchant name + date manually.
3. Thermal paper has faded
This is a structural issue, not a photo issue. Receipts on thermal paper (that smooth grey paper many checkout systems use) become unreadable after a few months — especially with heat, sunlight, or contact with plastic sleeves. Tesseract.js can't read text that's literally no longer there.
Fix: if the receipt belongs in your archive, scan it right after you receive it. Thermal paper noticeably fades within 6-12 months. If it's already faded: manual entry is sadly the only route. For the future: snap a photo at the register the moment you receive a receipt you know you'll need later (warranty, deduction, insurance).
4. Multiple receipts in one photo
We see this often: someone lays three receipts next to each other and takes one photo. OCR may recognise text, but the coupling "which line belongs to which receipt" becomes a guess. The result is often a mix where receipt A's total ends up attached to merchant B.
Fix: one receipt per photo, always. For several small receipts, take seven separate photos rather than one overview shot. The Okidoky scan takes only seconds per photo; "saving time" by combining them usually just creates extra correction work.
5. Text too small or resolution too high
For long receipts (a large grocery run, say) some people tend to get very close and zoom in. That produces lovely high resolution, but sometimes the text is SO sharp that subtle pixel noise actually DISturbs the letters.
Fix: take the photo from about 30 cm away. Most smartphone cameras do their best work at that distance. Want to capture a very long receipt anyway? Take two photos: one of the top half, one of the bottom half with overlap. Scan them separately and combine manually (date once is enough, total from the bottom half).
6. Foreign characters or unusual layouts
German umlauts (ä, ü), French accents (é, à) or exotic currency symbols can sometimes trip Tesseract. Receipts from certain countries also use very different layouts: total at top, VAT in the middle, merchant name at the bottom. OCR works less well when the layout deviates from the "Dutch receipt" pattern the model knows.
Fix: the text usually does come through; only the auto-categorisation fails. After scanning, check the amount (that's almost always right) and the date (same). Fill in merchant name and category manually if needed. For holiday receipts: a bit of acclimatisation is normal, the OCR isn't suddenly bad — the layout simply isn't what the model expects.
When manual entry is faster
Two situations where scanning is time wasted:
- Very small receipt under €5 — the time spent correcting exceeds the value of that amount to your insight.
- You already know the amount by heart — if you just paid €3.40 at the bakery, type '3.40 — bakery — groceries'. Faster than opening camera, taking photo, verifying.
Okidoky isn't an app that wants you to scan every euro. It's an app that wants to help you keep an overview. Sometimes the fastest path to that overview is typing instead of photographing.
Why scan at all?
For quantity and speed: if you have 15 receipts from a weekend market, scanning + correcting 2 is still faster than typing 15. For freelancers the time savings are significant because digital retention is easier than a shoebox.
But above all: the scan function is a means, not a goal. If it doesn't work for a particular receipt, there's nothing "wrong" with Okidoky or with you — it's just a photo the OCR can't read. Type it in and move on. The 85 other receipts this month are already nicely captured.
Need help with a specific case? Email info@okidoky.nl with a screenshot of what you're seeing happen. Seven times out of ten we figure it out together with one more question.