Can ChatGPT Extract Data From Receipts? What the Benchmarks Show
Jul 9, 2026
Turn your receipts and invoices into a clean Excel or CSV file. Upload one or a whole batch:
PDF, JPG, PNG, BMP, HEIC, TIFF
Upload your receipts and invoices
Drop files here or click to upload
Up to 50 files
Uploading...
Last updated July 2026.
Yes, ChatGPT can read a receipt photo and give you the merchant, date, and total, and for a single receipt it usually gets them right. It is not reliable for a stack of them. Published benchmarks put general vision models well behind dedicated document AI on field extraction, the same file can return different numbers on different runs, and on consumer settings your uploads train the model by default.
Can ChatGPT read receipts?
It can. Attach a photo of a receipt and the model performs optical character recognition on the pixels and reasons about what it read, so it can hand back the merchant, the date, the subtotal, the sales tax, and the total. Attach a PDF invoice instead and a different mechanism runs: the file is parsed for its text layer, and on vision-capable models the page images are passed along too.
That distinction matters more than it sounds. A digital PDF invoice carries a text layer, so the model is reading characters that already exist. A photograph of crumpled thermal paper has no text layer at all, and everything depends on the model correctly transcribing faded ink at an angle. Those are different tasks with very different error rates, and most people testing ChatGPT on one clean PDF conclude it works, then discover the shoebox is another story.
How accurate is ChatGPT at reading receipts and invoices?
Accurate enough to be dangerous, which is the honest summary. On clean documents it does well. On the documents that actually pile up in a business, it degrades in ways that are hard to notice, because a wrong number looks exactly like a right one.
Here is what the published research reports. These are the numbers, with their sources, rather than a vendor claim.
| What was measured | Result for a general GPT vision model | Source |
|---|---|---|
| Form field extraction (FUNSD, entity recognition F1) | 34.5, far below supervised models | Shi et al., arXiv 2310.16809 |
| Table structure recognition (WTW) | 25.6 versus 91.9 for a supervised model | Shi et al., arXiv 2310.16809 |
| Hallucination-free accuracy on degraded real documents including invoices | 30.2 percent for GPT-4o | KIE-HVQA, arXiv 2506.20168 |
| Receipt question answering, exact match | 35.0 percent for GPT-4o | ReceiptSense, arXiv 2406.04493 |
| Invoice field accuracy, image only | 90.5 percent, rising to 98.0 percent when fed external OCR text | BusinesswareTech industry benchmark, January 2025 |
| Document visual question answering (DocVQA) | 0.928 for GPT-4o, against 0.964 for the leading specialized model and 0.944 for humans | llm-stats DocVQA leaderboard, self-reported scores |
Two findings deserve to be pulled out of that table. First, the paper Exploring OCR Capabilities of GPT-4V states its conclusion in one sentence: GPT-4V does not outperform existing state-of-the-art OCR models. Second, the invoice benchmark that flatters GPT the most only reaches 98 percent when a separate OCR engine reads the characters first and hands the text to the model. Image only, it drops to 90.5 percent, behind a dedicated cloud document service. The model is a good reasoner about text and a mediocre reader of it.
Table structure is where receipts break hardest. Line items live in a table, and a score of 25.6 on table structure recognition means rows get merged, dropped, or invented. If you only ever check the total, you will not see it happen. We covered the broader measurement problem in how accurate receipt OCR really is, because character accuracy, field accuracy, and document accuracy are three different numbers and vendors quote the flattering one.
Why does ChatGPT make up numbers on a receipt?
Because when the pixels are ambiguous, a language model falls back on what text usually looks like rather than admitting it cannot see. The KIE-HVQA researchers describe models defaulting to linguistic priors instead of anchoring decisions to observable visual evidence. In plain terms, a smudged 3 that could be an 8 becomes whichever digit the model finds more plausible, and it reports the guess with total confidence.
Developers on OpenAI's own community forum describe exactly this. One post about reading commercial invoices reports that the model makes up the prices and does not read all the products. Another, extracting financial data from tables, reports that the same PDF with the same prompt sometimes gives correct data and sometimes wrong. A separate benchmark of a long PDF found 6 of 56 answers inaccurate.
Research on financial document extraction has found that numerical values and monetary units are the most vulnerable fact types. For a receipt, that is the entire payload. An OCR engine that misreads a character tends to misread it the same way every time, which is a bug you can find and correct. A language model invents a different plausible number, which is a bug you can only catch by checking every line against the paper.
Will ChatGPT give me the same answer twice?
Not guaranteed. OpenAI is explicit about this in its own documentation: the API is non-deterministic by default, and while a seed parameter exists, the docs say the system will make a best effort to sample deterministically and that determinism is not guaranteed. A system fingerprint value changes whenever OpenAI updates the backend, and outputs can differ even when it matches.
For a chatbot answering questions, run-to-run variation is invisible and harmless. For bookkeeping it is disqualifying. Reprocess last month's receipts and you may get a different figure, with no way to explain which run was right. Repeatability is the quiet requirement nobody writes into a comparison table, and it is the reason a monthly close does not run on a chat window.
Can ChatGPT process multiple receipts at once?
In small numbers. You can attach several images to a message and ask for one table back, and for five or ten receipts that works well. It falls apart as a batch process for three reasons: you upload the files by hand, accuracy degrades as more documents share the same context window, and there is no persistence. Close the chat and the extraction is gone. There is no vendor search, no reconciliation against a bank feed, and nothing to import into a ledger.
Researchers have also documented a primacy effect: models score higher when the relevant information sits near the beginning of a long input. Load thirty receipts into one conversation and the ones at the end are read less carefully than the ones at the start. That is not a setting you can turn off.
If your job is a folder of documents rather than one receipt, the shape of the tool matters more than the intelligence of the model. A bulk receipt scanner reads each document independently, so accuracy on the two hundredth receipt equals accuracy on the first, and every row lands in one spreadsheet.
Is there a limit to the number of receipts ChatGPT can process at one time?
There are documented limits, though they are file limits rather than receipt limits. OpenAI's file upload documentation states a hard cap of 512 MB per file, roughly 50 MB for spreadsheets, and 2 million tokens per text or document file. Images are capped at 20 MB each, and uploads are rate limited to 80 files per 3 hours. Per-message file counts and per-tier message caps change often enough that you should check the current help pages rather than trust any article, including this one.
The practical limit arrives well before the documented one. Long before you hit 80 files, the context window and the manual upload work make the exercise slower than typing the receipts would have been.
Is it safe to upload client receipts to ChatGPT?
On a consumer account with default settings, no, not if they belong to somebody else. OpenAI's help documentation states that ChatGPT improves by further training on the conversations people have with it unless you opt out, and that this includes content such as images and files. Turning it off means going to Settings, then Data Controls, and disabling the option called Improve the model for everyone.
The business paths are different and are worth knowing. OpenAI's platform documentation states that as of March 1, 2023, data sent to the OpenAI API is not used to train or improve OpenAI models unless you explicitly opt in. Its enterprise privacy pages say the same for ChatGPT Enterprise, ChatGPT Business, and Edu. API abuse-monitoring logs are retained for up to 30 days by default, and approved customers can request Zero Data Retention, which removes even that copy.
For a bookkeeper, this is not a technicality. A client's receipts are the client's confidential records. Dropping them into a consumer chat window with default settings contributes a third party's financial data to a training corpus, and no consumer feature exempts documents that belong to somebody else.
Does the IRS accept ChatGPT output as a receipt record?
The extraction is not the record. The receipt is. Under Revenue Procedure 97-22, records kept in an electronic storage system count as records under Section 6001 only if the system indexes, stores, preserves, retrieves, and reproduces them in legible format, and can produce hard copies on request. IRS Publication 583 repeats the point plainly: all requirements that apply to hard copy books and records also apply to electronic storage systems.
A chat transcript containing numbers a model read off an image satisfies none of that. Whatever tool you use to extract the data, you still have to keep the source images in a system that can reproduce them legibly for as long as they are material to administering tax law. We wrote up the details in does the IRS accept digital receipts, and the short version is that scans are fine and a chat log is not a filing system.
Is the OpenAI API better than the chat app for this?
Meaningfully, yes, if you are a developer. Structured Outputs lets you supply a JSON Schema, and OpenAI's documentation says the feature ensures the model will always generate responses that adhere to it, though the same guide has a section on handling the cases where it does not. The Batch API accepts up to 50,000 requests per batch, completes within 24 hours, and costs 50 percent less than synchronous calls, which suits a month-end run.
Be clear about what that fixes. Structured Outputs constrains the shape of the answer, not the truth of it. A schema guarantees you receive a field called total containing a number. It does not guarantee the number matches the paper. You have bought reliable JSON around an unreliable reading, and every accuracy and determinism problem above still applies. If you want the fields without building that pipeline, a purpose-built receipt OCR API returns them directly.
When ChatGPT is genuinely the right tool
Reach for it when the task is one-off and a human is checking the answer anyway. Reading a single receipt you cannot quite make out. Asking which expense category a purchase probably belongs in. Summarizing a contract clause. Drafting the email to a vendor about a disputed line. These are reasoning tasks with a person in the loop, which is what the model is good at.
Reach for something else when the task is repetitive, numerical, and audited. Three hundred receipts before a filing deadline. A monthly close that has to produce the same figures twice. Line items that have to survive into a ledger. Client documents that cannot enter a training set. In those cases the winning property is boring: the same document produces the same fields, every time, in a file you can keep.
What to use instead for receipts and invoices
A dedicated engine reads each document independently, returns consistent columns, and lets you review the fields before anything is exported. For expenses, receipt OCR software handles the reading and the receipt to Excel converter puts vendor, date, tax, and total into a spreadsheet you can sort. Teams that need one place to organize the documents alongside the data use receipt management software, and books get closed by importing the file when you scan receipts into QuickBooks.
The same reasoning applies beyond receipts. If the document is a bank statement rather than a purchase, the fastest route is to convert the PDF statement into a spreadsheet and reconcile from there instead of asking a chat model to transcribe ninety rows of transactions. And if you are evaluating this whole category rather than one tool, the intelligent document processing overview explains which parts of a document platform most buyers actually use, and which parts they pay for and never switch on.
None of this makes ChatGPT a bad product. It makes it the wrong shape for a job that rewards being correct in the same way twice.