Delivery notes come in a hundred layouts. The reader pulls out supplier, date, numbers and every line item.
Every value comes with the place in the document it was read from. Anything not clearly readable is reported as uncertain instead of guessed.
PDFs with a text layer get a second, automatic check: the server searches the file for the quote and marks the value when it is not there. Scans and photos have no text layer, so there the quote is shown for you to check by eye.
Prepared runs. They answer at once and need no model.
Uploaded documents are processed for this one answer only and are not stored. The reader runs on the Google Gemini interface.
The usual failure is not a field read wrongly. The usual failure is a value that appears although it is not on the paper at all, and nobody notices.
The model has to supply the printed passage it read each field from. Without a quote, a value does not count as read.
If the document has a text layer, the server looks for the quote in it. If it is not there, the value is not shown as fact but as what it is.
Who delivers and who receives has to be evidenced by a printed field label. Impossible dates and implausible quantities go to review. The code decides that, not the model.