Why We Process Bank Statements in Your Browser

PrivacyBooks3 min read
privacybank-statementsbrowser-processing

Financial data is some of the most sensitive information you own. Your bank statements contain your income, spending habits, recurring payments, and account balances. Yet most tools that convert bank statement PDFs to spreadsheets require you to upload those files to a remote server.

We built PrivacyBooks because we believe there is a better way.

The Problem with Server-Side Processing

Traditional bank statement converters follow a familiar pattern: you upload your PDF, a server processes it, and you download the result. This workflow has several issues:

  • Your data leaves your device. Once uploaded, you lose control over where it goes, how long it is stored, and who can access it.
  • Server breaches are real. Financial data is a high-value target. Even well-secured servers get compromised.
  • Compliance risk. For accountants and bookkeepers handling client data, uploading statements to third-party servers can create regulatory exposure.
  • Unnecessary latency. Uploading and downloading files adds network round-trips that slow down the workflow.

How Browser-Based Processing Works

PrivacyBooks runs entirely in your browser using client-side JavaScript. When you drop a PDF into the extraction page, here is what happens:

  1. PDF text extraction — The pdfjs-dist library (the same engine behind Firefox's built-in PDF viewer) reads your file locally and extracts the raw text.
  2. Bank detection — A router identifies which bank issued the statement by analysing formatting patterns in the extracted text.
  3. Transaction parsing — A bank-specific parser extracts individual transactions, dates, amounts, descriptions, and running balances.
  4. Validation — The extracted data is cross-checked: opening balance plus transactions should equal the closing balance.
  5. Export — You download the structured data as CSV, JSON, or Excel. The file is generated in your browser and saved directly to your device.

At no point during this process does your data leave your browser. There are no API calls, no server uploads, no cloud storage.

What About the AI Features?

Our demo page showcases an on-device AI agent that can answer natural language questions about your bank statements. This runs a 350MB language model (Qwen3-0.6B) entirely in your browser using WebGPU.

The model is downloaded once and cached in your browser's IndexedDB. After that initial download, even the AI features work offline. The model is used only for intent classification — final answers are generated by deterministic TypeScript code, not the AI model.

Who Benefits

  • Accountants and bookkeepers who handle client bank statements and need to maintain data confidentiality.
  • Small business owners who want clean transaction data for reconciliation without sharing financials with a third party.
  • Anyone who values their financial privacy and prefers tools that respect it by design.

Open by Design

We do not obfuscate the extraction pipeline code. You can inspect exactly how your data is processed by opening your browser's developer tools. The bank parsers, validation logic, and export code are all readable client-side JavaScript.

This transparency is intentional. If a tool claims to process your data locally, you should be able to verify that claim yourself.

Try It

Head to the extraction page to convert your first bank statement. No account is required for the demo, and no data leaves your browser.