The most common error in AI spending summaries
Ask an agent "how much did I spend last month" and there's a decent chance the number comes back way too high. Not a little high. Sometimes close to double.
The cause is almost always the same. You put $3,000 on your credit card during the month. Then you paid the card off with $3,000 from checking. The agent saw both, added them together, and reported $6,000 of spending. Every dollar got counted twice: once when you swiped, once when you paid the bill.
This isn't the model being careless. It's a data problem that trips up human bookkeepers too, and it has a clean fix. This guide covers why it happens, the exact prompt language that prevents it, and how to check your numbers with get_monthly_cashflow.
Why the double-count happens
Bank data doesn't know about the relationship between your accounts. When BankBridge pulls your transactions, a $46 restaurant charge on your card is one transaction. The $3,000 payment from checking that covers it (and everything else that cycle) is another transaction. Both are real. Both look like money going out, from the perspective of the account it left.
Categories don't save you either. Card payments from checking usually land in a loan-payments or credit-card-payment category, but an agent summing "all outflows from all accounts" will sweep those right in. And the matching credit on the card side (the "PAYMENT - THANK YOU" line) doesn't always get netted out, depending on how the agent frames its query.
So a naive summary counts the swipes on the card, then counts the payment from checking, and sometimes forgets to subtract the payment credit on the card too. The same spending shows up twice, occasionally more.
How to tell your numbers are doubled
The clearest sign is a total that's roughly twice what feels right. If you know you live on about $5,000 a month and the agent reports $9,400, don't assume you had a wild month. Ask a follow-up first.
Break that total down by account. How much came from each card, and how much from checking?
If checking shows a big outflow in a loan-payments or credit-card-payment category that roughly matches the card's total purchases, you've found it. Another giveaway is a single large, oddly specific checking transaction near your statement date (say, $3,187.42) that mirrors the card's statement balance exactly.
One more tell: month-over-month spending that swings wildly even though your life didn't change. Payment timing shifts by a few days, so the doubled amount lands in different months and makes the trend look chaotic.
The prompt that fixes it
The fix is one sentence of instruction. Add it to any spending question:
Summarize my spending for June. Count purchases on the credit card side, and exclude credit card bill payments from checking. Also exclude transfers between my own accounts.
That's the whole trick. Spending gets counted where it actually happened (the swipe), and the bill payment gets treated as what it is: money moving to cover spending that was already counted.
If you want to be thorough, add one clause for the card side too:
On the credit card, only sum purchases, fees, and interest. Ignore payment credits.
Interest is worth keeping in. If you carry a balance, the finance charge is real new cost that never appears as a swipe, so it belongs in the total.
Verify it with get_monthly_cashflow
BankBridge's get_monthly_cashflow tool gives your agent a month-by-month view of money in and money out per account. It's the fastest way to sanity-check a suspicious summary.
Run get_monthly_cashflow for the last three months. Show checking and the credit card separately, then explain how the card payments appear on each side.
You're looking for a simple relationship. The outflow from checking labeled as a card payment should roughly equal the previous cycle's card purchases. If the agent's "total spending" is close to the sum of both, it double-counted. If it's close to the card purchases alone, plus whatever you spent directly from checking (rent, autopay utilities), it got it right.
Live data helps here. BankBridge fetches from your bank in real time on every question and caches nothing, so the numbers you're reconciling are current rather than a snapshot from whenever a sync last ran.
Edge cases worth knowing
Partial payments and carried balances. If you pay $1,000 against $3,000 of purchases, the checking payment no longer mirrors the month's spending. The rule still holds (count the swipes, skip the payment), but spending and cashflow diverge. Spending is what you swiped. Cashflow is what actually left checking. Both are useful; they're just different questions.
Payments that cross month boundaries. A statement that closes on the 28th and gets paid on the 15th of the next month means June's payment covers May's spending. This is another reason payment amounts make terrible spending proxies.
Multiple cards. Same rule, applied per card. Every card's purchases count, every card's bill payment from checking doesn't.
Real spending from checking. Not every checking outflow is a transfer. Rent, checks, and payments to actual people are real spend. The instruction excludes card bill payments and internal transfers specifically, not everything that leaves checking.
Make the rule permanent
Typing the exclusion clause into every prompt gets old fast. Most agent hosts give you somewhere to put standing instructions: a CLAUDE.md file for Claude Code, custom instructions in ChatGPT, rules files in Cursor and Windsurf. Add something like this once:
When summarizing my spending: count credit card purchases on the card side, exclude credit card bill payments from checking, exclude transfers between my own accounts, and include card interest and fees.
After that, every spending question inherits the rule automatically. It's the same move behind any good prompt pattern for money questions. Encode what you learned once, then stop re-teaching it.
If you haven't connected a bank yet, setup takes a few minutes and costs $5 a month per connected bank, cancel anytime. Connect, ask your first spending question with the rule above, and the number that comes back will be one you can trust.