Blog

Why doesn't my donation platform match my general ledger?

The short answer

Because the money that reaches your bank is net and your ledger is supposed to be gross. Platform fees, chargebacks and processor reversals come out before the deposit settles, so the bank can tie to the penny while contribution revenue is understated. At one nonprofit, cash reconciled exactly for twenty one straight days and the general ledger was still under-booked by $62,057 for that same month.

Cash tied to the penny for twenty one straight days. The ledger was still off by $62,057.

By Stephen Ninesling, FynScale

Short answers

My bank reconciliation balances. Doesn't that mean the books are right? No. It means cash moved as expected. Completeness of revenue, capture of fees, and correct fund classification are three separate questions with three separate proofs.

Where does the difference actually come from? Fees netted before settlement, chargebacks, processor reversals, and batches that failed to post individually while the daily total still deposited correctly.

How big does this get? At roughly $850,000 a month in donations, the ledger was off by $62,057 in a single month. The gap compounds quietly because each month passes its own reconciliation.

Who usually finds it? Nobody, until a fund balance stops making sense, a board member asks a question the report cannot answer, or the annual audit takes three weeks longer than it should.


Why is the deposit the wrong number to start from?

Because a deposit is a residual, not a measurement.

Your donation platform is doing several jobs at once. It is collecting contributions, charging you for the privilege, absorbing failed transactions, and settling the difference into your operating account. By the time money hits the bank, several things have already been decided on your behalf and none of them are visible on the bank line.

Here is an actual month at a nonprofit processing roughly $850,000 in donations. Every daily deposit tied. Twenty one of twenty one days, no variance, no unexplained items.

LineAmount
Gross donations received$849,834.37
Platform and processing fees($1,401.13)
Chargeback($8,849.70)
Processor reversal($700.00)
Deposited to operating account$838,883.54

That reconciliation was correct. The bookkeeping team was competent and doing exactly what they were asked to do. And the general ledger for that month was under-booked by $62,057.35.

Both facts were true at the same time, which is the part that catches people.

What is actually getting netted out before the money arrives?

Four categories, and each one behaves differently in the ledger.

Platform and processing fees. Deducted from gross donations before settlement. If you book the deposit as contribution revenue, revenue is understated by exactly the fee amount and your cost of processing donations is invisible. Most organizations materially understate what their donation platform costs them, because the number never appears as an expense anywhere.

Chargebacks. A donor disputes a contribution and the money comes back out. This is a real reduction in revenue in a specific period, against a specific fund. Booked as a net against the deposit, it disappears into a smaller number and the affected fund never gets adjusted.

Processor reversals. Failed transactions, duplicate charges backed out, corrections. Small individually, and they almost never get traced to the original contribution or the original fund.

Timing. Donations made on the last day of the month settle in the next month. The deposit is correct in both months and revenue is in the wrong one.

Why did a clean bank reconciliation miss all of it?

Because a bank reconciliation answers one question: did the cash the bank says arrived match the cash the books say arrived.

That is a necessary control. It is also the only question it answers. It does not ask whether every donation made was recorded, whether fees were captured as expense, or whether dollars landed in the fund the donor designated.

When one control is asked to stand in for four, the gaps do not announce themselves. They accumulate as a number nobody can explain, and the explanation is usually requested in front of a board.

How do you prove revenue is actually complete?

You reconcile at the batch level against the platform's own contribution report, not against the bank.

In the same month above, the donation platform recorded 3,786 individual contributions totaling $704,972.35 across 58 settlement batches. Of those 58 batches, 36 matched the ledger cleanly. Twenty two did not.

The daily deposits still tied, because a batch that posted to the wrong fund, posted twice, or did not post at all can still be part of a daily total that reconciles in aggregate. Aggregate accuracy and line level accuracy are different properties.

This is the check most organizations have never run, and it is the one that surfaces the completeness problem. Three things to compare:

  1. Total contributions per the platform report against total contribution revenue in the ledger, by fund, for the period
  2. Batch count per the platform against batch count posted
  3. Any batch where the platform total and the posted total differ by any amount, including amounts small enough to look like rounding

