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.
How to analyze bank statements, step by step
If you have a statement in front of you and want the numbers out of it today, this is the shortest path. It takes a few minutes for a single month and about the same for a full year, because the work is the same either way.
- Export the statement from your bank. Any format works: PDF (digital or scanned), CSV, XLSX, XLS, or a plain text export. Download the full period rather than a filtered view, so the opening and closing balances line up.
- Upload the file. Drop it into Karchu. CSV and Excel files are parsed directly, PDFs go through text extraction first, and scanned pages fall back to OCR. Multi-page files are stitched into one table.
- Check the extracted rows. The analyzer shows the detected statement period, the row count, and a confidence indicator per field. Anything it was unsure about is highlighted so you can correct it before the totals are computed.
- Review the categories. Rules assign each transaction a category. Change one and the rule updates every matching transaction, past and future, so the fix is permanent instead of a one-off edit.
- Read the summary. Income versus expenses, category totals, top merchants, recurring charges, and month over month drift are computed from the categorized rows.
- Export or repeat. Send the categorized transactions out as CSV or Excel, or upload the next month and compare periods side by side.
Doing this by hand in a spreadsheet means retyping or pasting rows, writing lookup formulas for categories, and rebuilding pivot tables each month. The analyzer collapses that into the upload, and the rules you write once keep paying off on every statement after it.
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.
Statement periods, read once and used everywhere
A bank statement is not just a list of rows, it is a list of rows that covers a specific window of time. Karchu treats that window as first-class data. During extraction the analyzer looks for the period printed at the top of the document, and it accepts the formats banks actually use: "01 March 2024 - 31 March 2024", "Statement period: March 2024", "03/2024", or a plain pair of ISO dates. Each format is normalized into a start date and an end date stored on the document itself.
When the header is missing, cropped by a scanner, or too faint for OCR to read, the analyzer does not give up and leave the field blank. It falls back to the transactions it extracted and uses the earliest and latest dates as the period, marking the range as derived rather than printed. That fallback matters in practice, because scanned statements from older accounts are exactly the ones where the header line is hardest to read, and those are the documents you most need to file correctly.
Once the period is stored, it drives the parts of the product where people actually spend time. The transactions table has a statement month picker and a custom from and to range, and both match on overlap rather than exact equality, so a statement running 15 March to 14 April still shows up when you ask for March. Sorting by statement period, newest or oldest first, groups rows by the document they came from, which is what you want when three accounts all cover the same calendar month. The reports page carries the same filter, so a monthly PDF or CSV you hand to an accountant covers exactly the statements you meant to include, and the range is printed on the cover of the report.
Exports carry the provenance too. The CSV and Excel outputs include a statement source column, taken from the bank or store name the extractor read out of the document, alongside a statement period column. Anyone opening that file later can trace a single line back to the exact statement and the exact window it belongs to, without asking you to dig up the original PDF. For quarter-end work, tax preparation, or a loan application where an underwriter asks for three consecutive months, that traceability is the difference between a clean submission and a week of email.
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.
How Karchu compares to the other ways people do this
Most people arrive here after trying one of four things. The first is a spreadsheet: export a CSV, build a pivot table, and rebuild the formulas every month when a column moves. It is free and completely under your control, and it also costs an evening per month and breaks the moment a bank changes its export format. Karchu keeps the control (you can export everything back out as CSV or Excel at any point) but removes the rebuild.
The second is a bank feed product like QuickBooks, Xero, or a personal finance app that connects through an aggregator. Those are strong at ongoing bookkeeping, but they need your online banking credentials or an OAuth link, they only reach accounts the aggregator supports, and they usually cannot touch a historical PDF from a closed account or a foreign bank. Karchu works from the file itself, so a 2019 statement from a bank you no longer use analyzes exactly as well as last month's download. Side-by-side breakdowns live on the comparison hub, including Karchu vs QuickBooks and Karchu vs Xero.
The third is a plain PDF-to-Excel converter. It gets the rows out and stops there: no categories, no rules, no cash flow view, no statement period, and usually no handling of multi-page or scanned documents. Karchu runs the conversion as the first stage of a pipeline and then does the part that actually saves time. If conversion is all you need, the guides on converting a PDF statement to Excel and converting to QBO cover it step by step.
The fourth is pasting statements into a general AI chatbot. It reads the document, and it also truncates long statements, invents totals when the arithmetic gets long, gives a different answer each time you ask, and hands a full copy of your financial history to a third party. Karchu uses AI only for reading scanned images, then hands the rows to a deterministic rule engine, so totals reconcile and the same statement always categorizes the same way. If you do want an assistant involved, connect it through the MCP integration so it queries your own parsed data under your login instead of a pasted copy.
Bank-specific notes matter too, because layouts differ far more than people expect. Column order, date formats, running balances, and how a bank writes a card payment all change the parsing path. The bank guides document the format quirks for the most common institutions, and each one links straight back to the analyzer.
Bank by bank: Chase, Wells Fargo, Bank of America, Citi, Capital One
Most people searching for a statement analyzer are really searching for a Chase statement analyzer, or a Wells Fargo one, or whatever bank the file on their desktop came from. The question behind the search is always the same: will this thing read my bank's export without mangling it? Here is the honest answer for the five US banks that show up most, with the exact quirk that trips up generic converters.
- Chase: exports come as PDF, CSV, QFX, and OFX. The CSV header is Details, Posting Date, Description, Amount, Type, Balance, and Check or Slip #, which puts the transaction type in its own column instead of in the description. Karchu detects that layout on the first upload and keeps the Type value as a tag your rules can match on.
- Wells Fargo: the CSV download has no header row at all, which is what breaks most PDF-to-Excel tools and naive importers. Karchu infers the column order from the data itself and normalizes the separate debit and credit values into one signed Amount column.
- Bank of America: the CSV starts with a summary block (beginning balance, total credits, total debits) before the real table begins. Karchu skips the preamble, starts parsing at the header row, and uses the summary figures as an arithmetic check on the extracted rows.
- Citibank: Citi keeps Debit and Credit in separate columns. Karchu merges them into a signed amount for analysis while preserving the original values in every export, so an accountant sees the same two columns they expected.
- Capital One: exports use ISO dates and ship with Category and Memo columns already filled in. Karchu keeps the bank's own category as a tag and layers its editable rules on top, so you can compare the two and override where the bank guessed wrong.
The same treatment exists for U.S. Bank, PNC, TD Bank, American Express, Chime, and dozens more across the UK, EU, India, Australia, and the UAE. Each guide lists the export steps for that bank, the formats it offers, and the format quirk Karchu handles for it. Browse them all on the bank guides index, or see annotated examples of real layouts in bank statement examples.
Common pitfalls when converting these statements
The failures people hit are predictable once you know the format. With Chase, a spreadsheet import often reads the Type column as part of the description, so card payments and ACH credits end up in the same bucket. With Wells Fargo, the missing header row means most importers treat the first transaction as column names and silently drop it, which is why totals come out one row short. With Bank of America, the summary block at the top of the CSV shifts every column by a few rows, so dates land in the amount field. Karchu handles all three at parse time and shows the extracted row count against the statement's own totals, so a dropped or shifted row is visible before you rely on the numbers.
Two more worth knowing: Citibank's split Debit and Credit columns give positive numbers for money leaving the account, which flips your cash flow sign if nothing normalizes them, and Capital One's ISO dates get reinterpreted as US month-first dates by Excel, turning 2024-03-07 into a July entry. Karchu reads both correctly and keeps the original values in exports, so the accountant sees what the bank actually sent.
A scanned PDF from a bank with no digital export still works. Karchu runs OCR page by page, reconstructs the table, and reconciles the extracted totals against the balances printed on the statement, so you can see coverage before you trust the numbers. If a page fails, you retry that page rather than the whole document.
Automated bank statement analysis, end to end
Automated bank statement analysis means the file does the work: you hand over a PDF, CSV, or Excel export and get back dated, signed, categorized rows with totals that reconcile against the balances printed on the statement. There is no manual retyping, no copy and paste into a spreadsheet, and no separate step to work out what each merchant string means. Karchu reads the document, normalizes the columns, applies your rules, and stores the result in a private vault you can filter, search, and export.
What automation removes from the job
Three things eat the time in manual analysis: getting the rows out of the document, deciding what each row is, and checking that nothing went missing. Automation handles the first with parsing and OCR, the second with deterministic rules that behave the same way every run, and the third with a coverage check that compares extracted totals to the statement's own figures. What is left for you is reviewing the handful of rows the rules were unsure about, which the how it works page walks through in order.
When automated analysis still needs a human
Transfers between your own accounts, one-off refunds, and merchant names that mean different things in different businesses all need a decision only you can make. Karchu surfaces those instead of guessing, and each correction becomes a rule, so the same statement next month sorts itself. Ongoing bookkeeping across many months is covered in the small business bookkeeping guide.
PDF to Excel converter for banks, and what comes after it
Conversion is the first stage, not the whole job. Karchu works as a PDF to Excel converter for bank statements from any institution: upload the statement, let the parser or OCR rebuild the table, then export clean XLSX or CSV with dates, descriptions, amounts, running balances, and categories intact. Because the conversion feeds the same pipeline as everything else, the spreadsheet you download has already been checked against the statement totals.
Formats you can export
Excel and CSV for spreadsheets, QBO for QuickBooks, and a plain table view for a quick look. The step by step walkthrough lives on the PDF bank statement converter page, with the longer written guide in convert a PDF bank statement to Excel and the accounting route in convert bank statements to QBO.
Scanned and image-only PDFs
Statements that are photos or scans have no text layer, so a normal converter returns an empty sheet. Karchu runs OCR page by page and rebuilds the columns from the layout, which is explained in plain terms in what is OCR. Page level retries mean one bad scan does not cost you the whole document.
Free analyzer vs manual Excel analysis: the time it saves
The honest comparison is not features against features, it is minutes against minutes. Below is the same job, one statement of roughly 200 transactions, done by hand in a spreadsheet and done by uploading the file here. The manual timings assume you already know your way around pivot tables.
| Step | Manual in Excel | Karchu (free plan) |
|---|---|---|
| Get rows out of a PDF statement | 20 to 40 minutes of copy, paste, and cleanup, longer if the PDF is scanned | Seconds, with OCR for scans |
| Fix columns, dates, and debit/credit signs | 10 to 20 minutes per bank format | Automatic, per bank layout |
| Categorize transactions | 30 to 60 minutes of lookup formulas and manual tagging | Rules run instantly, you review the unsure rows |
| Build totals, top merchants, recurring charges | 15 to 30 minutes of pivot tables and charts | Ready on the dashboard |
| Repeat next month | Most of the same work again | Rules already learned, upload and read |
| Check nothing went missing | Manual balance reconciliation | Extracted totals compared to statement balances |
| Cost | Free, but 1.5 to 2.5 hours per statement | Free plan, a few minutes per statement |
Across a year of statements that is the difference between roughly twenty hours of spreadsheet work and an hour of uploads and reviews. The free plan covers monthly personal or freelance use end to end; paid plans exist for higher document volume, teams, and receipt line items, which are listed on the pricing page. If you want to see how it stacks up against other tools rather than against a spreadsheet, the comparison hub covers those.
Frequently asked questions
What does the name Karchu mean?
Karchu comes from the Telugu word ఖర్చు (kharchu), meaning "expense" or "cost." The name was chosen because it directly describes what the product does: turn bank statement transactions into a clear, categorized picture of your expenses. It is unrelated to other uses of the word "karchu" elsewhere online, such as an old Tibetan manuscript catalogue or place names in Bhutan, Russia, and Armenia.
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.
Does it work with Chase and Wells Fargo statements?
Yes. Chase CSV exports use the Details, Posting Date, Description, Amount, Type, Balance layout, and Wells Fargo CSV exports ship without a header row at all. Karchu detects both automatically, normalizes debits and credits into one signed amount, and reads the PDF versions too. There are dedicated guides for Chase and Wells Fargo with the exact export steps.
What about Bank of America, Citibank, and Capital One?
All three are supported. Bank of America CSVs open with a summary block before the real table, so Karchu skips the preamble and uses those totals as a cross-check. Citibank splits Debit and Credit into separate columns, which Karchu merges while keeping the original values in exports. Capital One exports arrive with ISO dates plus the bank's own Category and Memo columns, which Karchu preserves as tags alongside your own rules.
My bank is not on your list. Will it still work?
Almost always. Karchu parses the file rather than connecting to the bank, so any institution that lets you download a PDF, CSV, XLSX, or TXT statement works, including closed accounts and foreign banks. The published bank guides just document the export steps and format quirks for the most common institutions.
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.
Does the analyzer read the statement period from my PDF?
Yes. Karchu reads the statement period printed in the header (for example "01 Mar 2024 to 31 Mar 2024", "March 2024", or "03/2024") and stores it as a start and end date on the document. When the header is unreadable, the period is derived from the earliest and latest transaction dates in the file, so every document still gets a usable range.
Can I filter transactions by statement period?
Yes. Transactions and reports both have a statement period filter. Pick a statement month or set a custom from and to window, and Karchu keeps only the rows that came from statements whose period overlaps that window. You can also sort by statement period, newest or oldest first, which is useful when several accounts cover the same calendar month.
Do exports include the statement source and period?
Yes. CSV, Excel, and the custom column export can all carry a statement source column (the bank or store name read from the document) and a statement period column. That means an accountant receiving the file can trace any row back to the exact statement it came from.
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.