Time needed
240 minutes · 8 steps
What it takes
Nothing to install
What it costs
A free path exists
Last checked
2026-09-01

The steps

Only approved or redacted sensitive material
  • Grants and operations
  • Director or leadership
  • Transcribing testimonies and interviews
  • Grants and admin
  • Cleaning and analyzing data
  • Verifying images, video and claims
  • Protecting sensitive information
These are instructions, not case studies

A recipe tells you what to do. It is not a report of something that already happened somewhere else. Nothing here claims that any organisation did this. It is written for you to do now, and every step tells you how to check it worked.

What you will make

A donor-ready spreadsheet and a paper-to-row audit trail. Each spreadsheet row points to one numbered receipt, and every amount is checked by a person.

Use synthetic receipts during the workshop. Do not photograph a real receipt until it has passed the data gate.

Choose the data lane first

  • Public: Use only synthetic or deliberately published examples for demonstrations.
  • Internal: Ordinary expense records can follow the organisation’s approved scanning, storage, and account rules.
  • Identifiable: Names, phone numbers, identity numbers, medical or legal services, protected travel, and sensitive locations stay local or are entered by hand.

One receipt can reveal a person’s location, health, legal issue, or movement. Sort the paper before opening a camera or tool.

Workshop route

  1. Sort receipts by data lane and keep the groups physically separate.
  2. Give every receipt a unique reference number before photography or entry.
  3. Define the spreadsheet columns, currency rule, and date format.
  4. Extract or enter one small batch, then match every row to its receipt.
  5. Recalculate totals independently before moving to the next batch.

Five checks before you finish

  1. Data: Did any receipt enter a tool or account that is not approved for its lane?
  2. Input: Do receipt count, currency, date format, and image reference match the paper set?
  3. Output: Are vendor, date, amount, tax, currency, and category copied correctly?
  4. Human: Has someone checked every amount and recalculated totals with a calculator or spreadsheet formula?
  5. Record: Can a reviewer trace each row to the source receipt, entry method, date, and checker?

Stop and recover when

Stop if a digit is unreadable, the currency is unclear, totals conflict, or the receipt could expose a protected person or place. Mark the cell for review and return to the paper. Never invent a missing value to make the total balance.

What happens to your information

Never use this for

Do not upload receipts revealing protected people, medical or legal services, safe locations, identity numbers or sensitive travel. Never submit totals without checking paper.

What leaves your device

Whose law it lands under · The fully offline option

Photos, prompts and extracted rows leave in a hosted route. Camera backup may upload photos before the AI step. A verified local model avoids hosted inference, but not sync, telemetry, backups or device access.

Whose law it lands under

Hosted processing follows provider and account terms. Manual and verified local processing stay under device and organisation controls.

The fully offline option

Enter receipts manually, or test a local vision model on synthetic receipts while disconnected. Ollama also serves cloud models, so the brand alone does not prove local processing.

What it costs

Paying for this from Iraq

Do not assume service access means an Iraqi payment method is accepted. The manual route needs no account or card.

The free path

If you pay

Manual entry and spreadsheet checking are free. Test a free hosted vision tool only with synthetic or approved public examples under current terms.

If you pay

No price is required for the workshop. Check current vendor pricing before recurring hosted use.

Before you start

  • Synthetic receipts for the workshop and a donor spreadsheet template.
  • A person authorised to classify receipts and approve any hosted route.
  • A protected folder, camera backup controls and a spreadsheet that imports UTF-8.
  • A second person or independent calculation for totals.

Which machines this works on

The main route uses a camera, protected folder and spreadsheet on any platform. Import CSV as UTF-8. Accept a local model route only after a public test, model-name check and disconnected proof.

