Home Blog Standardize Messy Documents: Turn Any Receipt/Invoice into Consistent Sheet Columns

Standardize Messy Documents: Turn Any Receipt/Invoice into Consistent Sheet Columns

If you’ve ever tried to track receipts and invoices in Google Sheets, you know the pain: every vendor formats documents differently, totals appear in random places, taxes have different names, and line items can be messy or missing.

The result is always the same: your spreadsheet turns into a chaotic mix of columns, typos, and “manual cleanup” that steals hours every week.

The good news: you can standardize messy documents into the exact same columns every time — even when receipts and invoices look completely different — by using AI extraction (not basic OCR).

Why OCR alone fails on “real world” receipts and invoices

Traditional OCR is great at reading text, but it doesn’t truly understand documents. It often struggles with:

  • Different layouts (supermarket receipt vs supplier invoice)
  • Taxes labeled differently (VAT, TVA, GST, tax, service)
  • Totals placed in unusual sections
  • Multi-currency invoices
  • Weird abbreviations or vendor-specific fields
  • Low-quality photos (blur, shadows, skew)

OCR typically returns a blob of text. Then you still have to decide what goes into which column.

That’s not standardization — that’s extra work.

The goal: the same columns, no matter the document

To standardize documents, you need two things:

  1. A consistent “structure” (schema)
  2. An extractor that understands what to pull, not just what it can read

That’s exactly how Img2Sheet works.

How Img2Sheet standardizes messy documents

Instead of “scan everything and hope for the best,” you define your spreadsheet structure first.

Step 1) Create your column structure (once)

You define the columns you want in Google Sheets, for example:

  • Vendor Name (text)
  • Invoice Number (text)
  • Date (text)
  • Subtotal (number)
  • Tax (number)
  • Total (number)
  • Currency (text)
  • Payment Method (text)
  • Category (text)

Each column has:

  • Label (what you want to see in Sheets)
  • Type (text or number)
  • Prompt (what the AI should extract, exactly)

This “prompt per column” is the key difference: you’re telling the AI the meaning of the field you want — not just asking it to read text.

Step 2) Upload a receipt or invoice that matches that structure

Receipts and invoices can be messy, angled, photographed in bad lighting, and still be usable.

Step 3) AI extracts data into your structure

The AI reads and understands the document, then maps the results into your predefined columns:

  • If the vendor calls it “TVA” it still fills Tax
  • If the total is at the bottom, top, or middle, it still fills Total
  • If the date format changes, it still fills Date
  • Numbers stay numbers, text stays text

Step 4) Results are inserted into Google Sheets in the same column order

Every document becomes one clean row in the exact same format.

That’s how you standardize.

Example: One structure, multiple formats

Let’s say you’re tracking monthly expenses:

  • Grocery receipts with “TOTAL” in big letters
  • Restaurant bills with service fees
  • Supplier invoices with a VAT breakdown
  • Fuel receipts with weird abbreviations

With a fixed structure, you get consistent rows like:

VendorDateSubtotalTaxTotalCurrency
Carrefour2026-01-01120.006.00126.00MAD
Shell2026-01-02300.000.00300.00MAD
Supplier X2026-01-021,200.00240.001,440.00MAD

Different documents, same columns.

What to put in your “prompt” field (so it works reliably)

Here are prompt patterns that work well:

  • Vendor Name: “Business or store name that issued the receipt/invoice.”
  • Invoice Number: “Invoice number / receipt number / reference ID (ignore phone numbers).”
  • Date: “Purchase or invoice date (prefer the main date, not due date unless specified).”
  • Tax: “Tax amount (VAT/TVA/GST). If multiple taxes exist, extract total tax.”
  • Total: “Final amount paid including taxes and fees.”
  • Currency: “Currency code or symbol (MAD, USD, EUR).”

Tip: If your receipts are messy, explicitly say what to ignore:

  • “Ignore cashier ID, loyalty points, and store address.”

Who benefits most from this workflow?

This kind of standardization is perfect for:

  • Small businesses tracking expenses in Sheets
  • Bookkeepers managing multiple clients
  • Agencies collecting receipts from team members
  • Ecommerce sellers tracking supplier invoices and COGS
  • Freelancers preparing monthly statements and tax reports

If your workflow touches receipts/invoices more than a few times per week, this saves real time.

Privacy note (important)

Img2Sheet does not keep your documents. Files are removed immediately after extraction, and only the extracted structured data is used to populate your spreadsheet.

Next step: standardize once, scale forever

The fastest way to stop cleaning spreadsheets is to set your structure once and reuse it across every receipt and invoice — regardless of vendor or layout.

Define your columns + prompts, upload documents, and let AI do the mapping.