A receipt photo still leaves someone to transcribe the details, spot mistakes and prepare an expense record. The review needs to keep the original evidence within reach.
Compare without switching screens
Editable fields and the receipt image share one view. A person checking the merchant, date or total can compare the value with its source while making a correction. Synthetic samples make that workflow available without uploading personal receipts.

Keep incomplete records editable
A missing amount stays null. Normalization turns absent fields into a low-confidence draft with review notes. Invalid line items fail validation rather than quietly becoming a complete expense record.
Upgrade the library and protect the contract
The Zod 4 upgrade and validation tests cover nullable line items, omitted quantities, invalid values and unexpected provider fields. The change checks what receipt data the new library accepts and rejects. Mocked extraction tests keep those cases reproducible; they do not establish that a live model request succeeds.
Demo scope
The sample review uses synthetic receipts. A fresh image-extraction-to-export run was not exercised for this story. The work shown covers receipt review, validation and dependency maintenance; earlier project attribution remains in the repository.