receipt-ripper.com
Your receipts never leave your device
The physical-photography bit is the unfair half of OCR accuracy. Get it right and the parser does its job. Get it wrong and you spend the next ten minutes typing.
Receipt OCR fails for two reasons. Either the engine itself can't read what's there (a software problem we can't fix from the user side), or what's there isn't legible (a photo problem you can fix in about ten seconds, if you know what to fix). This guide is about the second one. The principles below come from looking at thousands of receipts our parser misread and noticing what they had in common.
Receipt Ripper applies automatic perspective correction and downscaling before the OCR even runs, so the bar isn't "studio quality" — it's "the OCR engine can pick out individual digits without ambiguity." Hit that bar and you're fine.
The single biggest variable is lighting. A receipt printed on thermal paper has very low contrast — black ink on white-ish paper, with maybe 60–70% luminance separation when fresh and as little as 30% when faded. OCR engines train on the easy end of that range. Your job is to put the receipt in the easy end.
Indoors, the easiest way is a window during the day with you standing between the window and the receipt. Bright, even, diffuse light. The receipt sits flat on a table; your phone is roughly above it; your body shadows the worst of the direct sun if it's harsh. The goal is no glare patch on the receipt — glare blows out the ink and the OCR sees blank paper.
Avoid overhead spot lighting (kitchen pendants, recessed ceiling halogens) because they cast a hard shadow under your phone right where you're trying to photograph. If that's all you have, tilt the receipt 20° or move the lamp so the highlight slides off the paper.
White-on-white kills the edge detector. The scan-correct stage finds the four paper edges using a Canny + Hough pipeline, and "edge" means "a line where luminance changes sharply." A white receipt on a white counter has no luminance change at the boundary, so the automatic crop has nothing to lock onto.
Use a dark, matte surface. A dark wooden table, a charcoal placemat, a black book cover, even your dark jeans laid flat work. Glossy surfaces (granite, polished marble, glass) reflect light and create a halo around the receipt — also bad. If you're travelling and only have a hotel desk in beige laminate, drop a single sheet of dark paper underneath; that's enough.
Perspective correction can handle quite a lot — up to about 40° of tilt — but it isn't free. Each correction step softens the image slightly, and at large angles the bottom of the receipt is rasterised from fewer pixels than the top, so OCR confidence drops there. The best results come from photos where the phone is roughly parallel to the receipt and centred over it.
A quick alignment trick: stand directly above, look at the camera preview, and adjust until the four edges of the receipt all touch the same number of pixels from each side of the frame. The preview corrects pinch distortion by default, so what looks flat usually is flat.
You want the receipt to be as large in the frame as possible without touching the edges. As large as possible because every pixel you don't spend on receipt is a pixel the OCR can't use. Not touching the edges because the corner detector needs some non-receipt pixels around the perimeter to find the boundary — a receipt that goes right to the frame edge has no contrast for the detector to find at that side.
A border of about 10% of the long axis works well. On a portrait shot of a typical till receipt, that's roughly a thumb's width of background visible at top and bottom. Most phones make this easy: just step back until the receipt has visible background on every side, then frame it.
Phone front-facing cameras are 5–7 MP on most devices; rear cameras are 12 MP or more. For OCR, the rear camera's extra resolution is worth more than the convenience of being able to see the preview. The dropzone's camera button opens the rear camera by default for exactly this reason.
Don't use the iOS "Live Photos" mode (it captures a low-res still alongside the video). Don't use third-party document scanners that pre-binarise the image to black-and-white — they throw away the grayscale data that helps the OCR distinguish 8 from 3 on faded thermal print. Receipt Ripper does its own preprocessing; feed it the raw photo.
The flash is a coin flip. On faded receipts where the ink is barely visible, the flash can recover enough contrast to make the print readable. On fresh receipts with normal ink, the flash washes out the print and creates a glare hotspot in the middle of the page that's usually right over the total.
Rule of thumb: try without the flash first. If the result looks washed-out or blurry in low light, retry with the flash. Don't use the flash in front of glossy receipts (laminated, plastic-coated) because the reflection is guaranteed to ruin the central readability zone.
These are the failures we see most often in the receipts users send us when something parsed incorrectly:
After dropping the photo into Receipt Ripper, the review table shows every field with a confidence indicator. Yellow badges are the parser's honest "I'm not sure" — they're a free hint that something didn't read cleanly. If you see more than two or three on a single receipt, it's usually faster to retake the photo than to manually fix every field.
The mobile dropzone has a "scan another" shortcut that opens the camera directly back to where you were, so retaking is one tap. If the photo really can't be improved (faded thermal print fades from the corner of an old shoebox is the classic), the "Re-crop manually" button on the session card opens an interactive corner picker — that often recovers receipts the auto-detector gave up on.
Got a receipt that keeps misparsing despite a good photo? Send it to us — every misread receipt teaches the parser something new about a vendor format or a layout edge case.