Last Saturday's receipt already knows what next week looks like.
Most weeks the shop barely changes. Milk, bread, the same two cheeses, the same fruit, the same bin bags you forget half the time. Re-typing all of that into a fresh list every Sunday evening was the part of grocery planning that always felt the dumbest to me.
So I taught Listo to read the receipt instead.
Point your phone, get the list
The flow takes about as long as the photo itself:
- Open the list you want to fill (or start a new one) and tap Scan receipt.
- Take a photo of the receipt. Long thermal-paper one that folds three times? Take a few photos — Listo stitches them into a single scan.
- A few seconds later, the items show up in a review screen with names, quantities, and prices already split into rows. Tap to confirm, edit anything that looks off, save.
Three ways to actually use it
The same scanner serves three different flows, depending on which list you start from:
- New list from a receipt. Start from a blank list, scan, and you've got next week's shopping pre-filled based on this week's. Edit the bits that change, leave the rest. This is the one most people use.
- Update prices on an existing list. After the actual shop, scan the receipt back into the same list. The items already there get their real prices filled in. Useful if you keep a running price history per store.
- Merge into an existing list. You already had "milk, bread" in there before you went shopping. The scan adds whatever else is on the receipt and proposes matches for the items you'd typed loosely ("milk" → "Lidl whole milk 1L"). You confirm or override every match — the AI doesn't get the final say.
The Romanian Lidl problem
I built the first version of this on Claude Haiku — the cheap, fast model. It worked beautifully on every receipt I had on my desk in Berlin. German supermarket receipts are quite tidy: clean print, one item per line, name and quantity in the same column. Easy mode for OCR.
Then I went home to Romania.
Lidl receipts there are dense thermal paper, with quantities and prices on a separate line below the item name, all squeezed close enough together that you can barely tell which quantity belongs to which item. The first eight items? Read perfectly. By item nine the model started pairing the quantity from item ten with item nine, then item eleven's with ten, and so on — a cascade that ran all the way to the bottom. By the end of a 30-item receipt you had thirty items with the wrong quantities each shifted by one.
I tried five prompt variations. Reformatted the few-shot examples. Cropped the photos differently. None of it touched the cascade — the problem was structural, not promptable. Haiku could spot one quantity-name pair just fine; it couldn't hold the alignment across a dense receipt.
So I switched to Claude Sonnet 4.6. Same prompt, same code path. Cascade gone. Read the same Romanian Lidl receipts cleanly across hundreds of test scans.
Sonnet costs roughly 2.5× more per scan than Haiku did. That was the moment this stopped being something I could absorb into the free tier.
Why this one's in the subscription
Most of Listo is fixed cost on my end. The server is the same monthly bill whether you make one list or fifty, whether you share with two people or twenty. Adding users doesn't really cost me more, so adding users to the free tier doesn't cost me more either.
Receipt scanning is different. Every scan is a separate API call to Anthropic, billed per image plus output tokens. With Sonnet 4.6 the math works out to roughly $0.036 per scan — a few cents each time you point your camera at a receipt.
That sounds tiny, but it scales linearly. Two scans a week is around a hundred a year, or about $3.60 per active user per year just in API cost. Multiply across the user base and it's no longer absorbable as a free feature. I'd either need ads (no) or a way to recover the cost from the people actually using it.
So receipt scanning is the one piece of Listo behind the monthly subscription. The sub price is roughly the cost of a takeaway coffee — set to cover Anthropic plus a small margin to keep the lights on. If you scan two receipts a month it's basically at-cost; if you scan thirty, you're getting a deal.
What's still free
Everything that was free yesterday is still free today. Receipt scanning is an addition, not a tier change:
Free (no account required)
- Unlimited shopping lists
- Sharing lists with anyone
- Sync between your phone and tablet
- Offline mode
- Categories, priorities, sorting
- Items, quantities, prices typed by hand
In the subscription
- Receipt scanning (this post)
You can buy a month, scan a stack of receipts during a big shopping weekend, and skip the next month with no friction. No annual lock-in.
Try it
Open Listo, find the most recent receipt in your bag or your wallet, and point your phone at it. You'll know within thirty seconds whether the scan works for your store's receipt format.
If something reads wrong — a quantity drifts, a name comes out garbled, a discount line gets parsed as an item — email me at support@rolisto.com with a photo of the receipt. The Romanian Lidl fix above started exactly like that, from one person sending me one bad scan. I still read every message.
— Andrei