If a transaction description on your ArmSwissBank statement is long enough to wrap across two or three lines, it still needs to land in a single row once converted. When a transaction description runs long and wraps onto the next line, many manual conversions break: a single entry is split into two rows, the date and amount are separated from their detail, and the running balance no longer adds up. The engine reads the layout geometry, not just the text, so it recognises that a block of wrapped lines belongs to the same transaction. The description is reassembled into one row before the amount and balance are assigned, preserving the statement’s own line-by-line logic.
When your ArmSwissBank statement arrives as a scan or a photo of the page rather than a clean export, the numbers on it are just pixels until they are extracted. A scanned or photographed statement carries the same data as a clean export, but the extraction path is different. The statement is read with OCR, which measures each character against probability models built from bank statement typefaces. The closing balance printed on the document serves as the anchor: every running-balance row is verified against it. A smudge that turns a 3 into an 8 is caught by that arithmetic check, not by a human squinting at the scan. The row is flagged for review, while every other row that does balance correctly is kept and exported.