Skip to main content

How to Normalize Bank Statement CSV Files

Nothing uploadedTested up to 200 MB

Normalize changing bank-export headers into one stable transaction schema before reconciliation or accounting import.

Published: 2026-09-28Updated: 2026-09-282 minNormalize bank statement CSV
Data workflow illustration for How to Normalize Bank Statement CSV Files

Bank exports often describe the same transaction concepts with different headers. One source may use TRAN_DATE, DR, CR, and PARTICULARS; another workflow may expose fields such as bookingDate, valueDate, partnerName, and paymentReference. The useful goal is not to make every bank look identical by guessing. It is to define the schema your downstream process expects and map each source deliberately.

Start with a canonical transaction schema

For a debit-and-credit style statement, a practical source-backed target is transaction_date, debit_amount, credit_amount, narration, and cheque_no. The Stack Overflow bank-statement example maps TRAN_DATE to transaction_date, DR to debit_amount, CR to credit_amount, PARTICULARS to narration, and CHQNO to cheque_no.

Keep other fields only when your accounting or reconciliation process needs them. A balance column such as BAL may be useful for checks, while a branch or source field such as SOL may be useful for audit context.

Map headers without changing values

Header normalization should be separated from value transformation. Renaming TRAN_DATE does not convert the date format. Renaming DR does not change decimal separators. A bank that provides one signed amount field also needs a different transformation if your destination requires separate debit and credit columns.

That separation makes failures easier to diagnose: first establish consistent column identity, then validate dates, amounts, currencies, and accounting-specific rules in the next step.

Review the output before import

Check the final header row, then inspect several transactions including an empty debit, an empty credit, a cheque/reference value, and non-ASCII narration. Confirm that row values stayed aligned with the renamed columns. Save the normalized file as an intermediate artifact so reconciliation rules do not depend on a particular bank's source naming.

Nablyx performs this mapping locally in your browser up to 200 MB and does not upload the statement rows to Nablyx.

Normalize bank statement CSV

See the transformation

Awkward source headers become import-ready columns.

Rename the columns you need while keeping every value under the correct header.

cust_idcustomer_id
given_namefirst_name
mailemail

✓ Values stay with the right column