Accuracy & OCR

How to Run an Accurate Proof of Concept for Receipt OCR

A receipt laid flat beside a structured data panel showing parsed fields and confidence scores, lit in blue and violet
Accuracy & OCR

Most OCR vendors quote a headline accuracy number. Here is the methodology to stress-test that number properly, against your own receipts, on your own terms. It works for evaluating any vendor, including us.

Ben Smith  ·  CTO & Head of Research  ·  2026-06-23  ·  7 min read
Key takeaways
  • Headline accuracy figures from vendors are almost always measured on their own curated test sets. A proper POC measures accuracy on your receipts.
  • The gold standard approach uses a blind held-back test set that the vendor never trains on, giving you an unbiased accuracy reading.
  • Ground truth is harder to establish than most teams expect. A trustworthy vendor will check your ground truth data and flag discrepancies before reporting results.
  • If you lack enough data for a blind test, a single-batch pragmatic POC is still better than taking a vendor's quoted figure at face value.

Every receipt OCR vendor has a headline accuracy number, and almost every one of those numbers is real in some narrow sense and misleading in every practical sense. It was measured on the vendor's own test set, on receipt formats the model was built for, under controlled conditions that have nothing to do with your data. A proper proof of concept replaces that number with a measurement that actually matters: accuracy on your receipts, on your formats, with your edge cases. This post lays out the methodology we use at Tabscanner and that any serious team should apply when evaluating any receipt OCR vendor, including us.

Why headline accuracy figures fail in practice

An accuracy figure only means something relative to the test set it was measured on. A model that scores 98% on a benchmark of US grocery receipts may perform significantly worse on European fuel receipts, hotel folios, or any format it has not been tuned for. The gap between benchmark accuracy and production accuracy is where most OCR evaluations go wrong.

Receipts are genuinely diverse. A single retailer may run different point-of-sale systems in different countries, producing layouts that look nothing alike. The same chain in France and Portugal may generate receipts with different field positions, different date formats, different tax line structures. A model that handles one will not automatically handle the other.

The only honest measure is performance on a sample drawn from the actual population you will process in production. Everything else is marketing.

Before you start: what to count as a format

Before collecting samples, align on what a format means. For POC purposes, a format is a distinct receipt layout produced by a specific retailer's POS system in a specific region. Two receipts from the same brand can be different formats if one comes from a French store and the other from a Portuguese store, or if the retailer changed its POS vendor between those two territories.

This distinction matters because training and configuration happen at the format level. If you lump different layouts together in your sample batch, the results become hard to interpret and the model harder to tune accurately.

A practical rule: if two receipts from the same brand look visually distinct in their field positions, date formatting, or tax presentation, treat them as separate formats in your sample collection.

Path 1: the gold standard POC

Use this path whenever you have enough samples to set aside a held-back test set. It is more work upfront, but it produces an accuracy figure you can actually trust.

1
Collect receipts and establish ground truth
Gather a representative batch of receipts covering the formats you need to process. For each receipt, manually record the correct values for every field you care about: merchant name, date, line items (description and price), tax and total. This is your ground truth. It is time-consuming, and that is the point. The quality of your ground truth directly determines the validity of every accuracy figure that follows.
2
Provide a minimum of three samples per format to the vendor
Hand the vendor a training set of at least three receipts per format, with five being a more comfortable minimum for complex layouts. This is the data they configure and tune on. Keep the ground truth for these samples as well. You will need it in step six.
3
The vendor trains and configures on the training set
Tabscanner uses this batch to configure parsing rules, tune field detection and adapt the model to your specific layouts. For a well-structured training set this takes days, not weeks. The vendor should be able to tell you which formats are well-covered and flag any where the sample count is too thin.
4
Hold back a separate blind test set
Before you hand anything to the vendor, set aside a portion of your receipts that they will never see during training. This is the blind test set. It must have ground truth established for every field you are measuring. The size depends on how many receipts you have, but even a modest blind set of twenty to thirty receipts across your formats is far more informative than no blind test at all.
5
Run the blind test set through the API yourself
Submit each receipt in the blind set directly to the vendor's API and compare the parsed output against your ground truth. Do this yourself, not through the vendor's reporting tool. You are measuring field-level accuracy: for each field, how often does the parsed value exactly match the ground truth? Aggregate by format and by field type to understand where the model performs well and where it does not.
6
Share your ground truth with the vendor for cross-checking
This step is the one most teams skip, and it is often the most revealing. Once you have your results, share your ground truth data with the vendor and ask them to cross-check it. In our experience at Tabscanner, a meaningful proportion of client ground truth datasets contain errors: a transposed price, a misread date, a line item captured with the wrong description. When those errors are in the ground truth, they show up as vendor errors in your accuracy report, inflating the apparent error rate. A vendor who catches these discrepancies and helps you understand the true performance figure is a vendor whose accuracy claims you can trust.

