Bank Statements to CSV — The Accurate Way (Running Balances, Duplicates, Types)
An accountant-friendly workflow that prevents errors and saves hours — with validations, mappings, and clean exports.
Goal
Produce a trustworthy CSV from bank statements — not just any CSV. That means correct dates, typed amounts, running balances that reconcile, and no duplicate rows.
The Workflow at a Glance
- 1.Collect PDFs (digital or scanned).
- 2.Extract tables (OCR if needed).
- 3.Validate: running balance, sums, duplicates, date/amount types.
- 4.Export CSV (or Excel) and deliver.
Kepler Docs gives you mappings + validations so this is consistent across vendors. SHRP.app covers quick, single-file extractions for free.
Why "Accurate" Matters
Bookkeepers waste hours fixing bad CSV exports. Common issues:
Wrong Column Types
Dates as text, amounts as strings
Duplicate Transactions
Same transaction appears multiple times
Missing Running Balance
Can't verify totals
Inconsistent Formats
Different banks = different column names
Step 1: PDF Collection
Get your bank statements in PDF format. Most banks offer:
Digital PDFs
Generated directly from their system (text-selectable)
These are easier to process as they contain actual text data rather than images.
Scanned PDFs
Printed then scanned (requires OCR)
These require OCR technology to extract text from images.
Step 2: Table Extraction
This is where most tools fail. Bank statements have:
Headers/Footers
That repeat across pages
Multi-line Transactions
Complex transaction descriptions
Running Balance Columns
That need to be validated
Various Date Formats
Different banks use different formats
With SHRP.app (Free)
- 1.Upload your PDF
- 2.Review detected tables
- 3.Download CSV
With Kepler Docs (Batch/API)
- 1.Create a bank statement template
- 2.Set up validations
- 3.Process multiple files
- 4.Export with consistent formatting
Step 3: Validations
Critical checks before you export:
Running Balance Validation
Each row's balance should equal: previous balance + current transaction amount.
This ensures mathematical accuracy and catches extraction errors.
Duplicate Detection
Flag transactions with same date + amount + description.
Prevents double-counting in financial reports.
Type Inference
- •Dates: convert to ISO format (YYYY-MM-DD)
- •Amounts: parse currency symbols, handle negatives
- •Categories: standardize transaction types
Step 4: Clean Export
Export with these columns (minimum):
Required Columns
date
(YYYY-MM-DD format)description
(transaction details)amount
(positive/negative numeric)balance
(running balance)transaction_id
(for deduplication)
Pro Tips
Always Verify Totals
Ending balance - starting balance should equal sum of transactions
Watch for Page Breaks
Running balances can get disrupted across pages
Standardize Vendor Formats
Save templates for each bank
Keep Provenance
Track which PDF each row came from
What's Next?
Ready to process your bank statements?
- •Quick single file: Try SHRP.app for free
- •Batch processing: Join the Kepler Docs waitlist
- •Questions? Email us at hello@keplerdocs.com