Troubleshooting
What happened in 40 bank statement extraction tests
See documented DocuRows results from 40 bank-statement and control-page image tests across clean, low-resolution, grayscale, and rotated inputs.
The test set
We used 10 public source pages and created four conditions for each: a clean PNG, low-resolution JPEG, grayscale scan-style image, and rotated phone-photo-style image. Six sources contained bank statement transaction tables; the remaining pages tested credit-card adjacency, placeholders, and bank letters that should not become transaction rows.
Measured batch result
The model returned valid JSON for 40 of 40 images and extracted 364 transaction rows. Of those rows, 362 contained a signed amount. No extracted row was missing a date or description, and the money-in minus money-out consistency check reported zero mismatches.
- 40 of 40 API calls returned valid structured output
- 364 transaction rows extracted
- 362 rows contained signed amounts
- 0 missing dates and 0 missing descriptions
- 0 amount = money in - money out mismatches
Where the workflow was strongest
For three closed-balance bank statement sources, all nine non-rotated variants reconciled exactly. The negative controls also behaved correctly: eight placeholder or bank-letter variants produced zero transaction rows instead of inventing financial activity.
Known limitation: rotated photos
Rotated photo-like inputs still returned rows, but they were more likely to confuse transaction amount columns with running balances. That is why DocuRows asks for clear, upright, full-page images and keeps the source page beside the extracted rows for review.
Results by input condition
- Clean PNG
- 91 rows; all 91 had signed amounts
- Low-resolution JPEG
- 91 rows; all 91 had signed amounts
- Grayscale scan
- 91 rows; all 91 had signed amounts
- Rotated photo
- 91 rows; 89 had signed amounts and more review warnings
These results describe this specific public test set. They do not guarantee perfect accuracy on every bank or image, so review remains part of the workflow.
FAQ
Does 40 of 40 mean every extracted value was perfect?
No. It means every image returned valid structured output. Row quality was strongest on clean, low-resolution, and grayscale statement images; rotated photos still needed more review.
Were non-transaction pages tested?
Yes. Placeholder statement templates and a bank letter were included as negative controls. Across eight image variants, they correctly produced zero transaction rows.
What input should I upload for the best result?
Use the original PDF when possible. For scans or photos, keep the full page upright, bright, in focus, and uncropped. Redaction is fine when transaction dates, descriptions, and amounts remain readable.
Turn a statement file into reviewable rows
Upload a PDF, scan, screenshot, or clear photo and review the rows before downloading CSV.