What does the correct treatment look like?

The entry recognizes gross contributions, then each deduction on its own line, and ties to the deposit exactly.

AccountDebitCredit
Cash, operating$838,883.54
Merchant and processing fees$1,401.13
Contribution revenue, chargeback$8,849.70
Contribution revenue, reversal$700.00
Contribution revenue, by fund$849,834.37

Same cash, same tie to the bank. But now contribution revenue is stated at what was actually given, the cost of processing donations is visible and trackable, and the chargeback sits against the period and fund it belongs to.

The reason this matters beyond accuracy: a leadership team that cannot see processing costs cannot evaluate its donation platform, and a board reviewing contribution revenue is reviewing a number that has been silently reduced by fees it never sees.

What about restricted funds?

This is where the same problem becomes a governance problem rather than a bookkeeping one.

Restricted and designated contributions carry a donor promise. When a contribution is recorded but classified to the wrong fund, or when a chargeback reduces total revenue without reducing the specific fund it came from, the fund balances on your statements stop reflecting the actual obligation.

Nothing about that surfaces in a bank reconciliation. It surfaces when someone asks how much is left in a restricted fund and two systems give two answers.

The check is straightforward: total contributions by fund per the platform, compared to fund level contribution revenue in the ledger, for the same period. If those two numbers agree by accident rather than by proof, they will eventually disagree.

How do you know if you have this problem?

The signals are softer than a hard error, which is why this survives so long.

  • A fund balance nobody can fully explain, so the explanation becomes institutional rather than documented
  • Year end taking materially longer than it should, because the reconciling happens all at once instead of monthly
  • Board questions that require someone to go look, rather than someone to point at a report
  • Merchant fees that do not appear anywhere in the expense budget
  • A platform contribution report and a financial statement that have never been placed side by side

None of those is proof. All of them are worth an afternoon.

Does this only affect donation revenue?

No. Any organization whose revenue arrives through a platform that settles in batches has the same structure: gross activity on one side, a net deposit on the other, and a set of deductions in between that only exist in the platform's own reporting.

Nonprofits running events, memberships, program fees or recurring giving through third party processors deal with it. So do commercial businesses reconciling marketplace settlements, at higher volume and with more fee categories.

What makes it more consequential for nonprofits is fund accounting. In a commercial business, a misclassified dollar affects a margin. In a nonprofit, it can affect a promise made to a donor.

What we found beyond the contribution reconciliation

In the same engagement, working through fixed assets, we identified $185,514 in depreciation that had never been booked at all.

That is a separate issue from the contribution reconciliation, and it is worth mentioning for one reason: when a single control is trusted to cover a whole close, the things outside that control tend to go unexamined for a long time. Depreciation does not appear on a bank statement either.

The practical version

Four proofs instead of one, in order, every month.

  1. Cash. Reconcile every operating bank account independently. This is the control you already have.
  2. Settlement. Reconcile what each deposit was composed of, gross contributions less fees, chargebacks and reversals. This is the control that makes revenue and cost visible.
  3. Completeness. Reconcile batch by batch against the platform's contribution report. This is the control that proves nothing was missed.
  4. Classification. Review transaction level activity to confirm dollars sat in the right fund and the right period. This is the control that protects donor intent.

None of it is exotic. It is a few hours a month once the structure exists, and it is considerably cheaper than reconstructing a year of contributions during an audit.


Working through this at your organization? FynScale runs a Free Business Analysis for organizations in the $1M to $50M range: a short call, a mutual NDA, you send two reports, and we walk the findings together. You keep the findings in writing whether or not you ever work with us.

Figures in this article are actual, drawn from a single client engagement, and used with the client not named at their discretion. FynScale AI Consulting LLC provides financial management support services and is not a public accounting firm.

AI speed. Human judgment.
For accounting and advisory firms FynScale OS
© 2026 FynScale, Fort Lauderdale, FL