Blog

Why does my Undeposited Funds balance keep growing?

The short answer

It means payments are being recorded twice, once when received and again when the bank deposit is added instead of matched. Revenue is overstated and you are likely paying tax on money you never received.

By Stephen Ninesling, FynScale

Why does my Undeposited Funds balance keep growing?

An Undeposited Funds balance that grows every month means payments are being recorded twice: once when the customer pays, and again when the deposit arrives from the bank feed. The account is a temporary holding place that should empty every time you make a deposit. If it only ever climbs, revenue is overstated, the balance sheet carries an asset that does not exist, and you are almost certainly paying tax on money you never earned.

By Stephen Ninesling, FynScale


Short answers

What is Undeposited Funds for? It holds customer payments between the moment they are received and the moment they hit the bank as part of a deposit. It is a waiting room, not a destination.

What should the balance be? Near zero after every deposit clears. A few days of recent payments is normal. Anything older than your deposit cycle is a problem.

What causes it to grow? Almost always clicking Add on a bank feed deposit instead of Match. That records the money a second time and leaves the original payment stranded.

Can I just write it off with a journal entry? No. That hides the duplicate revenue instead of removing it, and leaves the underlying process broken so it starts growing again next month.


What is this account actually supposed to do?

Undeposited Funds exists because of how money used to move. A customer handed you a check on Tuesday. You did not run to the bank with each check individually. You put them in a drawer, and on Friday you walked in with eleven checks and made one deposit.

The bank statement shows one line for that Friday deposit. Your books need to show eleven customer payments. Undeposited Funds is what connects those two facts.

The intended lifecycle has three steps:

One. You record a payment. The system debits Undeposited Funds and credits Accounts Receivable. The customer no longer owes you, but the money is not in the bank yet.

Two. You group payments into a deposit. This clears Undeposited Funds and debits the bank account for the combined total.

Three. The bank feed shows the deposit. You match it to the deposit you already recorded. Nothing new is created.

Done correctly, the balance in Undeposited Funds at any moment equals the payments you have collected but not yet deposited. On a Friday afternoon, that might be a few thousand dollars. It should never be a number you have to think about.

What does a broken one look like?

Here is a real shape, numbers adjusted. A services business doing roughly $4M a year came in with $87,400 sitting in Undeposited Funds.

The register held 312 uncleared items. The oldest was fourteen months old. The newest was from that week. It had been growing at roughly $6,000 a month, more or less continuously, since a bookkeeping handoff the prior spring.

The founder had never looked at it. There was no reason to. The bank reconciled every month without exception, because the bank feed was being used to record the deposits directly. Accounts Receivable looked clean, because payments were being applied against invoices. Every report that anyone actually read looked fine.

The only place the problem was visible was a line on the balance sheet that nobody had a reason to open.

How does the double count actually happen?

Step three is where it breaks, and it breaks because Add and Match sit next to each other and look equally reasonable.

When the deposit appears in the bank feed, the correct action is Match, which links the bank line to the deposit you already recorded. The incorrect action is Add, which creates a brand new transaction.

Follow the entries. The customer pays $2,400 against an open invoice. Undeposited Funds is debited $2,400, Accounts Receivable is credited $2,400. Correct so far.

Then the deposit arrives and someone clicks Add, categorizing it to Sales. The bank is debited $2,400 and income is credited $2,400.

Now count the revenue. It was recognized once when the invoice was issued. It was recognized again when the deposit was added. The same $2,400 appears twice in the income statement. And the original payment is still sitting in Undeposited Funds, because nothing ever cleared it.

That is the entire mechanism. One click, repeated a few hundred times.

If the business uses sales receipts rather than invoices, the arithmetic is the same. The sales receipt books income and parks the cash in Undeposited Funds. Adding the deposit books income a second time.

Are there other causes worth ruling out?

Four others show up regularly, and they matter because the fix differs.

Merchant processors that deposit net. Stripe, Square, Shopify Payments and PayPal deposit the batch total minus their fee. You collected $2,400 but $2,330 arrives. The payment in Undeposited Funds does not equal any number on the bank statement, so matching fails and people give up and Add. The fix is to record the fee as an expense inside the deposit so the deposit total equals the actual bank amount.

