Category: PennySlice

  • Your Statement Is a PDF. Here’s How to Turn It Into Usable Transactions

    Your Statement Is a PDF. Here’s How to Turn It Into Usable Transactions

    You went looking for a CSV export and found a download button that produces a PDF. Twelve pages, one month, every transaction sitting in a table that looks like a spreadsheet and behaves like a photograph. Some banks give you CSV, OFX and QIF alongside it. Plenty give you the PDF and nothing else, especially for closed accounts, credit cards, and anything older than about eighteen months.

    So you have a statement with 214 lines on it and no way to sort, filter or total anything. The usual next step is retyping. At a generous ten seconds per row — read the date, read the merchant, read the amount, tab across, catch the typo — that is a little over half an hour for one account, one month. Do that for three accounts across a year and you have signed up for a weekend.

    Why PDF statements resist being turned into rows

    A PDF does not contain a table. It contains instructions for drawing characters at coordinates on a page. The column structure you see is a visual coincidence — the amounts line up on the right because each one was placed to line up, not because they belong to a field called amount.

    That is why generic converters produce the results they produce. Given a statement where the description column is wide enough to wrap, a converter that reads line by line will split one transaction into two rows: the merchant name on one, the trailing half of the memo on the next, with the amount stranded on whichever line the drawing instructions happened to land. Negative numbers written as (42.18) come through as text. A running balance column gets read as a second amount. Multi-page statements repeat the header row eleven times, and a page break in the middle of a transaction cuts it in half.

    The output is a CSV, technically. It is also a file you now have to clean, which means the work did not go away — it changed shape into something less obviously tedious and therefore harder to schedule.

    The conventional way to convert a PDF bank statement to CSV

    If you want to do this manually, the sequence that works most often is:

    1. Open the PDF and check whether the text is selectable. Drag-select over a few transactions. If you get highlighted text, the statement has a text layer and can be parsed. If you get nothing, it is a scan or an image, and only OCR will get you anywhere.
    2. Copy one page at a time, not the whole document. Page-by-page copying keeps header rows and page furniture separable from transaction rows.
    3. Paste into a spreadsheet as plain text, then split into columns on a delimiter. Statement layouts often use runs of spaces, which means splitting on a single space breaks merchant names apart. Split on two or more spaces where your spreadsheet allows a regular expression.
    4. Fix the wrapped descriptions. Find every row with no date and no amount and merge it upward into the row above.
    5. Normalise the amounts. Strip currency symbols and thousands separators, convert parentheses to minus signs, and decide whether debits and credits live in one signed column or two.
    6. Delete the balance column. A running balance imported as an amount will double-count everything.
    7. Reconcile the total. Sum your amount column and check it against the statement’s closing figures. If it does not match, something got dropped at a page break — that is where the error nearly always is.

    That last step is not optional. It is the only way to know whether your PDF-statement-to-spreadsheet conversion actually captured all 214 lines or only 209.

    Check whether your bank has a real export first

    Before any of this, spend two minutes looking for a proper export. Banks bury it. It is often not on the account summary page but inside the statement archive, behind a small link labelled Download rather than Statements, or available only after you have set a date range rather than picked a statement month. CSV, OFX and QIF all skip the parsing problem entirely, because they were built to be read by software.

    The location differs by bank and changes when a bank redesigns its online banking. If you are in Canada, the step-by-step exports for RBC, TD, Scotiabank, BMO, CIBC and National Bank will save you the hunt. PennySlice keeps 104 of these export guides across 14 countries, heaviest in the US and Canada, then the UK, then eleven more European markets — because the fastest fix for a PDF problem is often discovering you never needed the PDF.

    When the PDF is all there is

    Sometimes there is no export. The account is closed. The card was cancelled. The statement is from 2021 and the archive only goes back two years. That is the case PDF import exists for.

    PennySlice takes the PDF directly. You drop the file in and the AI reads its structure — which block of text is the transaction table, which column is the date, which is the description, which is the amount, which is a balance to be ignored. There is no template to pick, because there is no list of supported statement layouts to pick from. There is no column-mapping screen, because nobody is asked to identify the columns. Wrapped descriptions get reassembled with the transaction they belong to. Repeated page headers get dropped.

    The same path handles CSV, Excel, OFX, email forwarding and a photo of a receipt. Import requires no standing access to any account — you are handing over a file, not a connection. If you would rather link an account than manage files, that option exists too, through OAuth: your login is entered at your bank, and what comes back is a read-only token you can revoke from either side. Bank linking is available in the US and Canada, on paid tiers. Import works everywhere.

    What you get instead of a spreadsheet

    A clean CSV is a means, not an end. What you wanted from those 214 rows was a total by category, and a spreadsheet gives you that only after you have written the formulas and tagged every merchant by hand.

    Once a statement is in PennySlice, transactions arrive categorized, and one purchase can be split across several categories rather than forced into one — the reason a single Costco trip is genuinely groceries plus clothing plus household rather than a $180 line item labelled shopping. From there you ask questions in plain English across transactions, accounts, categories, budgets, imports, receipts, predictions and what-if scenarios, and get answers with your own figures in them.

    Background detectors run without being asked, too: Penny Spotter watches budget pace, category anomalies, recurring costs that quietly rose, bills that are coming, savings opportunities, income shifts and merchants taking an outsized share of your spending.

    That is the difference between converting a statement and using one.

    Start with the oldest PDF you have

    Pick the statement you have been avoiding — the one from the closed account, or the credit card whose export only goes back a year — and drop it in. The Track tier is free forever, and paid plans include a 30-day trial with no card required. If the file parses, you have your answer about the other eleven months.

    PennySlice provides spending information, not financial advice.

  • How to Categorize Transactions Automatically — the Mechanics, the Mislabels, and the Line-Item Fix

    How to Categorize Transactions Automatically — the Mechanics, the Mislabels, and the Line-Item Fix

    You exported three months of transactions, dropped them into something, and got back a category column that is about 80% right. Groceries looks plausible. Shopping is a landfill. And one line — COSTCO WHSE #1042 for $214.83 — sits in Groceries even though about a third of it was a winter coat and a case of dish soap.

    That last one is the interesting failure, because it is not a mistake in the usual sense. The categorizer did the optimal thing available to it with the information it had. The information was just thin.

    What a categorizer actually sees

    A bank transaction is a short, ugly string and a number. Something like:

    2026-01-14  SQ *BLUE BOTTLE COFFEE  OAK    -6.75
    2026-01-14  AMZN Mktp US*2K48Q9    -83.12
    2026-01-15  COSTCO WHSE #1042             -214.83
    

    That is the entire input. No item list, no receipt, no note about what you were doing. Automatic categorization is the job of turning that string plus that amount into a label, and there are only a few honest ways to do it.

    The oldest is exact matching against a merchant table. STARBUCKS maps to Coffee, and it does so reliably because Starbucks sells one kind of thing. This works beautifully for single-purpose merchants and fails the moment a processor prefix, a store number or a truncation shows up. SQ *, TST*, PP* and AMZN Mktp US* are payment rails, not businesses, and a naive matcher will happily create a merchant called “SQ”.

    The next layer is normalization: strip the processor prefix, strip the store number, strip the city and state suffix, collapse the result to a canonical merchant. SQ *BLUE BOTTLE COFFEE OAK becomes Blue Bottle Coffee. Most of what feels like intelligence in a categorizer is really good cleanup happening before any decision gets made.

    On top of that sits inference for merchants nobody has seen before. A model reads the cleaned string, the amount, the account it hit and the timing, and produces a best guess. It is a guess, and it should be presented as one.

    Where single-category models start lying to you

    Here is the structural problem, and it has nothing to do with how good the model is.

    Most systems store one category per transaction. That data model assumes each purchase is one kind of thing. For coffee, gas and your electricity bill, fine. For a general merchandise store, a pharmacy, a supermarket with a clothing aisle, or a marketplace order that bundled four unrelated items into one charge, the assumption is simply false.

    So the categorizer picks the most likely single label and files the entire amount under it. Your $214.83 Costco trip becomes $214.83 of Groceries. The coat and the dish soap vanish — not into the wrong category exactly, but into a category that swallowed them.

    The damage compounds quietly. Your grocery spend now reads high and your household and clothing spend read low, every month, consistently. Consistency is what makes it dangerous: a budget built on that number looks stable and is wrong in the same direction forever. Anomaly detection is worse off too, because a genuine grocery spike and a one-off coat purchase look identical from the outside.

    This is the piece people mean when they ask how to categorize and organize their expenses and find that neat labels still do not produce a picture they trust.

    How to categorize transactions automatically at the line level

    The fix is to stop treating the transaction as the smallest unit. PennySlice does sub-transaction categorization: one purchase can be split across several categories, so a single Costco trip becomes groceries plus clothing plus household, automatically, at the line-item level.

    Two things make that possible. The first is receipt OCR — photograph the receipt and the individual lines come back categorized individually, which is the only path to real certainty about what was in the basket. The second is inference on the transaction itself, where the split is proposed from patterns rather than from a paper record.

    Both beat a single label, because both preserve the shape of the purchase instead of flattening it. And once splits exist, the downstream numbers change: budget pace on Groceries stops absorbing everything you bought under the same roof, and merchant concentration stops describing a warehouse store as a food expense.

    What actually moves categorization accuracy

    Accuracy in automatic expense categorization is not a fixed property of a model. It is a function of four things, roughly in order of impact.

    Merchant coverage. How many cleaned merchant strings the system already recognizes confidently, versus how many it has to reason about from scratch.

    Normalization quality. How well prefixes, store numbers and truncations are stripped before matching. A missed prefix creates a phantom merchant that will never match anything.

    Your own history. Once you have corrected a merchant, the correct answer for that merchant is known for your account. Repeat merchants are most of most people’s transaction volume.

    Everyone else’s corrections. PennySlice uses community-powered AI: corrections one user makes improve categorization for everyone. A merchant that was ambiguous last month is often unambiguous this month because somebody already resolved it. Accuracy compounds with usage rather than sitting still.

    The practical consequence is that the first import is the least accurate one you will ever see, and the shape of the errors matters more than the count. Ten wrong labels spread across ten one-off merchants cost you almost nothing. One wrong label on the merchant you visit weekly distorts a whole category.

    What it will not do

    No categorizer can tell you why you bought something. A $180 charge at a hardware store is a repair, a hobby or a gift, and the merchant string contains none of that. If the distinction matters to you, it has to come from you — a correction, a receipt photo, or a note.

    It also cannot know about a split you would consider obvious but which is invisible in the data. A single restaurant charge covering four people who will pay you back is one amount at one merchant, and nothing about it announces itself as a shared expense.

    So the honest framing is: automatic categorization handles the volume, and you handle the ambiguity — a handful of decisions a month, not several hundred. The system’s job is to stop asking you the same question twice.

    Start with one month

    Export a single month from your bank as CSV, Excel, OFX or PDF and drop it in. There is no template to choose and no column-mapping step; the AI reads the file and detects its structure. If you are not sure where your bank hides the export button, the Canadian bank export guides cover RBC, TD, Scotiabank, BMO, CIBC and National Bank step by step, and there are guides for 104 banks across 14 countries.

    Then open the three largest transactions and check the splits. That is where the categorization is either earning its keep or quietly rewriting your grocery budget.

    PennySlice provides spending information, not financial advice.

  • How to Find Recurring Payments on My Bank Account — Including the Ones That Quietly Got More Expensive

    How to Find Recurring Payments on My Bank Account — Including the Ones That Quietly Got More Expensive

    You already know about the streaming service and the gym. That is the problem with most subscription cleanups: you sit down with a statement, find the four charges you could have named from memory, cancel one of them, and call it done.

    The charges that actually add up are the ones that changed. A cloud storage plan that was $2.99 and is now $5.99. A password manager that went from $35.88 a year to $47.88. A meal kit that added a delivery fee. None of those show up as a new line on your statement. They show up as the same merchant name you have skimmed past twelve times, with a slightly different number next to it.

    So a proper recurring-charges audit is two passes, not one. First you find everything that repeats. Then you check whether any of it repeats at a different price than it used to.

    Pass one: how to find recurring payments on my bank account

    Work from data you can sort, not a PDF you scroll. Pull at least twelve months of transactions — twelve because annual subscriptions bill once and you will miss every one of them in a 90-day window. Most banks will give you CSV, Excel or OFX from the account activity screen; if you bank in Canada, the export steps for RBC, TD, Scotiabank, BMO, CIBC and National Bank are written out step by step.

    Once it is in a spreadsheet, sort by description rather than by date. Recurring charges announce themselves the moment identical merchant strings sit next to each other. Then look for three signals:

    Same merchant, regular interval. Monthly is obvious. Also check for every four weeks, which drifts across the calendar and produces thirteen charges a year instead of twelve, and quarterly, which is easy to mistake for a one-off.

    Round-ish amounts that never vary. $9.99, $14.99, $120.00. Groceries and gas fluctuate; subscriptions rarely do, until they do.

    Descriptors that do not look like a merchant. Billing descriptors are frequently the parent company, an app-store intermediary, or a payment processor with a reference number attached. A charge labelled with a company you have never heard of is not necessarily fraud — it is often the legal entity behind a product you use daily. Search the exact string before you assume anything.

    Build a single list as you go: merchant, amount, interval, first date seen. That list is the thing you will compare against next month, and it is far more useful than a mental note.

    How to find subscriptions you forgot about

    A bank statement is a good net, but it has holes. Three places recurring charges hide from it:

    Card-on-file at an app store. Several subscriptions can arrive as one bundled charge from the same platform, or as separate charges with near-identical descriptors. The statement tells you the total; the platform’s own subscription screen tells you what it is made of.

    Cards you stopped carrying. A card sitting in a drawer still bills. If the account is open, export it too.

    Wallets and payment intermediaries. If you want to know how to find recurring payments on PayPal, the statement will only show you PayPal — not who PayPal paid. Automatic payments and pre-approved billing agreements live in your PayPal account settings, under the section for automatic payments, and they need checking separately. The same is true of any wallet or buy-now-pay-later service that sits between your bank and a merchant: one line in your bank data, several arrangements behind it.

    A free trial you started and forgot is the classic version of this, but the more common one is duller — a service you genuinely used for two months in 2023 and have not opened since.

    Pass two: finding the amount drift

    This is the pass almost nobody runs, and it is where the money is.

    Group your twelve months by merchant, then look at the amount column down the group. You are looking for a step change: eleven charges at one figure and one at a higher figure, or a slow staircase of small increases. Sort by merchant and then by date, and a staircase is visible in about two seconds.

    What you will typically find:

    • A single step up. The plain price rise. Often announced in an email you archived.
    • A staircase. $3 more, then $2 more, then $2 more. Each increment is small enough to ignore individually and the total is not.
    • A tier change you did not make deliberately. Storage plans and seat-based tools upgrade themselves when you cross a threshold.
    • Fees bolted onto a stable base price. The subscription line is unchanged and the total is not.
    • The annual renewal at a new number. The worst of the set, because you compare it against a memory that is twelve months old.

    A subscription price increase without notice is usually a notice you received and did not read, which is not much comfort. The practical defence is not better inbox discipline. It is that a price change leaves a mark in your transaction data whether or not you read the email, so the data is the reliable place to look.

    While you are there, check the reverse: charges that stopped. A service you cancelled that kept billing, or a charge that vanished for two months and came back, both deserve a look.

    Doing it without redoing it

    Once is useful. The audit’s value comes from repetition, and repetition by hand is where this falls apart — nobody sorts a spreadsheet by merchant every month for a year.

    This is what PennySlice’s recurring cost creep detector watches for. It is one of seven Penny Spotter detectors that run in the background without being asked, and its whole job is the second pass: same merchant, same interval, different amount. It also flags predicted expenses — bills that are coming before they land — and merchant concentration, when a single merchant is taking an outsized share of your spending.

    You can ask directly too, in plain English: what recurring charges do I have, which ones went up in the last six months, how much did this merchant take from me last year. The answers come back as figures from your own transactions.

    How the data gets in is your call. Import CSV, Excel, OFX, PDF, a forwarded email or a photo of a receipt — the file is read and its structure detected, with no template to choose and no columns to map. Or link a bank through Plaid, where the login is entered at your bank, not at PennySlice, and the token that comes back is read-only and revocable from either side. Bank linking is available in the US and Canada; import works wherever your bank will give you a file. You can mix both.

    The Track tier is free forever, and paid plans include a 30-day trial with no card required.

    One thing to do now

    Export twelve months from your main account, sort by merchant description, and read down the amount column for a single merchant whose number is not the same at the bottom as it was at the top. One staircase is all you need to find to make the export worth it.

    PennySlice provides spending information, not financial advice.

  • An Expense Tracker That Works Without Linking Your Bank: Uploading Statements, CSVs, PDFs and Receipts

    An Expense Tracker That Works Without Linking Your Bank: Uploading Statements, CSVs, PDFs and Receipts

    You get to the second screen of a new expense app and it wants your bank login. Not a file. Not a statement. A live, standing connection to the account your salary lands in. For some people that is fine. For plenty of others it is the moment the app gets deleted, and the spreadsheet — three months out of date, two accounts missing — stays.

    There is also a much less philosophical version of this problem. If you bank in the UK, the Netherlands, Spain, France, Ireland, Germany, Italy, Denmark, Finland, Switzerland, Sweden or Belgium, PennySlice’s bank linking is not available to you at all. Linking runs through Plaid and covers the US and Canada. For everyone else, importing is not a fallback option buried in settings. It is the product.

    What an expense tracker that works without linking your bank actually has to do

    The reason import gets treated as second-class in most tools is that it is usually miserable. You export a CSV, you pick a template that does not match, you map columns by hand — date to date, description to merchant, and then the debit/credit column that arrives as two columns in one bank and one signed column in another. Four screens of setup before a single number appears.

    PennySlice does not have that step. You drop the file in and the AI reads its structure. No template to pick, no column mapping, no “which of these is the amount” dialog. Whatever your bank decided to call its columns is your bank’s problem, not yours.

    The formats are broader than most people expect:

    • CSV — the standard export from nearly every online banking portal
    • Excel — because some banks only offer XLSX, and some households already keep one
    • OFX — the older, structured banking format that some institutions still default to
    • PDF — an actual statement, the kind you download rather than export
    • Email forwarding — send a receipt or a statement to your import address
    • Photo — snap a paper receipt and get itemized lines back

    That PDF entry matters more than it looks. A lot of banks, particularly outside North America, will happily hand you a statement PDF and nothing machine-readable. That has historically meant retyping. It does not have to.

    Nothing is watching your account in between

    This is the part people are usually asking about when they say they do not want to link. An import creates no standing access to anything. There is no token sitting somewhere with permission to read your balance tomorrow. You gave the app a file; the app read the file.

    If you do decide to link a bank later — it is available on paid tiers, in the US and Canada — the mechanism is worth knowing. The login is entered at your bank, through OAuth, not at PennySlice. What comes back is a read-only token for transactions and balances that you can revoke from either side at any time. We never store your bank password. And your data is never sold, to advertisers or anyone else.

    One thing to be straight about, because privacy claims in this category tend to be written loosely: to answer questions about your spending, financial data — merchant names, amounts, categories — is processed by a third-party AI provider. It is processed and discarded, not retained for training, and personal identifiers like your name, email and account numbers are not sent. That is the mechanism. Anyone promising you more than that is describing a different architecture.

    You can also mix the two. Link a checking account, import a credit card that is not supported, forward the odd receipt. The data ends up in the same place either way.

    Getting the file out of your bank

    The genuine friction in an import-first workflow is not the import. It is finding the export button, which every bank hides somewhere slightly different and renames every second redesign.

    There are 104 bank export guides in PennySlice covering 14 countries — 38 in the US, 28 in Canada, 15 in the UK, and the rest spread across eleven European markets. Each one is the specific sequence of clicks for that bank, including which date range picker resets itself and which format the download menu actually offers. If you bank in Canada, for instance, the walkthrough for RBC, TD, Scotiabank, BMO, CIBC and National Bank covers the five-minute version.

    Worth being precise here, because the two footprints are not the same: export guides span 14 countries. Bank linking works in two. If you are in Berlin, the guide exists and the import works; the linking does not.

    What happens after the file is in

    Uploading is the boring half. The point of getting the data in is being able to ask it things in plain English and get a figure back rather than a maxim.

    Across eight areas — transactions, accounts, categories, budgets, imports, receipts, predictions and what-if scenarios — you ask a question and the answer is grounded in your own data. “What did I spend on takeaway in March?” “Which subscription went up this year?” “Can I afford a laptop next month?” The last one is Pulse Check, and it runs against your real balances and history. There is more detail on the eight areas the AI can answer questions about if you want the full map.

    Imported data gets the same treatment as linked data on everything else, too. Sub-transaction categorization splits one purchase across several categories, so a single Costco line item stops pretending to be groceries when a third of it was clothing — the mechanics of splitting a receipt at the line level are the same whether the receipt arrived as a photo or the transaction arrived in a CSV.

    Penny Spotter’s seven background detectors run either way: budget pace, category anomalies, recurring cost creep, predicted expenses, savings opportunities, income changes and merchant concentration. Penny Reports still writes the monthly summary. Household sharing still puts several people’s accounts in one view, which is often the actual reason a household gave up on the spreadsheet.

    The honest tradeoff

    Importing is not identical to linking, and pretending otherwise would be silly. Linked accounts refresh themselves; imported ones refresh when you upload. If you want your numbers current on a Tuesday afternoon without thinking about it, linking does that and import does not.

    What import gives you in exchange: no standing connection, no coverage restriction, and no format you have to convert first. For a lot of people that is the better trade, and for anyone outside the US and Canada it is not a trade at all — it is the only path, and it is a complete one.

    Export last month’s statement from your bank, drop the file in, and ask it one question you have been guessing the answer to.

    PennySlice provides spending information, not financial advice.

  • What Can You Actually Ask an AI to Analyze My Bank Statements? The Eight Areas That Get Answers

    What Can You Actually Ask an AI to Analyze My Bank Statements? The Eight Areas That Get Answers

    You have a CSV of eighteen months of transactions and a vague sense that something in there is leaking. You open a chat box and type “analyze my spending”, and you get back a paragraph that could have been written about anyone. That is not the AI failing. That is a question with no edges.

    A conversational tool grounded in your own data answers narrow questions well and broad ones badly. So the useful skill is knowing where the edges are. In PennySlice, there are eight areas a question can land in: transactions, accounts, categories, budgets, imports, receipts, predictions and what-if scenarios. Here is what each one actually answers, and what comes back.

    Transactions: the questions with a row number attached

    This is the area most people underuse, because they assume search is all it does. It is not search — it is filtering, summing and sorting in plain English.

    Things that land here:

    • “What did I spend at hardware stores in March?”
    • “Show me every transaction over $200 in the last 90 days.”
    • “How many times did I pay for parking last month, and what was the total?”
    • “Did I get charged twice by anyone in February?”

    The answer shape is a figure plus the rows behind it. Twelve parking charges, $186. You can see the twelve. That matters more than it sounds, because the moment an AI gives you a number you cannot trace, you have to take it on faith — and financial numbers you cannot check are not worth much.

    Accounts: where the money sits, not just where it went

    Account-level questions are about distribution. Balances, transfers between your own accounts, which card carries which kind of spending.

    • “What’s the current balance across all my accounts?”
    • “How much moved from checking to savings this year?”
    • “Which account do most of my subscriptions hit?”

    That last one is quietly useful. Subscriptions scattered across three cards are the ones nobody audits.

    Categories: including the ones a single purchase belongs to at once

    Category questions are the standard “where is my money going” question, made answerable.

    • “What are my top five categories this quarter?”
    • “Is groceries up or down compared to the same period last year?”
    • “What percentage of my spending is discretionary?”

    The part that changes the answers here is sub-transaction categorization. One purchase can be split across several categories at the line-item level, so a warehouse-store run becomes groceries plus household plus clothing rather than a single lump filed under whichever label loses the least information. If you have ever looked at a category report and thought “most of that groceries number is not groceries”, that is the reason — and splitting a Costco receipt at the line level is the fix.

    Ask a category question against split data and the answer is a different number. Usually a more uncomfortable one.

    Budgets: pace, not just totals

    Budget questions are about position in a period, which is the thing a monthly statement is worst at telling you.

    • “How much of my dining budget is left?”
    • “Which categories am I on track to go over this month?”
    • “Was I under on transport in any month last year?”

    The answer comes back as a figure and a pace — spent to date, days remaining, projected end-of-month. Penny Spotter also runs budget pace as a background detector, so the flag arrives before you thought to ask.

    Imports: asking the AI to analyze my bank statements right after the file lands

    This is the area nobody expects to be conversational, and the one that removes most of the setup friction. When you drop a file in — CSV, Excel, OFX, PDF, a forwarded email, or a photo — the AI reads it and detects its structure. There is no template to pick and no column-mapping screen.

    So the questions are about the file itself:

    • “Did anything fail to import from that statement?”
    • “Are there duplicates between this file and what I already had?”
    • “What date range does this import cover?”

    If your bank’s export is the part you are stuck on, the guides cover that separately — there are 104 bank export guides across 14 countries, including a walkthrough of exporting transactions from Canadian banks. Import works wherever you are. Bank linking through Plaid is a separate capability, available in the US and Canada, on paid tiers.

    Receipts: line items a statement cannot show you

    A bank statement gives you a merchant and a total. A receipt gives you what was in the bag. Photograph one and OCR pulls the itemized lines, each categorized individually.

    • “What did I actually buy on that $214 supermarket charge?”
    • “How much of my grocery spending is pet food?”

    That second question is unanswerable from statement data alone, at any level of AI sophistication, because the information is not in the file. This is the honest limit: the AI can only analyze what your data contains. If you want line-level answers, categorizing a receipt line by line is the step that puts them there.

    Predictions: bills that have not arrived yet

    Prediction questions project your own patterns forward. They are not forecasts of the economy or of your income prospects — they are extrapolations of what has recurred.

    • “What bills are due in the next two weeks?”
    • “What does a normal month cost me?”
    • “Have any of my recurring charges gone up?”

    Recurring cost creep is one of the seven Penny Spotter detectors, alongside category anomalies, income changes and merchant concentration. Those run in the background whether or not you ask, which covers the questions you would never think to type.

    What-if scenarios: a number instead of a maxim

    Pulse Check answers hypotheticals against your real balances and history.

    • “Can I afford a $1,400 laptop next month?”
    • “What happens to my monthly total if I drop three subscriptions?”
    • “If income drops 15%, what does that do to my normal month?”

    What comes back is arithmetic on your data: your projected balance, your committed bills, the gap. It will not tell you whether to buy the laptop. It tells you what the month looks like on either side of the decision, and you make the call.

    How to ask a question that gets a real answer

    The pattern across all eight areas is the same. Name a thing, name a window, and the answer has a figure in it. “Analyze my spending” has neither. “What did I spend on food delivery in the last three months, and is it rising?” has both, and lands in categories and predictions at once — which is fine, because you are not required to know which of the eight you are in.

    Start with one question you have genuinely wondered about and could not answer from a statement. Import a file, ask it, and see whether the number surprises you. Track is free forever; paid plans come with a 30-day trial and no card required.

    PennySlice provides spending information, not financial advice.

  • One receipt, four categories: how to categorize a receipt line by line

    One receipt, four categories: how to categorize a receipt line by line

    You spent $214.37 at a warehouse store on Saturday. The card statement shows one merchant, one amount, one date. Your expense tracker files it under Groceries, because that is the closest single label available.

    But the cart held $86 of food, a $54 winter coat, $38 of paper towels and detergent, a $24 tire rotation, and $12 of over-the-counter medicine. Exactly none of that is a grocery problem. And when you look at your grocery spending three months later and it says $1,340, you will believe a number that is off by hundreds of dollars in a direction you cannot see.

    This is the quietest failure mode in personal expense tracking. It does not look like an error. It looks like data.

    Why whole-receipt categories go wrong

    A category is only useful if it answers a question. “Am I spending more on food than I think?” is a real question. It stops being answerable the moment your food category is also absorbing clothing, car maintenance and cleaning supplies.

    The distortion runs in both directions at once. Groceries look inflated, so you conclude food is your problem area. Household and clothing look artificially low, so they never surface as anything at all. If you set a grocery budget against that inflated baseline, the budget is built on a number that was never about groceries.

    It also gets worse the more you consolidate your shopping. Warehouse stores, big-box retailers, pharmacies that sell milk, hardware stores with a snack aisle, online marketplaces that ship four unrelated things in one charge — the merchant tells you almost nothing about what the money bought. A $60 charge at a pharmacy could be a prescription, a birthday gift, or three weeks of shampoo. The merchant name is the label, and the label is wrong.

    Most people handle this one of two ways. They pick the dominant category and accept the noise, or they manually split transactions and stop doing it after about two weeks because the process is tedious and nothing bad happens when you skip a day. Neither produces data you would want to make a decision on.

    How to categorize a receipt line by line

    The fix is not more discipline. It is getting the line items into the system at all.

    Your bank does not have them. A bank feed carries merchant, amount, date and sometimes a payment channel. It never carries the contents of the basket, because the bank was never told what was in the basket — it was told the total. That limit applies whether you link an account or import a statement file yourself, and it is the reason a linked bank feed alone will never fix this particular problem.

    The only place the itemization exists is the receipt. So the sequence looks like this:

    1. Capture the receipt itself, not the statement line. Photograph it at the till or when you unpack the bags. A paper receipt that goes into a coat pocket is data you have already lost.
    2. Read the lines, not the total. Each row on the receipt is its own small expense with its own amount, and it needs its own category.
    3. Assign categories per line. Coat to clothing. Detergent to household. Tire rotation to auto. Food to groceries.
    4. Reconcile against the total. The line items plus tax should add back up to the charge on your account, or something got missed.
    5. Keep the split attached to the original purchase. You want one transaction with four category components, not four invented transactions that no longer match your statement.

    That last step is the one people get wrong when they do this by hand in a spreadsheet. Splitting a purchase into four separate rows breaks reconciliation — your ledger no longer lines up with your account, and now you have two problems.

    What receipt OCR and sub-transaction categorization actually do

    In PennySlice, this runs as two connected pieces.

    Receipt OCR handles capture. You take a photo of a receipt and the itemized lines are read out of it, then categorized individually rather than dumped under the merchant. The $54 coat lands in clothing on its own. You are not typing rows into a form.

    Sub-transaction categorization handles the structure. One purchase can carry several categories at once, at the line-item level, while staying a single transaction tied to the single charge on your account. The warehouse run becomes groceries plus household plus clothing plus auto — and your grocery total stops carrying $128 that was never food.

    Corrections you make feed back in. If a line gets categorized in a way that does not match how you think about it, fixing it improves categorization across the platform, so the accuracy compounds with use rather than staying wherever it started.

    And because the categories are now honest, the background detectors have something real to work with. Penny Spotter runs seven detectors without being asked — including budget pace, which flags a category tracking toward blowing its budget before the month ends, and category anomalies, which flag spending that breaks your own established pattern. A budget-pace alert on groceries is only worth reading if groceries means groceries. Feed it a category that absorbs coats and tire rotations and every alert is a coin flip.

    Receipts are not the only path in

    Photos are the right tool for itemization, but they are one of several ways to get data in. You can also import CSV, Excel, OFX or PDF files, or forward receipts by email. The AI reads the file and works out its structure — there is no template to choose and no column-mapping step to fight through.

    If you would rather start from your account history and add receipts on top, statement exports are the usual starting point, and the process differs by institution — our walkthrough for exporting transactions from Canadian banks covers the main ones step by step. Bank linking through Plaid is also available on paid tiers in the US and Canada, where your login is entered at your bank rather than at PennySlice. Whichever route you use, the receipt is still the only source of line items.

    This matters most in a household, where the mixed-basket problem multiplies. Two adults, five to eight accounts, and a weekend where both of them did a run that was half food and half everything else. Household sharing puts those accounts and budgets in one view, and line-item splitting is what stops that shared view from being a pile of transactions labelled with store names.

    Start with one receipt

    Pick the messiest receipt in your wallet right now — the one with the widest spread of unrelated items — photograph it, and look at what the split says your categories actually were. Then compare that to what a single label would have claimed. The gap is the size of the error you have been budgeting against.

    PennySlice provides spending information, not financial advice.

  • One Costco Trip Is Not One Category: Splitting a Receipt at the Line Level

    One Costco Trip Is Not One Category: Splitting a Receipt at the Line Level

    Your bank statement says COSTCO WHOLESALE #1042, $341.86. Your expense app files it under Groceries. It is now the biggest grocery charge of the month, and it is wrong.

    In that $341.86 there were rotisserie chickens and a case of olive oil, yes. There were also two pairs of kids’ jeans, a 30-pack of paper towels, printer ink, a tire rotation and a bag of dog food. Maybe $180 of it was actually food. The rest was clothing, household supplies, office, vehicle and pet — five categories that will now show $0 for the month, while Groceries carries their weight silently.

    Do that four times a month and the distortion is not a rounding error. It is the reason your grocery number looks unmanageable and every other category looks suspiciously well behaved.

    Why the bank feed can never fix this on its own

    A bank transaction has three useful fields: date, merchant, amount. That is the whole payload. Whether the money came in through a linked account or a CSV you exported yourself, the bank does not know what was in the cart — the merchant’s payment terminal sent a total, not a manifest.

    So every tool that categorizes from the bank feed alone is doing the only thing it can do: assign one merchant to one category and move on. Costco becomes Groceries. Target becomes Household. Amazon becomes whatever you told it Amazon is, which for most people is a shrug in category form.

    This is fine for a coffee shop. It falls apart precisely at the merchants where you spend the most, because big box stores are cross-category by design. The whole retail model is that you came for milk and left with a lawn chair.

    The line item is where the truth lives

    The receipt has what the bank feed does not. Every line is a product, a quantity and a price, and the sum of the lines is the transaction. If you can read the lines, you can reconstruct exactly what that $341.86 was.

    PennySlice does this with receipt OCR: photograph the receipt, and each line is read and categorized individually rather than the total being categorized as a block. One purchase becomes multiple categories, with the amounts adding back up to what actually hit the account.

    The practical output is that the $341.86 stops being a mystery and becomes a breakdown — groceries, clothing, household, and the rest, each landing in the category it belongs to. Nothing has been estimated or apportioned by percentage. The numbers come from the receipt.

    How to split a Costco receipt between categories

    The mechanics are short, which is the point.

    1. Keep the receipt. This is the only step that requires a habit. The warehouse receipt is long and your instinct is to bin it at the door. Photograph it in the parking lot instead.
    2. Photograph the whole thing. Flatten it, get the full column of line items in frame. Receipt OCR reads the itemized lines, so a shot that clips the bottom third clips the bottom third of your data.
    3. Let the lines categorize. Each item is assigned on its own. Food goes to groceries, the jeans go to clothing, the paper towels go to household. You are not picking a template or mapping columns.
    4. Correct what it got wrong. It will not be perfect on every obscure product code. Fix the ones that matter. Corrections feed back into the shared model, so the same product is more likely to be right next time — for you and for everyone else using PennySlice.
    5. Check the split matches the charge. The lines should reconcile to the transaction on your statement. If they do, that one purchase is now correctly spread across multiple categories instead of inflating one.

    The same applies to any big box store purchase. Costco is the sharpest example because the basket sizes are large and the category spread is wide, but a $90 Target run has the same problem in miniature, and it happens more often.

    What changes downstream

    Splitting is not tidiness for its own sake. It is what makes every number built on top of the data mean something.

    Budgets stop lying. If your grocery budget is $600 and it is silently absorbing clothing and motor oil, you will blow it every month and conclude you are bad at food shopping. Split the lines and you may find groceries were $420 and the overspend was somewhere else entirely.

    Anomaly detection gets a real baseline. Penny Spotter watches for category spending that breaks your own pattern. A category that is actually five categories in a trench coat has no stable pattern to break — the signal drowns in the mixing. Clean categories give the detectors something to detect.

    Household spending becomes attributable. When two people shop at the same warehouse and one trip is kids’ clothes and the other is a month of food, a single Groceries line for both tells the household nothing. With shared accounts and budgets in one view, the split is what makes the shared view worth looking at.

    Recurring cost creep is visible. The seven Spotter detectors include one for recurring costs that quietly rose. If the food portion of your warehouse runs has climbed 18% over six months, that is only visible once the food portion exists as a number.

    When you do not have the receipt

    You will not always have it. For past months the receipts are gone, and OCR cannot recover what you did not keep.

    What you can do is work from the transaction history you already have. Pull your statements in as CSV, Excel, OFX or PDF — the file is read and its structure detected, with no template to pick and no column mapping — and then ask about the merchant directly. “How much did I spend at Costco in the last six months, and how does it compare to the six before?” gives you a figure to work with even without line detail. If you need to get those statements out of your bank first, the export guides for Canadian banks cover the click path for RBC, TD, Scotiabank, BMO, CIBC and National Bank.

    From there the sensible move is not to backfill a year of splits by hand. It is to start splitting the trips from today forward, so that three months from now you have a real grocery number instead of a merchant total wearing a category label.

    Ask what your groceries actually cost

    The question worth asking is not “how much did I spend at Costco” — you know that, it is on your statement. It is “how much of that was food”. Photograph your next warehouse receipt and let the lines answer it.

    PennySlice provides spending information, not financial advice.

  • How to export transactions from Canadian banks: RBC, TD, Scotiabank, BMO, CIBC and National Bank

    How to export transactions from Canadian banks: RBC, TD, Scotiabank, BMO, CIBC and National Bank

    Every Canadian bank lets you download your transaction history as a file, and most people never do it. That file is the difference between guessing at your spending and reading it: a dated, itemized record of every debit and credit in a range you choose, in a format a tool can actually parse.

    Below is the path for the six largest Canadian banks, in the order most people bank with them. Interfaces change, so where a bank’s exact wording moves around, the general route is given instead of a button label that may already be wrong.

    One note before you start: online banking usually keeps a limited window of history available for download — often somewhere between three and eighteen months depending on the bank and account type. If you want a longer run, export in chunks going back as far as the date picker allows, and pull older periods from PDF statements.

    RBC Royal Bank

    RBC’s online banking exposes download options from the account activity view rather than from a central export screen. You pick the account first, then the range, then the format. Both spreadsheet and accounting formats are offered.

    1. Sign in to RBC Online Banking on desktop. The download options are more complete on the web than in the mobile app.
    2. From your accounts summary, select the chequing, savings or credit card account you want.
    3. Open the account activity or transaction history view for that account.
    4. Look for a download or export control on that page.
    5. Choose your date range. If you want everything available, set the start date as early as the picker allows.
    6. Choose CSV for a spreadsheet-friendly file, or OFX/QFX if you prefer the accounting format.
    7. Confirm the download and note where your browser saved the file.
    8. Repeat for each account. Credit cards export separately from chequing.

    TD Canada Trust

    TD splits things between EasyWeb on desktop and the mobile app, and the export controls live on desktop. Each account is downloaded on its own, and TD offers both spreadsheet and accounting formats.

    1. Sign in to TD EasyWeb in a browser.
    2. Select the account you want from your accounts list.
    3. Open the transaction or account activity view.
    4. Find the download or export option on the activity page.
    5. Select the date range you want. Check the earliest date the picker will accept before you commit — it may be shorter than you expect.
    6. Choose CSV, Excel, or OFX/QFX depending on what you plan to do with the file.
    7. Download, then confirm the file opened with the right account’s transactions in it.
    8. Repeat per account, including each credit card.

    Scotiabank

    Scotiabank’s download is reached through the account details view. As with the others, the desktop site gives you the full set of format options while the app is mostly read-only.

    1. Sign in to Scotiabank online banking on desktop.
    2. Click into the account you want from your accounts overview.
    3. Open the transaction history or account activity for that account.
    4. Locate the download or export control.
    5. Set the from and to dates for the period you need.
    6. Choose CSV, Excel, or OFX/QFX.
    7. Save the file.
    8. Repeat for any other chequing, savings or credit card accounts.

    BMO Bank of Montreal

    BMO groups downloads under its own section of online banking rather than only on the account page, so you may be able to select the account and the range in one place. If you cannot find it there, the per-account activity view has the same option.

    1. Sign in to BMO Online Banking on desktop.
    2. Look for a transaction download or export area in the account services or account activity navigation.
    3. Select the account you want to export.
    4. Choose the date range. BMO’s available window varies by account type, so check the earliest selectable date.
    5. Choose CSV, Excel, or OFX/QFX.
    6. Download the file.
    7. Repeat for each remaining account.

    CIBC

    CIBC exposes downloads from the account activity page, one account at a time. The spreadsheet option is the simplest if you plan to open the file yourself first.

    1. Sign in to CIBC Online Banking in a browser.
    2. Select the account you want from your accounts list.
    3. Open the account details or transaction history view.
    4. Find the download or export transactions option on that page.
    5. Set the date range.
    6. Choose CSV, or OFX/QFX if you want the accounting format.
    7. Save the file and check that the date range in it matches what you asked for.
    8. Repeat for other accounts and credit cards.

    National Bank of Canada

    National Bank’s online banking is available in French and English, and the export control may be labelled with the French term depending on your language setting. The route is the same either way: account, then history, then download.

    1. Sign in to National Bank online banking on desktop.
    2. Select the account you want.
    3. Open the transaction history or account statement view.
    4. Find the download or export option on that page.
    5. Choose the date range you need.
    6. Choose CSV, Excel, or OFX/QFX.
    7. Download and confirm the file contents.
    8. Repeat for each account.

    Which format to pick

    If you are only going to hand the file to a tool, any of the three works. If you want to open it yourself and look at it first, take CSV — it opens in any spreadsheet application and in a plain text editor, and you can see immediately whether the dates, descriptions and amounts came through the way you expected.

    OFX/QFX carries a little more structure, including account identifiers and cleaner transaction typing, which can help when you are merging several accounts. Some banks label this option after the accounting software it was originally designed for rather than after the format. It is the same file.

    Excel files are fine too, but they occasionally arrive with header rows, logos or summary blocks above the actual transaction table. That is not a problem for import, just something to be aware of if you open one and wonder why row one is blank.

    Once you have the file

    Drop it into PennySlice. There is no template to choose and no column-mapping step — the AI reads the file, works out which column is the date, which is the description and which is the amount, and handles the rest. CSV, Excel, OFX and PDF all go through the same path, as do forwarded emails and a photo of a paper receipt.

    If you exported six files from six accounts, import all six. PennySlice treats them as one picture rather than six silos, which matters if your groceries land on a credit card and your rent leaves a chequing account.

    What happens next is where the file stops being a spreadsheet. Categorization runs at the line-item level, so a single warehouse-store trip can split across groceries, clothing and household rather than being flattened into one category that is wrong for most of the total. Penny Spotter runs seven background detectors over the imported history — budget pace, category anomalies, recurring cost creep, predicted expenses, savings opportunities, income changes and merchant concentration — and surfaces what it finds without being asked.

    Then you can just ask. Plain English, across transactions, accounts, categories, budgets, imports, receipts, predictions and what-if scenarios. “What did I spend at restaurants in Q1?” returns a figure from your own data, not a general observation about restaurant spending.

    Importing a file requires no standing connection to your bank. If you would rather not repeat the export every month, linking is available on paid tiers in Canada and the US through Plaid — you enter your login at your own bank, and PennySlice receives a read-only token you can revoke at any time from either side. You can mix both: link one account, import the rest.

    The Track tier is free forever and handles imports. Paid plans include a 30-day trial with no card required. Either way, start with one file — export a single account for the last three months and ask it one question. That is a two-minute test of whether the data tells you anything you did not already know.

    PennySlice provides spending information, not financial advice.

  • Introducing PennySlice AI

    Introducing PennySlice AI

    You know the feeling. You open your banking app, see a number that doesn’t look right, and start scrolling. Two hundred transactions later you have a vague sense that it was probably the restaurants, and no real answer.

    PennySlice started with a simple question: why can’t you just ask?

    Just ask

    The main way you use PennySlice is by typing a question in plain English and getting an answer grounded in your own numbers.

    • “How much did I spend on dining last month?”
    • “What’s gone up compared to spring?”
    • “Split that Costco trip — half groceries, half household.”
    • “Can I afford a new laptop next month?”

    This isn’t a chatbot bolted onto a dashboard. Conversation is how you do the work: transactions, accounts, categories, budgets, imports, receipts and forecasts each have their own engine behind them, so asking to change something changes it.

    The tone we aimed for is a sharp accountant who respects your time. Real numbers, no padding, and a straight “there isn’t enough data to answer that” when that’s the truth — which we’d rather it said than guess.

    Penny watches, so you don’t have to

    Asking questions only helps if you think to ask. Most overspending isn’t dramatic — it’s a subscription that crept up, a category quietly running 40% hot three weeks into the month, a bill that’s about to land bigger than last time.

    Penny Spotter runs in the background across seven checks: budget pace, unusual transactions, cost creep, predicted expenses, saving opportunities, income changes and spending concentration. When something’s worth your attention, it says so.

    Pulse Check answers the other half — the what-ifs. “What happens to my month if I take this trip?” It works from your actual history rather than a blank calculator.

    Your data, your choice

    Most expense apps make you pick between convenience and control. We didn’t want to force that.

    Link your bank and transactions arrive on their own. Linking uses OAuth through Plaid, so you enter your login at your bank, not with us. We never store your bank password, and you can revoke access at any time — from us or from your bank.

    Or import your own exports and keep no standing connection at all. CSV, Excel, OFX, PDF statements, forwarded email receipts, or a photo of a paper one. The AI reads the file, categorises the transactions, and splits purchases that belong in more than one category.

    You can mix the two, and change your mind later.

    Either way: we never sell your data, we don’t show ads, and we have no advertisers to answer to. Your personal information — your name, your email, your account numbers — is never sent to the AI. It works on merchants, amounts and dates.

    What PennySlice isn’t

    It isn’t a financial advisor, and it won’t tell you what to do with your money. It surfaces what’s happening in your spending, answers what you ask, and flags what looks worth a second look. The decisions stay yours.

    It also won’t pretend to certainty it doesn’t have. If a month’s data is thin, it will say so rather than produce a confident-looking number built on very little.

    Where we are

    PennySlice is in early access. The core is in daily use — importing, categorising, conversation, budgets, Penny Spotter — and we’re adding to it steadily. Early users shape what comes next more than any roadmap does, so if something is wrong or missing, we want to hear it.

    Every correction you make teaches the categoriser — not only for you. The more people use it, the better it gets at reading the merchant names banks give us.

    You can see the plans on the pricing page, or read how the import and linking options compare on how it works.

    Talk to your expenses. It turns out to be a much better way of finding out where the money went.