Upload your bank statement
Drop file here or click to upload
PDF, JPG, PNG, BMP, HEIC, TIFF, MT940
Uploading...
To categorize bank transactions in Excel from a statement, upload the PDF and the converter extracts every line, then assigns each transaction an income or expense category (sales, fees, software, meals, travel, payroll, and more) before you export to Excel or CSV. You skip the manual tagging and get a clean, category-tagged sheet ready for bookkeeping, a Schedule C, or a profit and loss report. It works on statements from any US bank or card, and you can adjust any category in the exported file.
Transaction categorization is essential for accurate financial reporting, tax preparation, and business analysis. Automatically organize bank statement transactions into meaningful categories to streamline accounting workflows.
Manually categorizing transactions presents several difficulties:
Manual categorization processes are inefficient and error-prone, making automated solutions valuable for businesses and accounting professionals.
Automated transaction categorization provides:
Our system uses intelligent pattern recognition to automatically categorize transactions based on merchant names, descriptions, and transaction patterns.
Upload your bank statement PDF and our system extracts all transaction data including dates, descriptions, and amounts.
Transactions are automatically categorized into income and expense categories based on merchant names, transaction patterns, and descriptions.
Download your categorized transactions in Excel or CSV format, ready for import into accounting software or further analysis.
Automatically categorize business transactions for monthly financial reports and tax preparation.
Save time on client bookkeeping by automating transaction categorization from bank statements.
Quickly organize transaction data for expense analysis and budget tracking.
To categorize bank transactions in Excel, get the statement into rows first, then add a category column and tag each line. The fastest path is to convert the PDF with the PDF bank statement to Excel converter, which turns the document into date, description, debit, credit, and balance columns. From there you label each transaction by merchant. Here is the workflow most bookkeepers use:
Manual tagging only stays manageable for a month or two. The scalable version is a two column lookup table on a second sheet, one row per keyword, and a single formula that scans the description for the first keyword it matches. Build the lookup table like this:
| Keyword (column A) | Category (column B) |
|---|---|
| SHELL, CHEVRON, EXXON, BP | Car and truck expenses |
| DELTA, UNITED, MARRIOTT, HILTON | Travel |
| ADOBE, GOOGLE, MICROSOFT, ZOOM | Software and subscriptions |
| STAPLES, AMAZON, OFFICE DEPOT | Office expense |
| GUSTO, ADP, PAYCHEX | Payroll |
| TRANSFER, ZELLE, XFER | Transfer (not an expense) |
With the keywords in Rules!A:A and the categories in Rules!B:B, put this in the Category column next to your first transaction, where C2 is the description cell:
=IFERROR(INDEX(Rules!B:B,MATCH(TRUE,ISNUMBER(SEARCH(Rules!A:A,C2)),0)),"Uncategorized")
In Microsoft 365 and Excel 2021 that formula spills on its own. In older versions it is an array formula, so confirm it with Ctrl, Shift and Enter rather than Enter alone. SEARCH is deliberately case insensitive, which matters because bank descriptions arrive in a mix of upper and lower case. Anything the lookup misses lands as Uncategorized, so you filter that column, add the new merchant to the rules sheet, and the count falls every month instead of the work repeating.
Two habits keep the totals honest. Put the more specific keyword above the general one, because MATCH stops at the first hit, and give transfers between your own accounts their own category so they never inflate income or expenses. That single mistake is the most common reason a categorized sheet shows revenue the business never earned, and it is worth reading up on how to categorize transfers between bank accounts before you close a year.
If you would rather skip the manual tagging, the categorization tool above assigns categories during conversion, so the sheet arrives already labeled. You can still edit any category in Excel afterward. Working in Google Workspace instead? The bank statement to Google Sheets converter produces the same clean, taggable rows.
Automate it in two stages: extraction and totaling. Convert the statement PDFs into rows with a categorizer that assigns a category during extraction, then let a single SUMIFS formula or one PivotTable total each category. Once the rules exist, a month of statements goes from roughly an hour of tagging to under five minutes, and the same rules run again next month.
The stage people skip is the second one. A categorized sheet with no totals still leaves you scrolling, and hand-typed subtotals break the moment a new row appears. With a Category column in D and amounts in E, one formula gives you a live total per category, where H2 holds the category name you are totaling:
=SUMIFS($E:$E,$D:$D,H2)
Drag that down a short list of your categories and you have a running expense summary that updates itself as rows are added. To split the same list by month, add a criteria pair on the date column, or drop a PivotTable over the table with Category on rows and Amount in values. Both survive new data; a typed subtotal does not.
It depends on how many statements you have and whether the PDFs are digital or scanned. The table below is an honest read on the four routes, including where the free ones are genuinely enough. Nothing here is free-versus-paid marketing: Power Query really is capable, and it really does stop at scans.
| Route | Setup effort | Handles scanned PDFs | New merchants | Best for |
|---|---|---|---|---|
| Type the categories in by hand | None | Only if you retype the rows too | Handled, but you pay for it every month | One statement, one time |
| Excel keyword lookup (the INDEX and SEARCH formula above) | 30 to 60 minutes to build the rules sheet | No, Power Query has no OCR | Land as Uncategorized until you add a keyword | One business, digital PDFs, a stable vendor list |
| Bank rules in QuickBooks Online or Xero | A few minutes per recurring vendor | Not applicable, the feed supplies the data | Sit in For review until you code them once | Live books where the bank feed already reaches the account |
| Categorize during conversion (the tool on this page) | Upload and go, optional saved template | Yes, OCR reads scans and phone photos | Matched from the description, edit any line in the export | Closed periods, catch-up work, several clients a month |
The dividing line is the bank feed. If the feed reaches the account and the period is current, QuickBooks or Xero rules are the right answer and you do not need a converter at all. The moment you are working from PDFs, because the period is closed, the feed only goes back 90 days, or the client sends paper, extraction has to happen first and categorizing during that step saves the second pass. For a year of catch-up across several accounts, batch bank statement conversion handles the whole folder in one upload.
Any tool that puts debit, credit, and running balance in separate numeric columns rather than one signed amount column. That is what lets you sort by description to group a merchant, sort by date to find a page-break gap, and check that opening balance plus credits minus debits equals the closing balance printed on the statement. Exports that collapse debit and credit into a single column, or drop the balance entirely, make that third check impossible, which is why the running balance extraction matters more than it looks. Once the columns are right, Excel's own sort and filter do the rest.
Stop typing the statement and split the job in two: let a converter read the card PDF into categorized rows, then let QuickBooks bank rules do the posting. Upload the statement above, review the category on each line in the Excel export, and upload the same file to QuickBooks Online as a CSV, or as a QBO file on the Plus plan. A 60 line card statement becomes a ten minute review instead of an evening.
One thing trips people up. The QuickBooks Online bank upload only reads date, description and amount (or separate credit and debit columns), so a category column in your CSV does not carry across. The categorized spreadsheet is still worth keeping, because it is your expense report and your review copy, but the categories inside QuickBooks come from bank rules. Set one rule per recurring merchant the first month, using the same category names you use in the spreadsheet, and from the second month most lines arrive already coded in For review.
If you handle several cards or several clients, the Plus plan adds bulk upload of up to 50 statements at once and saved categorization templates, so every statement comes back with the same category list. The credit card statement to Excel converter covers card layouts in more detail, and the QuickBooks bank statement converter walks through the upload screen.
Add a second tag column beside the category and mark each row fixed or discretionary, then filter on that tag. Fixed means rent, payroll, insurance, loan payments, and the software you cannot switch off. Discretionary means the spending you could actually cut next month: meals, travel upgrades, ad-hoc tools, and trial subscriptions.
Two tags beat one long category list because they answer different questions. The category tells you where the money went for the tax return; the fixed or discretionary tag tells you how much of the month is genuinely under your control. A firm with $42,000 of monthly outflow and $9,000 tagged discretionary is in a very different position from one with the same total and $1,500, even though both have identical Schedule C categories.
Build it in the same pass as the extraction. With Category in column D, a Fixed or Discretionary tag in column F, and amounts in column E, one formula totals the controllable half:
=SUMIFS($E:$E,$F:$F,"Discretionary")
Two traps ruin this number more often than anything else. The first is transfers: money moved between your own accounts is not spending, and if it lands in the discretionary bucket the total is inflated by whatever you swept to savings that month. Tag transfers separately and exclude them. The second is owner draws and card payments, which are settlements of spending already recorded elsewhere. Counting both the card payment and the card's own transactions double counts the entire month.
On a bank statement the merchant description is the only signal you get, so the tag has to be driven off it. That is what a bank statement categorizer does during conversion: it reads the description, assigns the category, and you add the fixed or discretionary tag once per recurring vendor rather than once per line. Review the tags quarterly, because vendors migrate between the two columns. A tool bought for one project becomes a fixed subscription the moment it renews on autopay, and a fixed cost you renegotiate can move back.
To categorize bank transactions in QuickBooks Online, you first need the transactions inside QuickBooks, then you assign each one to an account and let bank rules handle the repeats. When the bank feed does not reach the account, or you are working from a PDF statement for a closed or historical period, convert the statement to a QuickBooks-ready CSV first, upload it, and categorize from there. The steps most bookkeepers follow:
The category you assign in QuickBooks is really an account on your chart of accounts, so align those account names to the way you file taxes and the year-end reports fall out cleanly. For a walkthrough of the upload itself, see how to import bank transactions into QuickBooks Online. If you would rather have software read the receipts behind those charges and code them for you before they ever reach the books, a dedicated expense management platform automates that side of the workflow.
The best practice for categorizing bank statement transactions is to use a consistent, tax-aligned chart of categories and apply it the same way every month. Inconsistent labels are the main reason year-end totals do not tie out. These habits keep the data clean and audit-ready:
Name expense categories after the lines on Schedule C or your business return (advertising, supplies, meals, contract labor) so totals carry over without remapping at tax time.
Put bank fees, interest, and merchant processing on their own rows. They are deductible and easy to miss when they are buried inside a generic bucket.
Owner transfers, credit card payments, and account-to-account moves are not income or expense. Tag them as transfers so revenue is not overstated.
Filter for blanks or an "Other" bucket at month end. A small uncategorized list is normal; a large one means a rule or keyword is missing.
Once categories are set, the same sheet feeds the rest of your workflow: hand it to a client, drop it into a bookkeeping workflow, use it for expense tracking, or import it into accounting software. If your books live in Xero, the same rules apply on the reconcile screen: see how to categorize bank transactions in Xero. If your books live in QuickBooks, you can also convert and categorize statements straight to a QuickBooks-ready file with a bank statement to QuickBooks converter. Mission-driven organizations add a second axis on top of the category, coding each line by function too: see how to categorize bank transactions for a nonprofit. Your category set also shifts with the entity you file as: a single-member LLC maps to Schedule C, an S corp splits owner salary from distributions, and a rental property follows Schedule E.
Most business bank transactions map to a small set of categories that line up with IRS Schedule C. Using these standard buckets keeps year-end totals tax-ready and consistent from month to month. This reference shows the common categories, the Schedule C line they map to, and the kinds of transactions that belong in each.
| Category | Schedule C line | Example transactions |
|---|---|---|
| Advertising | Line 8 | Google Ads, Meta, print, sponsorships |
| Contract labor | Line 11 | Payments to freelancers and 1099 contractors |
| Insurance | Line 15 | Liability, professional, business property policies |
| Interest | Line 16 | Business loan and line-of-credit interest |
| Legal and professional | Line 17 | Accountant, attorney, bookkeeping fees |
| Office expense | Line 18 | Software subscriptions, supplies, postage |
| Rent or lease | Line 20 | Office rent, equipment leases |
| Supplies | Line 22 | Materials and supplies consumed in the work |
| Travel | Line 24a | Flights, hotels, rideshare for business trips |
| Meals | Line 24b | Business meals (generally 50 percent deductible) |
| Utilities | Line 25 | Phone, internet, electricity for the business |
| Bank and merchant fees | Line 27a | Account fees, Stripe and Square processing fees |
| Transfers and owner draws | Not on Schedule C | Account moves, owner draws, loan principal, card payments |
The last row matters as much as the rest: transfers between your own accounts, owner draws, loan principal, and credit card payoffs move through the statement but are not income or expense, so tag them out before you total anything. Once every line carries a category, the sheet is ready for a profit and loss report or a P&L built straight from the statements.
Bank statement descriptions are terse and inconsistent, so the fastest way to categorize is to read the merchant or ACH descriptor and match it to a category. The table below maps the description patterns you see most often on US business statements to the category and Schedule C line they usually belong to. Sort your exported sheet by description and code each repeat payee once, then apply it to every matching row.
| Description on the statement | Category | Schedule C line |
|---|---|---|
| Adobe, Microsoft, Google Workspace, Zoom, QuickBooks, Notion | Software / office expense | Line 18 |
| Google Ads, Meta, LinkedIn Ads, sponsorship payments | Advertising | Line 8 |
| Uber, Lyft, Delta, United, hotels, Airbnb (business trips) | Travel | Line 24a |
| Restaurants, DoorDash, coffee shops (business meals) | Meals | Line 24b |
| Gusto, ADP, Paychex, payroll ACH debits | Wages / contract labor | Line 26 / 11 |
| Stripe fee, Square fee, PayPal fee, monthly service charge, wire fee | Bank and merchant fees | Line 27a |
| Verizon, Comcast, AT&T, utility ACH debits | Utilities | Line 25 |
| Stripe payout, Square deposit, customer ACH credit, mobile deposit | Income / gross receipts | Line 1 |
| Transfer to savings, Zelle to owner, card payment, loan principal | Transfer / owner draw (exclude) | Not on Schedule C |
When a descriptor is ambiguous (a plain "POS purchase" or a generic ACH ID), open the merchant or check the amount against a recurring pattern before you code it. The converter applies these rules automatically during extraction, so the export arrives with a first-pass category on every line and you only review the exceptions.
To categorize transactions across several accounts and months, use one consistent category list for all of them and keep each statement's account and period labeled so nothing gets mixed together. This is the situation most bookkeepers hit during a catch-up: a checking account, a savings account, and two credit cards, each with a year of PDFs. The workflow that scales is to convert every statement the same way, stack the categorized rows into one sheet with an Account column and a Month column, then total by category across the whole set.
Remember that a bank statement only ever shows cash as it moves, so these totals are a cash-basis picture of the business: see cash basis versus accrual accounting for what that means at tax time. If you are reconstructing a full year from scratch, the catch-up bookkeeping converter walks through the same multi-statement process end to end.
A categorization rule maps a word or phrase in the transaction description to a category, so the same vendor is coded the same way every time. Set up a short list of rules for the vendors and patterns you see most, and the bulk of a statement categorizes itself. Here are the rules most US small businesses and bookkeepers start with.
| If the description contains | Assign the category | Why |
|---|---|---|
| A recurring SaaS name (the tool, the host, the CRM) | Software and subscriptions | Same charge every month, safe to auto-code |
| An ad platform or marketing vendor | Advertising | Deductible marketing spend, keep it separate |
| A payment processor fee or discount | Merchant fees | Netted from payouts, easy to miss otherwise |
| Maintenance, wire, or overdraft fee | Bank fees | Deductible and simple to total on its own |
| A transfer to your own savings or card | Transfer (not an expense) | Tag both sides so it nets to zero |
| Owner name or a personal charge | Owner draw or personal | Keeps personal spending out of the books |
| A customer or invoice reference | Sales income | Separates real revenue from transfers in |
Start with rules for your highest-frequency vendors, then review whatever is left uncategorized and add a rule when a pattern shows up more than once. Keep transfers and owner draws out of your income and expense totals, because miscoding them is the fastest way to overstate profit. When the year is categorized, you can send it straight to a bank statement to Excel for taxes workflow to total deductions for a Schedule C.
Upload the statement PDF and the converter extracts every transaction into rows, then assigns each one an income or expense category based on the merchant and description. Export the result to Excel or CSV with the categories already filled in, and adjust any line in the file if you want a different label.
Automatic categorization happens during conversion: the tool reads each transaction description and matches it to a category such as software, meals, travel, payroll, or fees. Plus plan subscribers and above can save a custom template so the same rules apply to every statement, which keeps categories consistent month to month.
Yes. Name your categories after the lines on Schedule C or your business return, and the exported totals carry straight into your filing. Keeping fees, interest, and transfers on separate rows means you capture every deduction and do not overstate income at tax time.
Add a Business or Personal flag next to each row, then categorize only the business lines so a commingled account still produces a clean Schedule C. The converter labels every transaction during extraction, which makes the business rows easy to spot and pull, while owner draws and personal charges get tagged as non-deductible so they never land in an expense total. Splitting them in the sheet is the fastest way to untangle a mixed account without a second bank login.
Get the transactions into QuickBooks first, then assign each one to an account and let bank rules handle the repeats. When the bank feed does not cover the account, convert the statement PDF to a CSV and use Transactions, Bank transactions, Upload from file, mapping the Date, Description, and Amount columns. On the For review tab, pick the category (which is the account from your chart of accounts) for each line, then build rules under the Rules tab so future transactions from the same vendor code themselves.
Convert every account the same way so they share the same columns, then stack the categorized rows into one sheet with an Account column and a Month column. Use one consistent category list across all accounts, and tag transfers between your own accounts on both sides so a move from checking to savings is not counted as income or expense. A single PivotTable over the combined sheet then totals each category across every account and month.
Categorize financial transactions by reading the merchant or ACH descriptor on each line and matching it to a standard bucket: income, cost of goods, or an operating expense such as software, meals, travel, payroll, or fees. Code every recurring payee once, apply it to all its rows, and tag transfers and owner draws separately so they never inflate income. The converter applies these matches during extraction, so the export arrives with a first-pass category on every line.
It depends on where your transactions start. For statement PDFs, a converter that categorizes during extraction is fastest because the export arrives already tagged. For ongoing books with a live bank feed, the bank rules in QuickBooks Online or Xero win. For card and receipt heavy teams, an expense platform codes spend at the point of purchase. See the full breakdown in best software to categorize bank transactions automatically.
Set up rules that map a keyword in the description to a fixed category, for example "Gusto" to payroll, "Google Ads" to advertising, and "Stripe fee" to merchant fees. Keep one rule per recurring vendor, align every category name to a Schedule C line, and add a transfer rule for account-to-account moves. Consistent rules are what make year-end totals tie out, and Plus plan subscribers and above can save them as a reusable template.
Build a two column rules sheet of keyword and category, then use one lookup formula that scans each description for the first keyword it matches. Everything it misses lands as Uncategorized, so you filter that column, add the new merchant once, and the list shrinks every month instead of the work repeating. The formula and the setup are in the Excel section above.
Yes, but only one with OCR. A scanned statement or a phone photo is an image, so copy and paste and Excel Power Query both fail on it because there is no text layer to read. Upload the scan as a PDF, JPG, PNG, HEIC, or TIFF here and it comes back as categorized rows in the same format as a digital PDF.
Our system uses advanced pattern recognition to categorize transactions with high accuracy. You can review and adjust categories in the exported Excel file as needed.
Yes, Plus plan subscribers and above can create custom categorization templates. The exported Excel file can also be edited to adjust categories as needed.
We support PDF bank statements from all major banks. Categorized transactions can be exported in Excel (XLSX) or CSV format.
Yes. Uploads are encrypted in transit and processed securely, and you can delete your uploaded statements and exports from your account at any time.
Cancel anytime from your account settings · refund policy
Get started converting bank statements to spreadsheets.
USD
per month
per month
$288 charged today
Choose speed vs accuracy when extracting
| Base AI Faster | 2,500 pages |
| Pro AI Best accuracy | 500 pages |
Scale statement conversion across your team with automation.
USD
per month
per month
$888 charged today
Choose speed vs accuracy when extracting
| Base AI Faster | 10,000 pages |
| Pro AI Best accuracy | 2,000 pages |
Enterprise-grade bank statement conversion and controls.
USD
per month
per month
$ charged today
Choose speed vs accuracy when extracting
| Base AI Faster | pages |
| Pro AI Best accuracy | pages |
Try it once, free: sign up and convert up to 15 pages (5 per statement) with no credit card. The demo does not renew.