Your CRM, your bank and your ledger disagree. Which one is right?
Three systems, three versions of the same month, and no way to tell which is true. Why the disagreement is structural, what each system is actually authoritative for, and how to arbitrate.

Your CRM says you closed £340,000 this quarter. Your accounting system says revenue was £291,000. Your bank balance suggests something else entirely.
Nobody is lying. Nobody has made an error. The three systems are answering three different questions, and the business has been treating their answers as one number.
What each system is actually authoritative for
The disagreement stops being mysterious the moment you accept that no system is authoritative for everything.
The bank is authoritative for cash that exists. It knows what money is present, right now, and nothing else. It does not know what any of it is for, who it belongs to, or what you are owed.
The ledger is authoritative for what has been earned and what is owed. It knows revenue, receivables, payables and margin — but only for events someone has recorded, and only in the period they chose to record them in.
The CRM is authoritative for what has been committed but not yet billed. It knows the pipeline and the moment a customer said yes. It is the only system that knows about revenue that has not happened yet.
Each is correct within its boundary and unreliable outside it. The trouble starts when someone asks a question that crosses a boundary — how did we actually do this quarter — and gets three answers.
The three gaps, and what lives in each
Between those systems sit three handoffs. Every discrepancy you will ever chase lives in one of them.
Gap 1 · Won in the CRM, never invoiced
A deal is marked closed-won. Nobody raises the invoice.
This is far more common than most businesses believe, and it is invisible from both ends: the salesperson has moved on to the next deal and considers it done; finance cannot invoice something they were never told about. The deal sits in the CRM contributing to a revenue figure that will never be collected, because no customer has ever been asked to pay it.
The related, subtler version: the deal is invoiced at a different value than the CRM records. A discount agreed on the call, a scope reduction, a rounding to a round number. The CRM keeps the original figure forever.
Gap 2 · Invoiced, never paid
The ledger says revenue. The bank says nothing arrived.
Some of this is just terms — a thirty-day invoice raised on the 28th is not late, it is early. But this gap is also where genuine problems hide: the invoice that went to the wrong email address, the one sitting in a customer’s approval queue since June, the one disputed on a technicality nobody escalated.
The dangerous property of this gap is that it looks identical whether it is healthy or not. Both cases show as receivables. Only the age tells you which — and if nobody is chasing, an overdue invoice does not announce itself.
Gap 3 · Paid, never allocated
Money is in the bank. The ledger still shows the invoice as open.
A payment arrived with no reference, or a reference nobody recognised, or as one batch settling eleven invoices. It sits unallocated. Your receivables are overstated, your cash is understated relative to what the ledger expects, and somebody is about to chase a customer who has already paid.
This is the most corrosive of the three, because it damages the relationship with customers who did exactly what you asked. We covered the mirror image of it — being on the receiving end of that chase — in you paid, they say it never arrived.
How to arbitrate
The instinct is to compare totals. Do not compare totals: two numbers that differ tell you only that they differ.
Reconcile the transitions instead. Three tests, in this order:
- Every deal marked won in the period → does it have an invoice? List the exceptions. That is Gap 1, and it is usually the largest and the most surprising.
- Every invoice raised → does it have a payment, or a live receivable within terms? Anything outside terms with no chase activity is Gap 2.
- Every payment received → is it allocated to an invoice? Unallocated cash is Gap 3.
Each test takes an hour at most, and between them they account for the entire variance. When you can name the three components and they add up to the difference, you no longer have a mystery — you have a work list.
If they don’t add up, you have a fourth problem, and it is almost always duplicates or misdated entries inside the ledger itself.
Why the gaps exist at all
Not because anyone is careless. Because the link between systems is a person.
A salesperson tells finance about a deal. Someone types the invoice. Someone else looks at a bank statement and decides which invoice a deposit settles. Each of those steps is a human re-entering information that already exists in a system next door — and every re-entry is a chance for the two records to diverge.
The systems themselves are fine. QuickBooks is good at being a ledger. HubSpot is good at being a CRM. The bank is good at holding money. What nothing owns is the space between them, and that space is where the business actually operates.
This is also why the problem scales badly rather than gracefully. At twenty deals a quarter one person holds the whole picture in their head and catches the exceptions. At two hundred, nobody holds it, the exceptions stop being caught, and the first symptom is a revenue figure that three systems describe three ways with no way to arbitrate.
Adding a fourth system rarely helps. A dashboard that reads from all three will faithfully display the same disagreement in one place — which is genuinely useful for seeing the size of the problem, and does nothing about its cause.
The test worth running this month
Take last completed month. Answer three questions:
- How much was marked won and never invoiced?
- How much was invoiced and is outside terms with no chase logged?
- How much cash arrived and is not allocated to anything?
If you can’t answer these within a working day, that is the finding. Not the numbers — the fact that they are not readily knowable.
Most businesses that run this exercise for the first time find the first number is the biggest and the least expected. Work that has been done, agreed, and never billed is the purest form of lost margin there is: the cost was incurred, the customer was satisfied, and nobody asked for the money.
Where Fynex fits
Fynex operates in the space between the three systems rather than adding a fourth opinion to it. A closed deal becomes an invoice without someone remembering to raise it. An invoice that goes unpaid escalates without someone remembering to chase it. A payment that arrives carries the invoice it settles, so allocation is not a monthly guessing exercise performed against a bank statement.
The three gaps stop being places where work quietly falls through and become states you can see: what is committed but unbilled, what is billed but unpaid, what is paid but unallocated — each with a number attached, continuously, rather than assembled by hand at the end of a quarter.
The systems keep doing what they are good at. What changes is that the handoffs between them stop depending on a person remembering.