Give an AI your bank feed and it counts the same money three times
People are starting to connect their AI assistants to their bank accounts and ask plain questions. How much did we make last month? What's our runway? Can I afford this hire? The data is all there, and the answers come back sounding sure of themselves. Some of them are wrong, and nothing in the answer tells you so.
I build Aggregate, which connects any AI assistant or agent to a business's banks, cards, payment processors, books and payroll. Most of the work turned out to be counting: making sure each dollar shows up once before anything reads it. Here are two examples from our demo companies. The companies are made up, but the way the money moves is how real bank and Stripe data looks.
One sale, three different answers
Northwind Labs is a small software company that bills its customers through Stripe. One day it made a $1,499.00 sale. Stripe kept a $43.77 fee, and the same day Northwind refunded a different customer $99.00. The next day Stripe paid out what was left, $1,356.23, and it landed in the bank as a single deposit.
Give an AI both the Stripe data and the bank feed and ask what came in. If it adds up everything positive, it gets $1,499.00 + $1,356.23 = $2,855.23. That's the same money counted twice: once when the customer paid, and again when Stripe moved it to the bank.
Give it only the bank feed and it says $1,356.23. That's closer, but the fee and the refund have vanished into one net number, so you can't see what you sold or what card payments cost you.
The right answer is three lines: $1,499.00 in sales, $99.00 refunded and $43.77 in fees. The deposit itself isn't income. It's money moving from one of your accounts (your Stripe balance) to another (your bank).
Your own money looks like income
Harbor Coffee is a café with a card reader, an online shop and a cash drawer. On one day in March (in the demo as it stands in November 2026; its dates roll forward each month) its checking account took in $19,710.45:
- $15,000.00 from the café's own savings account
- $2,304.77, a Stripe payout for the previous day's card sales
- $1,275.78, the weekly Shopify payout
- $1,129.90 in cash, already counted at the register
None of it was new revenue that day. The card and online sales were counted when customers paid, and the cash was counted at the drawer. The $15,000 was the café moving its own money, and nothing ties the two bank rows together: one says "ONLINE TRANSFER TO CHK" and the other "ONLINE TRANSFER FROM SAV". An AI reading the checking account sees a $19,710.45 day, and if you ask it for March revenue it can easily add the $15,000.
What we do about it
Before an assistant sees anything, Aggregate tries to match every deposit to where it came from. When the bank row carries Stripe's payout id, that settles it. When it doesn't (Harbor's bank doesn't), a payout matches a deposit only when the amounts are equal to the cent and the deposit lands within a week of the payout. Without a shared reference, a transfer needs two opposite rows of the same amount in different accounts within four days. A transfer between currencies is only suggested, for a person to confirm. A clear match is confirmed automatically. Anything less certain waits for a person to confirm. If an account has never reported, or part of the period hasn't synced, the figure comes back as unknown, with the reason, instead of $0.
Some cases still don't match. Several payouts bundled into one deposit don't, and neither do payouts converted from another currency; those wait for a person. Everything above is synthetic demo data, and nobody outside Aggregate has audited our numbers.
You can try it on a made-up company, no signup: app.aggregate.finance/try