The ground truth problem is more common than you expect

Establishing accurate ground truth is genuinely difficult. Manual transcription introduces errors. Teams use different conventions for handling ambiguous fields, a truncated product name, a partially visible price. If two people transcribed different halves of the dataset without agreeing on a standard, you will have inconsistencies built into your benchmark before the vendor processes a single receipt.

This is not a criticism of the teams doing the work. It is a structural problem with manual data labelling at scale. The relevant point for a vendor evaluation is this: a vendor who reviews your ground truth and flags potential errors before reporting final results is demonstrating something important about how they think about accuracy. They are not just optimising their own score. They are trying to give you a true reading.

When Tabscanner runs a POC and the results come back, we ask to see the client's ground truth. We review it, flag discrepancies and present a reconciled accuracy figure alongside the raw one. That reconciled figure is the one that reflects real model performance.

A note on ground truth quality
If a vendor reports accuracy without ever looking at your ground truth data, treat that figure with caution. An unreviewed ground truth can contain enough labelling errors to shift a headline accuracy figure by several percentage points in either direction.

Path 2: the pragmatic POC

Not every team has the volume or the time to run a full blind test. If your receipt corpus is small, or if you are doing an initial feasibility check before committing to a full evaluation, a single-batch POC is still a meaningful step forward.

1
Provide a batch of receipts to the vendor
There is no held-back split here. The vendor trains and configures on the full batch you provide. Larger batches give the model more to work with and produce more stable results, but even a batch of twenty to thirty receipts spread across your main formats is worth doing.
2
The vendor returns an accuracy report based on the training batch
The vendor processes the batch and reports field-level accuracy against the ground truth you provided. Because the model was trained on this same data, the reported accuracy will be optimistic compared to what you would see on new, unseen receipts. That is an inherent limitation of this approach.
3
Validate by running the batch through the API yourself
Take the same batch and submit it directly to the API. Compare the output against your ground truth independently. This confirms that the vendor's reported figures are reproducible, that their pipeline is behaving consistently, and that you can verify results yourself rather than taking a report on trust.
4
Treat the results as a lower bound on error, not a ceiling
Because the model has seen this data during training, accuracy on new receipt formats or edge cases not in the batch may be lower. Use the pragmatic POC to establish feasibility and to get a baseline for the formats you tested. Plan to move to a blind test as your data volume grows.

What to measure and how to report it

Field-level accuracy is more useful than document-level accuracy. A document-level score tells you what percentage of receipts had every field correct. A field-level score tells you how each individual field performs, which is the number you actually need if you are building, for example, an expense tool where the total and date are critical but a missing middle line item is tolerable.

Measure accuracy separately for each field type (merchant, date, total, tax, line item description, line item price) and separately for each receipt format. An aggregate accuracy figure across all fields and all formats is too coarse to act on. A vendor who reports only the aggregate is hiding the distribution.

Field type Why it matters Evaluation note
Merchant name Affects routing, category mapping and deduplication Allow for normalised variants, not just exact string match
Date Critical for expense dating, duplicate detection and loyalty expiry Check date format normalisation, not just raw OCR output
Line item description Drives product-level loyalty and spend categorisation Partial matches common; agree a match definition before scoring
Line item price The financial figure; errors compound at scale Exact numeric match; flag currency symbol handling separately
Tax amount Required for VAT reclaim and compliant expense records Test across jurisdictions if relevant to your receipt mix
Total The most visible field; errors are immediately noticed Exact numeric match; often easier than line items
A printed receipt beside a laptop showing a structured data grid comparing parsed output to ground truth field by field
Field-level accuracy broken out by format gives you a usable benchmark. A single aggregate figure does not.

