EVREN guides · 2026-09-25

Source verification for visual documents with EVREN

Ways to see where each extracted value came from when reading scanned invoices, forms and contracts with EVREN's image-capable rows, and to decide which fields should go to human approval.

Review screen in which the date, amount and IBAN extracted from a scanned invoice are each matched to their place on the page and checked.

Short answer

Five EVREN rows accept images, and extracting fields from a scanned document can be done with them. Reading from an image, though, goes wrong most often on numbers, dates and handwriting. Asking the model not only for the value but also for how it saw that value on the page lets a person compare the result with the original document quickly.

We recommend using EVREN through LLMTR: you register your own EVREN key once in Settings, and the same code then reaches both EVREN models and the rest of the catalog. The key stays yours, and EVREN's own logging and retention policy still applies unchanged.

Which row for which document

The rows that accept images are Gemma 4 31B, Qwen3 VL 30B, Qwen3.8 Flash Next, MiMo V2.6 Pro and DeepSeek V4.1 Flash TR. For Gemma 4 31B, EVREN lists document reading, chart reading, handwriting recognition and object detection with bounding boxes; that is the most direct match for documents such as forms and invoices. Qwen3 VL 30B is offered for heavy visual reasoning and is an option for work where several images must be interpreted together. On Qwen3.8 Flash Next, vision is described as secondary. MiMo V2.6 Pro and DeepSeek V4.1 Flash TR can also return their output as schema-conforming JSON.

PDF is not a declared input type on these rows. The pages of a scanned PDF are converted to images and sent as images. Sending each page in its own request also makes it easy to keep the page number with the result on your side.

Asking for the source alongside the value

What makes verification easier is that each value comes with the text the model saw on the page. The reviewer then looks for the writing on the page rather than the model's interpretation. Asking for an explicit marker instead of a guess when a field cannot be read keeps missing information from looking like an invented value.

JSON mode is not offered on the rows other than MiMo V2.6 Pro and DeepSeek V4.1 Flash TR, so the output format is described in the instruction and the answer is parsed on your side. Lines that do not follow the format go to review as well. The example below asks for the fields line by line and adds unreadable fields, and any IBAN whose check digits fail, to a review list.

Asking for the visible text with each value and checking it

import re

PROMPT = """Extract the fields below from this page. Write one line per field:
field | value | text as it appears on the page
If a field cannot be read, write UNREADABLE instead of a value. Add nothing else.
Fields: invoice_no, date, total_amount, iban"""

def parse(answer: str) -> dict[str, dict[str, str]]:
    rows = {}
    for line in answer.splitlines():
        parts = [p.strip() for p in line.split("|")]
        if len(parts) == 3:
            rows[parts[0]] = {"value": parts[1], "seen": parts[2]}
    return rows

def iban_valid(iban: str) -> bool:
    s = re.sub(r"\s", "", iban).upper()
    if not re.fullmatch(r"TR\d{24}", s):
        return False
    n = int("".join(str(int(c, 36)) for c in s[4:] + s[:4]))
    return n % 97 == 1

rows = parse(model_answer)
review = [k for k, v in rows.items() if v["value"] == "UNREADABLE"]
if "iban" in rows and not iban_valid(rows["iban"]["value"]):
    review.append("iban")

Fields that carry error risk

Not every field read from an image carries the same risk. The table shows the fields that cause trouble most often and a check that can be used for each.

Risky fields in visual documents and their checks
FieldWhy it is riskyCheck
AmountsDots and commas, thousands separators and currencies can be confusedComparing line items with the grand total
DatesDay and month order, two-digit yearsConsistency with other dates in the document
IBAN and Turkish national ID numberOne wrong digit points to another account or personCheck digit calculation
HandwritingSimilar letters and digits can be confusedHuman approval
Signature and stampPresence can be seen, validity cannot be judged from an imageThe original document

Where human review comes in

These rows return no confidence score; rules decide which results go to a person. Fields marked unreadable, numbers whose check digits fail and amounts that do not add up go to review. To catch errors the rules miss, a regular sample of results that passed the checks is reviewed too.

Visual documents often carry personal data: names, addresses, ID and account numbers. Cropping the parts the task does not need before sending is the visual counterpart of the data reduction described in this series' sensitive-data article.

Preparing the image

Reading accuracy depends largely on the image itself. A phone photo taken at an angle, a shadowed edge or very low resolution makes digits get confused even on the strongest model. Scanning the page flat and complete, correcting the perspective where needed and keeping one page per image often makes a bigger difference than the choice of model.

In multi-page documents information is spread across pages: invoice lines can be on the first page and the grand total on the last. Reading the pages one by one and merging the results on your side also means the total check happens during that merge.

Frequently asked questions

Should I use EVREN directly or through LLMTR?

We recommend using EVREN through LLMTR. Your requests still go to EVREN on your own EVREN key and LLMTR charges nothing for them; the difference is that the same code also reaches the other models in the catalog. EVREN's logging and retention policy is not affected by the choice.

Which EVREN models accept images?

Gemma 4 31B, Qwen3 VL 30B, Qwen3.8 Flash Next, MiMo V2.6 Pro and DeepSeek V4.1 Flash TR. EVREN lists document and chart reading and handwriting recognition for Gemma 4 31B.

Can I send a scanned PDF?

PDF is not a declared input type on these rows. Pages are converted to images and sent as images; one request per page makes it easier to match the page number with the result.

Can results from handwritten forms be trusted?

EVREN lists handwriting recognition for Gemma 4 31B, but handwriting is where reading from images goes wrong most often. Sending those fields to human approval catches an error before it becomes a decision.

Can the model return its output as JSON?

On MiMo V2.6 Pro and DeepSeek V4.1 Flash TR, yes: JSON mode and schema-conforming structured output are offered. On the other EVREN rows JSON mode is not offered; the model can follow a format requested in the instruction, but compliance is not guaranteed, so the answer is parsed on your side and lines that do not fit the format go to review.

Related posts