How do you turn a photo into structured data, not just raw text?
July 8, 2026 Β· 5 min read
You turn a photo into structured data by running it through a vision-language model that reads the document's layout β not just its characters β and returns labeled fields like vendor, date, total, and line items as JSON, with a confidence score on every field. The difference from ordinary "image to text" is that the output goes straight into Excel or accounting software without anyone re-typing it.
What makes data "structured" β and why isn't raw text enough?
Raw text is what a basic OCR tool or Google Lens gives you: every word on the receipt, in reading order, as one undifferentiated blob. It looks like progress, but it isn't usable β a spreadsheet doesn't have a column called "everything on the page." Someone still has to find the vendor name in the blob, find the date, find the total, and copy each into the right cell, which is the exact manual work you were trying to eliminate.
Structured data means every value arrives with a label: a "vendor" field, a "date" field, a "total" field, and a line item (an individual row on an invoice or receipt β description, quantity, unit price, amount) array with one entry per row. That output is JSON, which imports into Excel in one step and posts into accounting software through an API with zero re-typing. The extraction problem was never reading the characters β it was knowing which characters belong to which field.
Is a phone photo good enough, or do I need a scanner?
A phone photo is good enough for most documents, and it's how the majority of receipts enter an expense workflow in practice. Real-world photos arrive tilted, shot at an angle, with glare from overhead lighting and a cluttered desk in the background β so a serious pipeline runs pre-processing before extraction: deskewing (straightening a rotated image), de-noising, and cropping the document away from the background.
Pre-processing recovers a lot, but it can't invent pixels that were never captured. A sharper, flatter, better-lit photo still extracts more reliably than a blurry one β and the difference shows up directly in confidence scores. The practical rule: fill the frame with the document, avoid direct glare on thermal paper, and hold the phone roughly parallel to the page. Ten seconds of care at capture time saves a review step later.
What actually happens between upload and data?
The pipeline has four stages. First, you upload the image β JPG, PNG, or WebP for photos, with multi-page PDF and TIFF supported for scanned batches. Second, a vision-language model (Inferio uses Claude Vision) reads the page the way a person would: it understands that the text in the letterhead is the vendor, the number beside "Total" is the amount due, and the table in the middle is line items β layout and meaning together, not characters in isolation.
Third, the model returns structured JSON in which every field carries a confidence score between 0 and 1 β the model's own estimate of how likely that value is correct. Fourth, any field scoring below the review threshold (0.75 by default) routes to a human-in-the-loop correction UI, where a reviewer sees the original image beside the extracted value and fixes it in seconds. Fields above the threshold flow through untouched. The result: automation handles the volume, and a person only ever looks at the uncertain fraction β a wrong total never posts silently to your books.
How do I get the result into Excel or my accounting software?
There are three paths, in increasing order of automation. The manual path: export the extracted fields and open them in Excel β because the data is already labeled columns, it lands as rows you can filter and sum immediately, not text you still have to parse. The programmatic path: a REST API to submit documents and fetch results, plus a signed webhook that notifies your system the moment extraction finishes, so your ERP or internal tool ingests data without polling.
The third path is direct sync: an OAuth connection to freee or MoneyForward posts extracted invoices and receipts into your ledger without an export file in between. For Japanese documents this pairs with the compliance layer β the vendor's T-number (the 13-digit registration number under Japan's qualified invoice system) is validated against the NTA's public API, tax lines are classified into the 8% and 10% consumption-tax rates, and stored documents follow the Electronic Bookkeeping Law's 7-year retention requirement. The same pipeline reads documents in English, Japanese, and Vietnamese, so a mixed-language document set doesn't need separate tools.
Quick answers
- Can it read a blurry or tilted photo?
- Tilted, yes β deskew and de-noise pre-processing straightens rotated and skewed photos before extraction, so angle alone rarely causes failures. Blur is harder: pre-processing cannot restore detail that was never captured, so heavily blurred values come back with low confidence scores and route to human review at the 0.75 threshold instead of posting a guessed number. If a photo is badly blurred, retaking it is faster than reviewing it.
- How is this different from Google Lens or a basic image-to-text tool?
- Those tools stop at raw text β every word on the page as one blob, which you still have to read, interpret, and re-type into the right fields. Structured extraction returns labeled fields (vendor, date, total, line items) with a per-field confidence score, in JSON that imports into Excel or posts to accounting software directly. The output of image-to-text is something a person reads; the output of image-to-structured-data is something software consumes.
- Which image formats are supported?
- JPG, PNG, and WebP for photos and screenshots, plus multi-page PDF and TIFF for scanned documents in the full product. The public preview tool accepts image files up to 8MB β a normal phone photo is typically 2β5MB, so everyday captures fit without resizing.
- Can I get the results into Excel?
- Yes, and that's the point of structured output: the extracted fields arrive as labeled columns, so they open in Excel as clean rows β vendor, date, total, tax, line items β ready to filter and sum, with no text-parsing step. Teams that outgrow spreadsheet exports move to the REST API and webhooks, or sync directly into freee or MoneyForward.