The steps

  1. Step 1 / 8

    Sort every receipt before photography into public or synthetic, internal and identifiable lanes. Give each receipt a unique paper reference.

    Check it worked

    The receipt count equals the reference list, and identifiable receipts are physically separated for manual entry.

  2. Step 2 / 8

    Turn off automatic photo backup and camera location recording. Photograph only the approved set, one receipt per image, and copy it to the protected folder.

    Check it worked

    No receipt photo appears in a cloud photo account, and a copied sample shows no location metadata.

  3. Step 3 / 8

    Define the spreadsheet before extraction: reference, filename, date, vendor, description, currency, amount as printed, numeric amount, category, confidence and reviewer.

    Check it worked

    The template uses an explicit currency field and no formula mixes currencies.

  4. Step 4 / 8

    Choose manual, hosted or verified local entry. Hosted use is limited to the approved lane and exact account. For Ollama, confirm the selected model is local, has no -cloud suffix and runs on synthetic images with the network disconnected.

    Check it worked

    The work log records route, product, model, account or device, settings, source, date and approver.

  5. Step 5 / 8

    Process no more than ten images per batch. Require one row per named filename, preserve the printed amount exactly, convert digits separately and mark uncertainty instead of guessing.

    Copy this exactly

    Create CSV rows for the listed receipt images. Use only visible information. Return one row per filename in the same order. Preserve amount_as_printed exactly. Put UNKNOWN when currency or digits are unclear. Do not calculate a missing value.
    
    FILENAMES:
    [paste ordered list]
    
    COLUMNS:
    receipt_ref,image_file,date,vendor,description,currency,amount_as_printed,numeric_amount,category,confidence,review_note

    Check it worked

    Returned row count equals image count and every row carries the correct paper reference and filename.

  6. Step 6 / 8

    Import the CSV as UTF-8 and compare every row with its paper receipt. Check date, vendor, currency, digit order, separators, amount, tax and category.

    Check it worked

    Every row is initialled by a reviewer, and unclear cells remain marked rather than silently corrected.

  7. Step 7 / 8

    Recalculate totals independently by currency. Compare receipt count, row count, batch totals and donor-category totals. Inspect the largest and smallest values.

    Check it worked

    Independent totals match the verified rows. Differences are traced to a receipt before the batch is accepted.

  8. Step 8 / 8

    Enter identifiable receipts manually, merge only verified batches, and add a paper-to-row audit log. Store the spreadsheet as a combined movement and spending record.

    Check it worked

    A reviewer can select any row and find the paper receipt, entry route, checker and correction history.

How to know the whole thing worked

The row count matches the paper count, totals reconcile independently by currency, every row traces to a receipt, and no identifiable receipt entered an unapproved hosted route.

What goes wrong, and what to do about it

  • Arabic becomes question marks. Re-import as UTF-8 instead of using the system code page.
  • Digit order or a separator changes value. Compare amount_as_printed with paper and recalculate.
  • The model drops an image or duplicates a row. Reject the batch and process a smaller named set.
  • An Ollama model fails while disconnected or uses a -cloud suffix. It is not the local route.

How well it works in your language

Arabic (Modern Standard) · Iraqi Arabic · Kurdish (Sorani)

Arabic (Modern Standard)

Printed Arabic labels may be extracted, but vendor names, digits, separators and totals need row-by-row checks.

Iraqi Arabic

Local abbreviations and thermal print are not covered by a reliable general benchmark. Test the real receipt set.

Kurdish (Sorani)

No evidence here establishes accuracy on Sorani receipts. Use manual entry unless a representative test and fluent review pass.

What that rests on

KITAB-Bench documents serious Arabic OCR and numeral errors, but it is not a benchmark of Iraqi receipts or current hosted models.

Software named in this recipe

  • A spreadsheet
  • Google AI Studio or Gemini
  • Ollama local or cloud models
  • Manual entry

Sources

A CDR original, written for POINT Conference Iraq 7. Checked against vendor pages and package registries in August 2026; the sources are listed on this page.

What we could not verify

No cited benchmark measures current tools on Iraqi thermal receipts or Sorani receipts. OCR quality, free limits, model names and terms change. Manual entry may be faster after review time is counted. A combined receipt file can reveal organisational movement and spending.

All recipes