The real cost of a one percent error rate versus ten percent

Error rates compound. A one percent field error rate on a total field means one in every hundred expense claims carries an incorrect amount. At ten thousand claims a month, that is a hundred errors entering your finance system every month, each one requiring investigation, correction and potential reprocessing.

At industry-typical error rates of ten to fifteen percent for general-purpose OCR applied to receipts without specialist training, the same volume produces between one thousand and fifteen hundred errors per month. The operational cost to catch and correct those errors, staff time, delayed reimbursements, audit exposure, is rarely included in the headline price comparison between OCR vendors.

A POC that measures real field-level error rates on your actual receipts lets you project these costs accurately before you commit to a production integration.

10-15%
Typical field error rate for general-purpose OCR applied to receipts without specialist training, according to common industry benchmarks for unstructured document OCR.

What a trustworthy vendor does differently during a POC

Beyond the mechanics of the test, the way a vendor behaves during a POC tells you a great deal about how they will behave in production. A few things to observe.

Do they tell you which formats are under-sampled and ask for more data before they start? A vendor who trains on three receipts per format and does not flag that as thin is prioritising a fast turnaround over a useful result. Do they report accuracy by field and by format, or only as a single aggregate? The aggregate hides problems. Do they ask to see your ground truth and cross-check it, or do they report results against whatever you gave them without question? And when accuracy on a particular format is lower than expected, do they explain why and propose a path to improvement, or do they just move on?

None of these are difficult tests. But vendors who do all of them consistently are treating accuracy as an engineering problem rather than a sales exercise.

Scale the POC to the data you actually have

A rigorous methodology does not require thousands of receipts. The key is proportionality. If you have ten receipt formats and thirty samples per format, you can run a meaningful blind test with a twenty percent hold-out. If you have two formats and fifteen samples total, you cannot run a clean blind test, and Path 2 is the honest choice for now.

Be clear with your vendor about what you have. A vendor who pushes you toward Path 1 even when your sample count does not support it is setting up a test that will produce noisy, hard-to-interpret results. Scale the rigour to your data, not to the vendor's preference.

As your production volume grows, revisit the evaluation. A POC run at launch with fifty receipts tells you something useful. A re-evaluation run six months later with five hundred receipts drawn from production tells you something much more precise.

Path 1
The Gold Standard
Requires enough samples for a held-back blind set
1
Collect receipts, establish ground truth on full batch
2
Provide 3 to 5 samples per format to the vendor
3
Vendor trains and configures on the training set
4
Hold back a blind test set the vendor never sees
5
You run the blind set through the API and score it
6
Vendor cross-checks your ground truth and reconciles the accuracy report
Path 2
The Pragmatic Option
When sample volume does not support a blind split
1
Provide a full batch with ground truth to the vendor
2
Vendor trains on that batch and returns an accuracy report
3
You run the same batch through the API to verify reproducibility
4
Treat results as a lower bound, not a ceiling; plan to re-evaluate as data grows
Note: because the model saw this data during training, reported accuracy will be optimistic relative to unseen receipts.

Path 1 uses a blind held-back test set for an unbiased accuracy reading. Path 2 is a reasonable fallback when sample volume is limited.

A vendor who checks your ground truth and flags errors before reporting results is not trying to inflate their score. They are trying to give you a true reading. That is the difference between a sales exercise and an engineering one.

Ready to run a POC on your receipts?

Tabscanner processes receipts from across the globe, from grocery and fuel to hospitality and retail, and we apply this methodology to every vendor evaluation we run. Get in touch to talk through your receipt mix, your sample volume and which path makes sense for your evaluation.

Get in touchRead the docs

Ben SmithBen Smith
Based in Tokyo, Ben Smith is the Chief Technology Officer and Head of Research at Tabscanner. He pioneers deep learning models specifically designed for receipt optical character recognition (OCR) and document classification, engineering the core AI architectures that enable high-accuracy data extraction.
Connect on LinkedIn →

Get in touch to see how we can boost your accuracy

Tell us what you are building and we will show you how Tabscanner's receipt OCR handles your receipts and your accuracy targets.

Get in touch
← All articles