What a bank statement analyzer actually does
A raw bank statement is a list of lines. Ten of them, or three hundred, or three thousand. The information you need is in there somewhere: how much came in, how much went out, which categories you spent most on, which subscriptions are still running, whether a specific merchant is quietly eating a bigger share of your budget than last quarter. But the list itself does not answer those questions. Every serious answer requires turning that list into a categorized dataset and then summarizing it.
That is what a bank statement analyzer does. It reads the file your bank exported, extracts every transaction into a normalized shape (date, description, amount, running balance, account), assigns each transaction to a category using a set of rules, and gives you a dashboard on top of the result. The good ones let you edit the rules, keep your data private, and export the categorized output so it can flow into whatever tool comes next.
Why upload beats live bank feeds
Many finance apps route around the file entirely and connect directly to your bank through an aggregator like Plaid, Yodlee, or Finicity. This is convenient until it is not. Live feeds require you to hand your online banking credentials to a third party. They break silently when your bank changes its login flow. They cover a limited set of institutions, so business accounts, small credit unions, and international banks often are not supported. And they store an ongoing token that lets the aggregator keep pulling transactions long after you have stopped paying attention.
Uploading the file your bank already produces skips all of that. You keep the credentials. You control which statement gets analyzed. Every bank in the world can produce a statement, so there is no coverage gap. And when you close the tab, the pipeline stops.
What Karchu extracts from each statement
When you upload a statement, Karchu extracts and categorizes every transaction, then computes a set of views that answer the questions people actually ask when they read a statement. The main ones:
- Total income vs total expenses for the period, so you can see net cash flow immediately instead of comparing the opening and closing balance.
- Category breakdown: groceries, dining, transportation, subscriptions, utilities, rent or mortgage, salaries, and any custom categories you add.
- Top merchants by spend, ranked. This is the fastest way to notice that one vendor has quietly become 30% of your variable expenses.
- Recurring charges: same merchant, roughly monthly, roughly the same amount. The list surfaces subscriptions that survived past their usefulness.
- Month over month drift: which categories grew, which shrank, and by how much versus the prior period.
- Anomalies: a duplicate charge, a subscription that jumped in price, an autopay that was supposed to end and did not.
The parsing pipeline
Different banks export statements in different formats and Karchu handles all the common ones. CSV and XLSX files are parsed in your browser first: schema detection identifies which columns hold the date, the description, the debit, the credit, and the running balance, then normalizes them into a consistent row shape. The raw file never leaves your device unless you deliberately save the extracted data. For PDFs, Karchu tries text extraction first, which is fast and lossless for statements generated digitally by the bank. When the file is a scanned image, Karchu falls back to on-device OCR: the text is read from the image locally, without shipping the file to a third-party OCR service.
Multi-page statements are stitched back together automatically. Descriptions that wrapped across a line break are rejoined. Rows split by a subtotal or a page footer are merged. The result is a table that looks the same whether your source file was a two-page CSV from a US regional bank or a scanned twenty-page PDF from a European retail bank.
Deterministic categorization that gets more accurate
Karchu categorizes with a rule engine, not a machine-learning model. A rule is a small human-readable pattern that assigns a category when it matches: a merchant name, a description keyword, an amount range. Rules are deterministic, so the same input always produces the same category. When you look at a transaction six months from now and wonder why it landed in one bucket rather than another, you can open the rule that decided it and edit it. The change applies retroactively to every past transaction that matched and to every future one that ever will.
The engine ships with defaults for hundreds of common merchants. You extend the defaults by adding or editing rules. Specific rules beat general ones, so "AMAZON PRIME" can land in Subscriptions while a plain "AMAZON" charge lands in Shopping. Amount-range rules let you split ambiguous merchants intelligently. Over time your rules become an asset that makes every future statement more accurate, rather than a chore you redo each month.
Personal and business finances, side by side
Karchu supports multiple organizations under one login. Personal spending lives in one workspace, a freelance side project lives in another, and a small business lives in a third. Nothing crosses over. Each workspace has its own rules, categories, dashboards, and team members. Business workspaces get role-based access with six distinct roles so an accountant can categorize while an employee only sees their own receipts. Every action is auditable and enforced on the server, not in the UI.
Privacy the boring way
The best privacy story is the one you can explain in two sentences. Karchu parses CSV and Excel in your browser, so the raw file never touches a server unless you save the extracted data. Saved data lives in your private vault, scoped by row-level security in the database itself. We do not sell data, we do not train third-party AI models on it, and we do not use bank aggregators. See the security page for the full picture.
Frequently asked questions
What is a bank statement analyzer?
A bank statement analyzer is software that reads a bank statement file, extracts every transaction, categorizes them (groceries, rent, subscriptions, income, and so on), and shows you totals, trends, and anomalies. Instead of scrolling through hundreds of lines by hand, you see the picture: how much came in, how much went out, where it went, and what changed month over month.
Is Karchu really free?
Yes. The free plan lets you analyze bank statements every month with dashboards, categorization, and exports. Paid plans exist for teams, higher document volume, and receipt line-item extraction. You do not need a credit card to try it.
Which file formats do you support?
CSV, XLSX, XLS, PDF (both digitally generated and scanned image PDFs via built-in OCR), and TXT. If your bank exports it, Karchu can read it. Bank feeds and open banking connections are not required.
Does Karchu need my online banking password?
No. Karchu never asks for your online banking credentials. You upload the statement file your bank already gives you. This is safer than aggregator services like Plaid or Yodlee, which require your bank login.
How accurate is the categorization?
Categorization uses deterministic rules, not a black-box AI model. Karchu ships with rules for hundreds of common merchants and lets you edit or add your own. Because rules are deterministic, the same input always produces the same category, and changes apply retroactively to every past transaction that matched.
Can I use this for business banking, not just personal?
Yes. Karchu supports multi-organization workspaces, so you can keep personal, freelance, and business finances separate under one login. Team roles let accountants, managers, and employees each see the right slice.
Is my data private?
Yes. CSV and Excel files are parsed in your browser before anything is saved. Saved data is stored in a private vault protected by row-level security. Karchu does not sell data, does not train third-party AI models on your finances, and does not use bank aggregators.
Can I export the categorized data?
Yes. Every view exports as clean CSV or Excel with stable columns, ISO dates, and UTF-8 encoding. The exports drop straight into QuickBooks, Xero, Wave, or Google Sheets without cleanup.
Start with the statement you already have
The fastest way to see whether Karchu fits is to run one real statement through it. The free plan is enough to do that end to end. Upload a PDF or a CSV, wait a few seconds, and read the dashboard. If the picture is clearer than what your bank showed you, you have your answer.