Deposits recorded straight to an income account. Same double count, different route. The payment sits in Undeposited Funds forever while a separate income entry does the work.

Payments deposited individually instead of in the batch the bank actually received. Common with wire and ACH. Not a double count, but it produces a reconciliation that never quite lands and a residue that builds slowly.

Journal entries posted directly into the account. Usually someone's earlier attempt to clean this up. These are the hardest to unwind because they have no source document behind them.

What does this cost if it sits there?

Three distinct costs, and only one of them is cosmetic.

Tax. Duplicated revenue is duplicated income. If $87,400 of phantom revenue flows through a return and the effective rate is 30%, that is roughly $26,000 of tax paid on money the business never received. This is not a rounding issue. It is a check that was written to a government for nothing.

Margin analysis. Revenue is overstated but cost of goods is not, because the duplicate has no cost attached. Gross margin looks better than it is, on the exact line most operators use to judge pricing. A business showing 62% might genuinely be at 58%. That difference changes what you are willing to pay to acquire a customer.

Diligence. Undeposited Funds is one of the first things a buyer, lender or new CFO opens, precisely because it is a fast read on whether the books are maintained or merely reconciled. A large aged balance signals that nobody has been minding the process, and it invites scrutiny of everything else.

How do you diagnose it in about thirty minutes?

Run this in order and do not skip to the fix.

Open the account register and sort by date, oldest first. The date of the oldest uncleared item tells you when the process broke. That date usually maps to something real: a staff change, a software migration, a new payment processor, a period when the business was busy and someone started clicking through the feed quickly.

Take one uncleared payment and trace it end to end. Find the customer, find the invoice, then search the bank register for that amount around that date. If you find a separate deposit transaction categorized to income, you have confirmed the double count with certainty rather than assuming it.

Count the items and total them by month. A steady monthly accumulation means a process problem that is still running. A single large lump followed by nothing means a one-time event, which is a much smaller cleanup.

Check whether the current month is still doing it. This matters more than the history. If this week's deposits are still being added, cleaning the past accomplishes nothing.

How do you actually fix it?

Fix the present before touching the past. It is tempting to start with the oldest entry, but if the process is still broken you are bailing a boat with a hole in it.

Stop the bleeding. Establish the rule that bank feed deposits are matched, never added. If matching fails, the reason is almost always a fee or a grouping mismatch, and that is a signal to fix the deposit rather than to override it.

Correct the open period. For the current month, delete the added deposits and match them to the recorded payments properly. Small volume, immediate effect, and it proves the process works before you scale it backward.

Work the history in reverse. Move backward month by month, matching duplicates and clearing the originals. Where the pairing is genuinely unrecoverable, and in a fourteen month backlog some will be, document what you did and why before writing anything off.

Involve whoever files the return. Prior period revenue is changing. If the overstated year is already filed, that is a conversation with your CPA about whether an amendment is worth the cost, not something to decide silently in the ledger.

Then make it a close step. Undeposited Funds gets reviewed every month as a named item, with a rule: anything older than one deposit cycle gets explained before the month is called closed. This takes about two minutes when the process is healthy, and it is the only thing that keeps it healthy.

Why does nobody catch this?

Because every warning system a small business has is pointed somewhere else.

The bank reconciles, so the bookkeeper reports that the books are clean, and by the standard being applied they are. Accounts Receivable looks right, so the founder trusts the collections picture. Revenue looks strong, and nobody investigates a number that is higher than expected.

The only person who would catch it is someone whose job is to read the balance sheet line by line and ask what each account is doing there. In most businesses under $50M, that person does not exist. The bookkeeper is executing transactions and the founder is reading the summary, and the space between those two roles is exactly where this lives.

It is not a software failure. The software offered Match and someone chose Add, several hundred times, and no process ever asked why the holding account never emptied.


FynScale is a boutique AI consulting firm for accounting and finance. We work with growing ecommerce, CPG, SaaS, and professional services businesses that have outgrown their bookkeeper but are not ready for a full finance team. AI speed. Human judgment.

fynscale.com