Your Books Say You Made Twice As Much. How Income Gets Counted Twice
Endrit Hajno · September 6, 2026 · 6 min read
TL;DR: When you invoice a client and record their payment, and then the bank feed brings in the same deposit and it gets added as new income, that one payment is now two entries of revenue. Find it by comparing revenue to customer deposits and by sorting for same-amount, same-week pairs. Fix it by matching the deposit to the existing payment instead of adding a new one, and by clearing anything sitting in undeposited funds. Prosper flags the possible duplicate and asks. TidyMonth handles it monthly with a bookkeeper reviewing the close.
You invoiced a client for $4,000. They paid. You marked the invoice paid. A few days later the $4,000 showed up in the bank feed and you categorized it as income, because it obviously was.
Now your books show $8,000 of revenue from a $4,000 job.
Do that across a year of invoices and your profit and loss can show double what you actually made. It's one of the most common problems a bookkeeper finds when inheriting a set of DIY books, and it's mostly invisible until someone compares revenue to what actually hit the bank.
Why it happens
Most bookkeeping software has two paths for money coming in.
Path one: the invoice. You create an invoice, the client pays, you record the payment against the invoice. Revenue is recorded when the invoice is created or when it's paid, depending on your accounting basis. Either way, the payment exists in the books now.
Path two: the bank feed. Your bank account is connected, and every deposit arrives as a line waiting for a category.
The trap is at the moment the deposit arrives. Your software offers two choices: add this as a new transaction, or match it to something already in the books. If you add it as income, you have the invoice payment and the deposit, both counted. If you match it, the deposit links to the payment you already recorded and nothing is doubled.
Intuit's own documentation for QuickBooks Online describes the match step for exactly this reason: match downloaded bank activity to existing records so it isn't recorded twice. The software isn't broken. The add button is just easier to click.
A related trap is the undeposited funds account, which is a holding account some software uses for payments that have been received but not yet deposited. Payments recorded there are supposed to be moved to the bank when the deposit arrives. If the bank deposit gets added as new income instead, the payment sits in undeposited funds forever and revenue is still doubled.
How to find doubled income
The revenue check. Total your customer deposits in the bank for the year. Compare to revenue on the profit and loss. If revenue is close to double, you have a systematic problem. If it's higher by a handful of specific amounts, you have a handful of specific duplicates.
The pair scan. Sort your income transactions by amount. Look for the same amount appearing twice within a few days of each other, once as an invoice payment and once as a bank deposit. Same client, same amount, same week is almost always the same money.
The undeposited funds balance. If your software has an undeposited funds account and it has a balance that never goes down, those are payments that were never matched to their deposits.
The CSV overlap. If you ever imported a CSV, check whether its date range overlapped with the bank feed. One month's transaction count in your books versus the count on the statement tells you immediately.
How to fix it in any bookkeeping software
Step 1: Pick one duplicate and trace it. Find the invoice, the payment recorded against it, and the bank deposit. Confirm they're the same money: same client, same amount, deposit date shortly after payment date.
Step 2: Remove the extra entry, don't add another. Usually the fix is to delete the bank-feed income entry and match the deposit to the existing payment instead. If your software let you match, use the match. If it already added the line, undo the add and match it properly.
Step 3: Clear undeposited funds. For each payment stuck there, record the deposit that moved it to the bank, then match that deposit to the bank feed line.
Step 4: Work through the list. Repeat for each pair you found. Re-run the revenue check when you're done. Revenue should now be close to customer deposits, with the difference explained by timing at year end.
Step 5: Change the habit. From now on, when a deposit arrives from a client, look for the match before you add. If you invoice, the payment is almost always already there.
Illustrative example. An agency showed $210,000 of revenue for the year. Customer deposits totaled $118,000. Every invoice had been marked paid when the client paid, and every deposit had been added as income when it arrived. Removing the duplicated deposit entries brought revenue to $118,000. The bank balance was correct the whole time, because the duplicates were in the revenue account, not in cash.
How this works in Prosper
Prosper is the platform TidyMonth uses for the monthly work, and you can use it yourself with your CPA.
When a deposit comes in through your connected bank account and there's already a payment in your books for the same amount from the same client, Prosper doesn't add it. It shows the deposit and the existing payment side by side and asks: is this the same activity?
That's a flag, not a verdict. Prosper says "possible duplicate" and waits, because suspected duplication needs confirmation from someone who knows whether that client happened to pay two identical invoices in the same week. You confirm the match, or you tell Prosper they're separate, and it learns your pattern for next time.
The same logic covers a CSV import that overlaps a bank feed. Prosper groups the overlapping activity and asks before anything is counted twice. Every decision shows the evidence first, and every change is reversible.
When you prepare the CPA packet, the invoice, the payment, and the deposit are linked as one chain your accountant can follow, instead of three loose entries that may or may not be the same money.
If you'd rather hand it off: TidyMonth by Prosper
If you'd rather someone else matched deposits to invoices every month, that's part of what TidyMonth by Prosper does.
Start with a free Books Check. No card, and nothing in your accounts is changed. The results show which months reconcile, where possible duplicates need review, and what couldn't be verified from the records available. Pattern-based findings like a suspected duplicate are marked as needing review, not reported as confirmed errors.
If your business fits, monthly bookkeeping is $199 per month, with catch-up work scoped and priced before checkout. TidyMonth does the agreed monthly work in Prosper. A bookkeeper reviews the close. You answer the questions only you can, like whether two identical deposits were one job or two.
If the first close isn't worth it, your first $199 comes back in full. Cancel in one click. Export your books whenever you like.
Find out where your books actually stand.
The Books Check is free. We change nothing in your accounts while we look. You see what was checked, what needs review, and what we couldn't verify before you pay anything.
Check my books freeNo card · Catch-up scoped and priced before checkout · $199/month after
What your CPA still decides
Fixing doubled income gets your revenue back to what customers actually paid. It doesn't decide when revenue is recognized for your accounting basis, or how to correct a prior year that was filed with the doubled number. Those are your CPA's calls. Prosper and TidyMonth link the invoice, the payment, and the deposit so your accountant can see what happened and decide what to do about it.
Common questions
Why does my revenue show double what I actually made?
The usual cause is that a customer payment was recorded twice: once when you marked the invoice paid, and again when the bank feed brought in the deposit and it was added as new income instead of matched to the payment. Each dollar the customer paid you shows up as two dollars of revenue.
How do I match a bank deposit to an invoice payment?
When the deposit appears in your bank feed, look for a match option instead of an add option. Your software should find the existing payment with the same amount and let you link the deposit to it. Intuit's help documentation describes this matching step for QuickBooks Online. Adding creates a second record. Matching links the one you already have.
Can a CSV import cause the same problem?
Yes. Importing a CSV for a period the bank feed already covered puts every transaction in twice, income and expenses alike. Check the transaction count for one month against the bank statement before and after any import.
Does Prosper automatically remove duplicates?
No. Prosper flags a possible duplicate when a deposit looks like an existing payment and asks you to confirm whether it's the same activity. Suspected duplication needs confirmation from someone who knows the business. Prosper shows the evidence and waits for your answer.