Case study · August 12, 2026
Show me your fridge and I'll write your shopping list. A tenth of a cent.
One photo of an open fridge → structured inventory of what's in there + a shopping list of what's missing, grouped by store section. Eleven seconds, about a tenth of a cent via Reality Router.
I took a photo of an open refrigerator, handed it to an AI agent through Reality Router, and asked two things: tell me what's in there, and tell me what I'm out of.
Eleven seconds later I had both. Cost: about $0.001. A tenth of a cent.
What the agent saw
The photo I gave it wasn't a curated glamour shot — it was a normal home fridge: some green bottles in the door bin, a lemon and a small pile of tomatoes on the middle shelf, cheese, grapes, some carrots and oranges in the crisper, a bottle of dark sauce. Nine items visible with reasonable confidence.
The agent returned this inventory:
[
{"name": "tomatoes", "category": "produce", "quantity_estimate": "about 5 items", "shelf_or_bin": "middle shelf"},
{"name": "lemon", "category": "produce", "quantity_estimate": "1 item", "shelf_or_bin": "middle shelf"},
{"name": "grapes", "category": "produce", "quantity_estimate": "about 1 cup", "shelf_or_bin": "middle shelf"},
{"name": "carrots", "category": "produce", "quantity_estimate": "about 3 items", "shelf_or_bin": "crisper drawer"},
{"name": "oranges", "category": "produce", "quantity_estimate": "about 3 items", "shelf_or_bin": "crisper drawer"},
{"name": "cheese", "category": "dairy", "quantity_estimate": "1 block", "shelf_or_bin": "middle shelf"},
{"name": "green bottles", "category": "beverages", "quantity_estimate": "4 bottles", "shelf_or_bin": "door bin"},
{"name": "small bottle", "category": "beverages", "quantity_estimate": "1 bottle", "shelf_or_bin": "door bin"},
{"name": "dark sauce", "category": "condiments_and_sauces", "quantity_estimate": "1 bottle", "shelf_or_bin": "door bin"}
]
Notice "green bottles" and "small bottle" — the agent didn't invent a brand name it couldn't actually see. Where labels aren't legible from the photo, it says so instead of hallucinating a specific product. That's the small honesty that separates a useful vision agent from a demo that fails the moment you check it.
Then it wrote the shopping list
Based on what's in the fridge and what a typical household usually has, the agent produced this:
## Produce
- Bananas
- Apples
- Potatoes
- Onions
- Lettuce
## Dairy
- Milk
- Eggs
- Butter
- Yogurt
## Pantry
- Bread
- Rice
- Pasta
- Olive oil
## Protein
- Chicken
- Beef
- Tofu
- Fish
Note what's not in the list: tomatoes, oranges, grapes, carrots, cheese. Those are already in the fridge. The list is missing staples grouped by store section — the exact thing you'd write on a piece of paper before heading to the market, minus the ten minutes of standing in front of the fridge trying to remember what you have.
The receipt
| Items identified in the photo | 9 |
| Shopping list sections | 4 (Produce / Dairy / Pantry / Protein) |
| Wall-clock time | 11 seconds |
| Actual cost | ~$0.001 (about a tenth of a cent) |
| Same workflow on Claude Sonnet 5 | ~$0.025 (25× more) |
| Same workflow on Claude Opus 5 | ~$0.041 (41× more) |
| Same workflow on Claude Fable 5 (top-tier) | ~$0.082 (82× more) |
The math on when this scales gets ridiculous fast. Take a photo of your fridge every week for a year: 52 photos × $0.001 = five cents. That's the entire year's shopping-list-writing budget. On Claude Opus 5, the same 52 photos would cost about $2.15 — still cheap, but a 40x difference for identical output.
What the router did
Two calls, two different models, chosen automatically:
- The vision step — a vision-capable model (OpenAI's gpt-4o-mini) looked at the photo and returned the raw inventory. Cost: about a tenth of a cent for the whole image analysis.
- The reasoning step — Reality Router picked DeepSeek's fast cloud model to turn the inventory into a shopping list. Cost: seven-thousandths of a cent.
The split matters. If both steps had gone to the vision model, the reasoning would still work but you'd pay vision prices for text-only work. If both had gone to the text model, the vision analysis wouldn't happen at all. The router picking the right model per call is what makes the whole workflow cost a tenth of a cent instead of ten cents.
Why "what's missing" is the harder half
Identifying items in a photo is impressive but well-trodden — any modern vision model does it. Turning that inventory into "here's what you should buy" is where the useful reasoning happens. The agent has to know what a typical household usually keeps around (eggs, milk, bread, common produce, some protein), notice what's absent from the current inventory, group the missing items by where you'd find them at the store, and not accidentally re-list things that are already in the photo.
That last bit — not putting "tomatoes" on the shopping list when there are five tomatoes right there in the picture — sounds trivial but is exactly the kind of small correctness that separates a useful assistant from an annoying one.
Where this actually plugs into a life
Take a photo before you go shopping. Or plug it into a workflow that fires every Sunday morning — your phone snaps a photo of the fridge, the shopping list lands in your Notes app or your grocery-delivery cart. Or extend it: after each shop, snap another photo and diff it against last week's — see what's actually getting eaten vs what keeps getting bought and going to waste.
Any of those workflows is a rounding error at a tenth of a cent per run.
Try it yourself
Reality Router is open source. Point OpenCode (or any OpenAI-compatible tool) at it with your own API keys, take a photo of your fridge, and see what the agent tells you to buy.
Fridge photo: "Open refrigerator with food at night" from Wikimedia Commons, licensed CC BY-SA 4.0 (resized to 1130×1500).