An SBI account statement is unusually wide for an Indian retail layout. Alongside Txn Date, Value Date, Debit, Credit and Balance it carries a Description column and, on many statements, both a Ref No./Cheque No. column and a separate Branch Code column wedged between the reference and the amounts. That extra branch column is the quiet troublemaker: a converter working from column positions rather than a real table reads the branch code as an amount, or slides every figure one column left. Meanwhile SBI descriptions are machine-generated strings — TO TRANSFER, BY TRANSFER, long NEFT and UPI payloads packed with slashes and dashes — that routinely wrap onto a second and third line.
- The statement is read as a table, so the Branch Code column stays a branch code and never lands in Debit.
- Wrapped TRANSFER and NEFT descriptions are rejoined into the single transaction they belong to.
- Txn Date and Value Date are kept apart, which matters on SBI because they disagree on plenty of rows.
- The printed running balance is used to verify the output, so a dropped or duplicated row surfaces as a DISCREPANCY rather than passing quietly.