All posts

Build your MVP

Proof of Concept First: How We De-Risked the Vendor Choice for Receipt Automation

Why we tested the data-extraction vendor with real receipts before building an invoice automation tool, and how to de-risk any AI-dependent feature.

MindForge Engineering3 min read

If the core of your product is "the software reads this document for you", everything depends on how well an external extraction service reads your documents. On a receipt and invoice automation tool we built for a client's finance workflow, we delivered a proof of concept before the full product specifically to answer that question early. It is the approach we now recommend for any feature that relies on a third-party AI or OCR service.

The product

The client's team was transcribing paper and photographed receipts and invoices by hand. The tool turns a photo into structured, searchable financial data automatically:

  • It extracts the vendor, total, tax and date from each image.
  • It gives staff an admin dashboard, built on Laravel and Filament, for reviewing processed documents.
  • It removes manual transcription from the expense workflow.

Why the vendor was the real risk

The code around extraction (uploading, storing, listing and searching documents) is well-understood work. The uncertain part is the extraction itself. Services differ in how they handle faded thermal paper, skewed photos, handwritten totals, multiple currencies and layouts they have not seen.

A vendor's own demo, run on its own sample documents, cannot tell you how it performs on your documents. If you discover a mismatch after building the full product around one vendor's response format, you pay twice.

What the proof of concept was for

We delivered the proof of concept first to de-risk the vendor integration choice. A useful proof of concept has a narrow job:

  1. Use the client's real documents. A realistic sample of what staff actually photograph, including the awkward ones.
  2. Extract only the fields that matter. Vendor, total, tax and date. Nothing that the workflow does not need yet.
  3. Look at the failures, not the average. The question is not "does it usually work" but "what happens when it does not".
  4. Decide. Proceed with the vendor, try another, or change the approach.

Only after that did the full product get built around the chosen integration.

Design for review from day one

No extraction service is right every time. Accepting that shaped the product: the admin dashboard exists so people can review processed documents, see what was extracted and correct it where needed.

This matters for trust. Finance staff will only rely on automated data if they can see it and fix it. A tool that silently writes wrong totals into records is worse than manual entry, because the errors are harder to find.

Keep the vendor replaceable

Even after a good proof of concept, vendors change pricing, accuracy and terms. We keep the extraction service behind one integration point in the application, so the rest of the system works with a consistent internal format regardless of which service produced it. Switching vendors then means changing one part of the system, not the whole of it.

When to run a proof of concept first

This pattern is worth it whenever a product depends on something you do not control and cannot fully predict:

  • AI or OCR extraction from real-world documents.
  • Third-party data feeds with uncertain quality or coverage.
  • Hardware or device integrations.
  • Any external API whose limits you have not tested under your own conditions.

For well-understood features, a proof of concept adds delay without reducing much risk. Save it for the unknowns.

The checklist

  • Identify the one external dependency the product cannot work without.
  • Test it with real, messy inputs before building around it.
  • Define in advance what result means "go".
  • Design a human review step into the product.
  • Isolate the vendor behind one integration point.

A related approach, validating two whole technical directions before committing, is in testing two architectures in parallel. The anonymised project write-up is in our work library, and this kind of practical automation is what our business automation service covers.

Client details in this post are anonymised to respect confidentiality. The engineering described is from the project listed below.

Have something you need to build?

Whether you’re starting with an idea, improving an existing product, or trying to rescue unfinished software, we’ll help turn the next step into a clear plan.

No sales presentation. We start with the problem.