Back to Blog
Reconciliation

Transaction Reconciliation Errors: Why They Happen and How to Stop Them

Reconciliation exception list on a finance screen

When reconciliation exceptions pile up at month-end, most finance teams treat them as a uniform problem: unmatched transactions that need to be resolved before the books can close. In practice, they are three different types of problems that require three different responses. Mixing them together is one reason exception queues grow faster than teams can clear them.

After working through reconciliation processes at companies handling anywhere from a few hundred to several thousand transactions per month, we have found the same three categories showing up every time. Knowing which one is in front of you changes how you allocate time and what you do to prevent it from recurring.

Category One: Timing Differences

A timing difference occurs when both sides of a transaction exist but have not matched yet because they landed in different periods. The most common form is a check or ACH payment that was issued before month-end but did not clear the bank until after the statement cut. The ledger shows the disbursement in period one; the bank shows it in period two.

These are technically not errors. The transaction is real, the amount is correct, and the discrepancy will resolve itself when the next bank statement arrives. The problem is that they show up in the exception queue looking identical to real problems, and someone has to identify each one before deciding to leave it open.

For most companies, timing differences account for 40 to 60 percent of month-end exceptions by count. They are the noise in the system. If your team is spending significant time on them, the fix is usually a rule: flag items where the transaction date is within seven days of the statement cut and the amount matches an existing ledger entry, and move them to a separate "timing" bucket rather than the main exception queue. They still get reviewed, but they do not block the close.

Category Two: Data Quality Exceptions

A data quality exception is a real mismatch caused by how the transaction was recorded on one or both sides. Common examples include a bank fee that appears as a line item on the statement but was never entered in the ledger, a payment that went through at a slightly different amount than the invoice because of a rounding rule in the payment processor, or a transaction that was recorded to the wrong account in the ERP and is therefore invisible to the reconciliation process even though the cash moved correctly.

These require a human to look at them and make a decision. The decision might be an adjusting journal entry, a correction to the original posting, or confirmation that the difference is below materiality and can be written off. What it cannot be is ignored, because data quality exceptions do affect the ledger balance.

Data quality exceptions are typically 20 to 35 percent of the queue by count but a disproportionate share of the investigation time. A single entry posted to the wrong account can generate multiple downstream exceptions as transactions try to match against something that is not where they expect it to be. These are also the exceptions most likely to reveal a process issue upstream: a payment integration that rounds differently than the ERP, a bank that splits foreign exchange fees separately from the transaction they relate to, or a payroll provider that submits ACH batches as a single line item while the ledger shows individual employee records.

The fix for data quality exceptions is not faster review. It is understanding the pattern well enough to address the source. If the same vendor generates a rounding exception every month, the matching rule for that vendor should be adjusted to tolerate the difference within a defined threshold.

Category Three: Genuine Discrepancies

A genuine discrepancy is a transaction that appears on one side but has no match on the other, and there is no obvious timing or data quality explanation. This includes transactions that cleared the bank but were never entered in the ledger, transactions that were entered in the ledger but never actually moved, and duplicate charges that appear in the bank statement without a corresponding second entry in the ERP.

These are the exceptions that represent actual risk: potential fraud, billing errors from vendors, duplicate payments, or missing cash. They are also, fortunately, the least common category by volume. In a well-run reconciliation process, genuine discrepancies should account for less than 5 percent of exceptions in a given period. When that number is higher, it usually means either the matching logic is too strict (generating false positives that look like genuine discrepancies but are actually timing issues) or the data quality is poor enough that real transactions are getting lost in the noise.

The handling here requires the most attention and the clearest escalation path. Someone needs to confirm the transaction did or did not occur, involve accounts payable or the relevant department head if it was a vendor payment, and determine whether a write-off, a reversal, or a correction is appropriate.

Why Mixing Categories Slows Everything Down

When all three types land in the same exception queue with no differentiation, the team either sorts through everything in order (slow) or picks the easy ones first (which means timing differences get resolved quickly while genuine discrepancies sit at the bottom of the queue). Neither approach is efficient, and neither ensures that the items with actual risk get the most attention.

We are not saying that categorization eliminates the work. It does not. A timing difference still needs a pair of eyes on it before it gets marked clean. A data quality exception still requires someone to post a correcting entry. A genuine discrepancy still needs investigation. What categorization does is let the team allocate attention appropriately: low judgment on timing differences (can be handled by a junior team member following a checklist), medium judgment on data quality exceptions (requires understanding the chart of accounts and the payment process), high judgment on genuine discrepancies (requires authorization to post adjusting entries and potentially involve external parties).

Building the Triage Logic

The practical starting point is defining your matching rules clearly enough that the system can sort exceptions before a human sees them. This means deciding in advance what constitutes a timing difference (transaction date within N days of statement cut, amount matches within X dollars or Y percent), what constitutes a known data quality pattern (vendor A always rounds to the nearest dollar, bank B reports foreign fees separately), and what falls outside those patterns and needs genuine investigation.

This is not a one-time setup. The patterns change as the business changes. A new payment processor may introduce new rounding rules. A new bank account may have a different statement format. The triage logic needs to be maintained by someone who understands both the accounting and the data pipeline, and it needs to be reviewed after any significant change to the finance stack.

The measure of success is not zero exceptions. Exceptions are a normal output of any reconciliation process. The measure is whether the exceptions that are still open on the last day of the month are ones that actually need to be resolved before the close, or whether the queue is full of noise that has not been filtered out yet. Getting that ratio right is what separates a team that closes in three days from one that is still reconciling on the 10th.

Try Gravitiy

Gravitiy is in early access with a small group of finance teams. If you are dealing with manual reconciliation or cash-flow blind spots, we want to talk.

Apply for Early Access