CleanStatement

Bank statement to Excel converter

Convert a bank statement PDF into a clean Excel spreadsheet you can actually work with — not a raw text dump. CleanStatement detects the bank, removes repeated headers and footers, merges narrations that wrap across rows, turns Indian-format dates and lakh/crore amounts into real dates and numbers, and verifies that every printed running balance reconciles. Over 21 Indian banks are recognised automatically, and the whole process runs in your browser with no upload.

Why a plain PDF-to-Excel converter is not enough

A generic PDF-to-Excel tool moves characters into cells. It has no idea it is looking at a bank statement, so it hands back the original mess in a spreadsheet: the bank's logo and address as rows, column headers repeated on every page, a single transaction split across three lines because the narration wrapped, dates stored as text that will not sort, and amounts like 1,20,000.00 that Excel refuses to sum.

What you actually want is a table where one row is one transaction, dates sort correctly, debits and credits add up, and the closing balance matches the statement. That requires understanding the document, not just extracting it.

What CleanStatement does to the file

Every statement, regardless of bank or input format, goes through the same pipeline:

  • Bank detection — the printed bank name and the header row identify which of the 21+ supported layouts applies. Unknown layouts fall back to reading the columns from the data.
  • Junk removal — logos, branch addresses, page footers, repeated headers, summary and legend blocks, and the opening-balance row are dropped.
  • Narration merging — continuation rows are folded back into the transaction above them, so one transaction is one row.
  • Date normalization — DD/MM/YY, DD-MM-YYYY, DD.MM.YYYY, D-Mon-YYYY, ISO and dates with a trailing clock time all become real dates.
  • Amount parsing — Indian lakh/crore grouping, currency symbols and trailing Cr/Dr direction markers become signed numbers.
  • Chronological ordering — statements printed newest-first are reversed so the running balance reconciles.
  • Balance verification — the running balance is recomputed row by row and compared against every printed figure.
  • Issue flagging — duplicates, balance gaps, round-figure anomalies and returned or bounced transactions are surfaced for review, never silently edited.

Which file formats can I convert?

PDF statements are read using coordinate-based table reconstruction, which is what makes wrapped narrations and blank-heavy amount columns recoverable. Password-protected PDFs are decrypted locally after you enter the password. Excel files (.xlsx and .xls) are read from the sheet containing the transaction table. CSV files are parsed with blank rows preserved, so the junk-row logic sees the real shape of the file.

Scanned or photographed statements are images rather than text, and are not supported yet — local OCR is on the roadmap so that support can be added without breaking the no-upload guarantee.

Privacy: why nothing is uploaded

A bank statement is one of the most sensitive documents a person owns. It shows income, debts, where someone lives, what they buy and who they pay. Uploading it to an unknown server to save a few minutes of formatting is a poor trade, and most online converters do exactly that.

CleanStatement is built as a static site with no backend for statement processing. The parsing engine, the classifier and the Excel writer are all JavaScript that runs in your tab. There is no upload endpoint, no third-party analytics reading your file and no cloud categorisation API. Once the page has loaded you can disconnect from the internet entirely and every feature still works — which is the simplest way to verify the claim for yourself.

Frequently asked questions

Is CleanStatement really free?

Yes. Cleaning a bank statement, verifying its running balance and downloading the cleaned Excel are free, with no sign-up. Advanced features such as the ITR Workbench, multi-statement merge and accounting-software voucher exports are currently open to everyone during the launch period.

Is my bank statement uploaded to a server?

No. Every step — reading the PDF, detecting the bank, cleaning, verifying balances, classifying and generating the Excel — runs inside your browser tab using JavaScript. There is no upload, no backend and no third-party API. You can disconnect from the internet after the page loads and the tool still works.

Which Indian banks are supported?

Over 21 banks are detected automatically, including HDFC, ICICI, SBI, Axis, Kotak Mahindra, IDFC FIRST, IDBI, YES Bank, IndusInd, Federal, RBL, AU Small Finance, Bandhan and the public-sector banks PNB, Bank of Baroda, Canara, Union Bank, Bank of India, Indian Bank, Central Bank and UCO. Statements from banks without a stored profile still clean successfully because the columns are inferred from the data.

Can it convert a password-protected PDF statement?

Yes. If the PDF is encrypted, the tool prompts for the password and decrypts it locally in your browser. The password is never transmitted anywhere.

Does it work with scanned bank statements?

Not yet. CleanStatement reads text-based PDFs — the kind your bank generates when you download a statement. A scanned or photographed statement is an image and needs OCR, which is on the roadmap as a local, on-device step so the no-upload promise holds.

What does the balance verification actually check?

It recomputes the running balance row by row from the opening balance and every debit and credit, then compares each computed figure against the balance printed on the statement. If any row fails to reconcile, it is flagged. This is what catches both parsing errors and tampered statements.

How is this different from a generic PDF-to-Excel converter?

A generic converter gives you the same mess in a spreadsheet: junk rows, wrapped narrations split across lines, dates as text and amounts that will not sum. CleanStatement understands that the file is a bank statement — it strips repeated headers, re-joins wrapped narrations, normalizes Indian date and lakh/crore amount formats, re-orders newest-first statements, verifies the running balance and classifies every row to an accounting ledger head.

Related guides