There is a question worth sitting with.
Does a finance team at a mid-market B2B SaaS company catch O2C failures in real time - or do they mostly show up at month-end?
The research gives a consistent answer.
Month-end.
Billing mismatches. Late payments. Stuck approvals. Invoices that went out wrong. Deals that closed but never got billed. Renewals that slipped through without anyone noticing.
All of it discovered when the books close. Not when it happened.
What strikes most is not the finding. It is how unsurprising it is to the people living it. Not a crisis. Not an embarrassment. Just how it works.
The scramble has a name
In finance circles they call it the month-end close. In practice, most teams call it something less polite.
The close is supposed to be clean and orderly. A final accounting of the month. A few days of reconciliation, a sign-off, done.
That is not what it looks like in most mid-market B2B SaaS companies.
What it looks like is a team of three to six people spending the last week of every month reconstructing what went wrong. Chasing down a billing mismatch that happened on the fourteenth. Tracking the approval that never got signed. Figuring out why a payment that definitely came in is not showing up in the ERP.
Ledge.co surveyed one hundred finance professionals at mid-market companies in 2025. Their finding was precise: it is not the final reporting that slows teams down. It is everything that happens before it. Reconciling fragmented data. Aligning upstream systems. Correcting manual errors.
One finance manager at a B2B SaaS company put it plainly in that same report:
"Cash reconciliation alone takes thirty-plus hours each month. And if even one source is delayed, it pushes back the entire close."
Thirty hours. Every month. Just to reconcile. Before anyone has looked at whether the numbers are right.
This is a structural problem, not a human one
The temptation when you hear this is to reach for a people explanation.
The team is not organised well. The processes are not documented. Someone is not doing their job.
That is the wrong diagnosis.
The Ledge.co data is clear. The top blocker preventing faster month-end close is not skills or effort. It is dependency.
Fifty-six percent of finance teams cite dependency on other departments and regions as their primary blocker. Fifty percent cite managing everything in spreadsheets. Forty percent cite legacy systems that do not integrate.
These are not individual failures. They are structural ones.
O2C does not live in one system. It lives across several. A deal closes in the CRM. It moves to the billing system. It lands in the ERP for recognition and reporting. Along the way it touches legal for contract terms, customer success for provisioning, and finance for invoicing and collection.
McKinsey describes O2C as one of the most complex G&A processes precisely because it touches every function. Cross-functional alignment is critical to understand what is happening in the process - yet difficult to achieve.
What that means in practice: nobody owns the full picture. The CRM sees the deal. Finance sees the invoice. Operations sees the fulfilment. Nobody sees the thread connecting them.
So when something breaks in the middle - a billing amount that does not match the contract, an approval sitting in a queue for nine days, a payment that never comes in - nobody sees it until the thread is pulled at month-end.
The failure is not in the process
Most mid-market B2B SaaS companies have a reasonable O2C process on paper. Deals flow through the right stages. Invoices go out. Approvals happen.
The failure is in the visibility.
The data to catch O2C failures exists. It is sitting in the CRM, the billing system, the ERP. Every billing mismatch, every stuck approval, every late payment that is about to become a problem - the signal is there.
It is just not being watched.
Zone & Co found that ninety-two percent of businesses have partial or no connectivity across the processes and data of their O2C cycle. Many organisations continue to store bookings, billing, and revenue data in separate systems - leading to time-consuming reconciliations and reporting bottlenecks.
Nine in ten finance teams. Flying blind on O2C. Not because the data does not exist. Because nobody has connected it.
BlackLine surveyed 1,339 C-suite and finance professionals across seven countries. Ninety-eight percent confirmed they do not have complete confidence in the visibility their organisation has over its cash flow.
This is not a small company problem. This is the baseline for the industry.
The pre-close gap
There is a window that nobody talks about.
It sits between when an O2C failure forms and when anyone finds out about it.
A billing mismatch forms the moment the invoice goes out with the wrong amount. But it is not discovered until the customer disputes it - or until month-end. That window is typically two to four weeks.
A stuck approval forms the moment it lands in someone's inbox unopened. But it is not discovered until finance chases the payment. That window is typically one to three weeks.
In each case, the failure is not sudden. It is gradual. And it leaves a trail.
The payment that is about to be late has a pattern. The approval that is stuck has been sitting beyond its average hold time. The billing mismatch has a discrepancy that has been there since the invoice was generated.
The signals are there. The window exists. It is just not being watched.
This is what the leading indicators in O2C framework is built around - the idea that most failures are detectable well before they become visible in the numbers.
Why month-end is too late
By the time a finance team discovers an O2C failure at month-end, two things have already happened.
The first is financial. The payment is late, the dispute has been open for weeks, the approval has delayed revenue recognition, the cash is not where it was supposed to be. The DSO impact is already baked in.
The second is relational. A customer who has been waiting three weeks for someone to resolve a billing dispute is not a happy customer. The relationship damage compounds quietly.
Both are preventable. Not after the fact. Before it.
The difference between catching an O2C failure six hours before it becomes a problem and discovering it three weeks later at month-end is not a process improvement. It is a different category of tool.
What the best-run teams do differently
The finance teams that do not run month-end fire drills are not smarter or more disciplined than the ones that do.
They have one thing the others do not.
A way of watching what is happening in their O2C process before the close.
In a small number of cases the visibility is systematic. There is a layer that watches the O2C process continuously and flags anomalies before they become failures.
That layer is not a dashboard. Dashboards show you what has already happened. It is not a BI tool. BI tools require someone to build the query, run the report, and know what to look for.
It is something closer to a smoke detector than a fire report.
The question is not whether your team needs it. The research data is consistent. The question is whether it exists yet for your stack.
What this means for your team
If your close is taking longer than five business days, there is almost certainly a broken handoff or data delay upstream - not a close problem.
The fix is not a better close process. It is visibility into what is forming during the month.
Three questions worth asking:
One. When did you last find out about an O2C failure before it hit the close?
Two. What would it be worth to your team to catch billing mismatches, stuck approvals, and late payments 6-24 hours before they become a problem?
Three. Does the data to do that already exist in your systems?
The answer to the third question is almost always yes.
The next piece covers the data in full - what four independent research reports found when they looked at how mid-market B2B SaaS finance teams actually operate.