There is a question I ask every time I start working with a new finance team: “When do your books actually close?”
The answer is almost never a date. It is a description. “Well, it depends on when we get the invoices.” “Usually around the 20th, but last month it was the 25th.” “We are still finalising a few things from two months ago.”
That is not a close. That is a permanent state of partial uncertainty dressed up as a process.
A four-week close is not a workload problem. I have seen lean two-person finance teams close in five days and ten-person departments still reconciling on day 22. The difference is never headcount. It is always structure, and specifically the absence of it in a handful of predictable places.
This article walks through the seven bottlenecks that most commonly turn a month-end close into a month-long ordeal. For each one: how to recognise it, and what to actually do about it.
Bottleneck 1: Manual Reconciliations With No Documented Process
This is the one most finance teams underestimate, because it hides in plain sight.
Every organisation has reconciliations that live outside the official process map. They exist in someone’s head, in an Excel file that only one person knows how to run, or in a sequence of steps that was figured out years ago and never written down. When that person is on holiday, or leaves, the reconciliation either does not happen or takes three times as long because someone else is rebuilding it from scratch.
The deeper problem is that manual reconciliations are often themselves a symptom of a systems mismatch. If your POS system, your treasury platform, and your ERP do not talk to each other automatically, someone is manually bridging the gap every single month. That bridge is usually a spreadsheet. The spreadsheet has no version control, no error-checking, and no documentation of what it is actually doing. When a number does not tie, you are not just fixing a discrepancy: you are also reverse-engineering a process you did not build.
How to diagnose it: Map every reconciliation your team performs during close. For each one, ask: is this process documented? Can a different person run it from the documentation alone? Does it require manual data extraction from more than one system? If the answer to any of those questions is unfavourable, you have an undocumented manual reconciliation risk.
The fix: Start with documentation, not automation. Before you can automate or streamline a reconciliation, you need to understand exactly what it is doing and why. Write the steps down. Then assess whether the reconciliation exists because of a genuine business need or because of a gap between systems that could be closed upstream. In SAP environments specifically, the most common culprit is the absence of a systematic cross-system integrity check between the ERP and peripheral platforms such as POS systems, treasury tools, or customs software. Building that check once, in a structured and documented way, is worth weeks of manual effort saved over the course of a year.
Bottleneck 2: Missing or Incomplete Data in the System
You cannot close what you cannot see, and you cannot analyse what was never recorded correctly in the first place.
Missing data during month-end close takes several forms. Sometimes it is a literal absence: a sales upload that did not complete, a goods receipt that was never posted, a vendor invoice that is sitting in an approval queue untouched. Sometimes it is more subtle: the data is technically in the system but in the wrong place, posted to the wrong cost centre, the wrong period, or the wrong account.
Both types cause the same problem. You run your reports, the numbers look wrong, and you spend the next two days figuring out whether the discrepancy is a real business issue or a data entry problem. That diagnostic process is one of the most expensive time sinks in any month-end close.
The missing data problem is often invisible until close because most ERP systems do not proactively flag that something is absent. They show you what is there. They do not alert you to what should be there but is not. A disconnected POS terminal in a retail environment, for example, will simply show no sales for that location. If you are not checking completeness actively, you will not know until the variance analysis throws up a number that looks implausible.
How to diagnose it: Before you run any P&L or management report, run a completeness check. For every data source that feeds your ERP, verify that the expected volume of transactions has actually arrived. If you processed 1,200 invoices last month and only 900 have posted this month, the 300 difference needs an explanation before you close, not after. In high-volume environments, this check should happen on day one of the close, before anything else.
The fix: Build a data completeness checklist as the first step of your close calendar, not an afterthought. For each data source, define what “complete” looks like: expected transaction counts, expected upload confirmations, expected system-to-system handshakes. Make the completeness check the gating condition for everything that follows. Nothing moves forward until the data is confirmed clean and complete.
Bottleneck 3: Undiagnosed Double Entries and Wrong Postings
This is the bottleneck nobody wants to talk about because it implies that the numbers you have been reporting might be wrong.
Double entries and wrong postings are more common than most finance teams admit, and they are particularly insidious because they often net to zero at an aggregated level while creating significant distortions at the detail level. A cost that was posted twice to one cost centre and zero times to another looks fine in the total P&L but produces completely wrong cost centre reporting. A revenue entry that was posted in the wrong period creates a variance that is real in the report but fictitious in the business.
The causes are usually upstream of the finance team. In any ERP system, non-automated data entry points are risk points. Goods receipts posted by warehouse staff with no financial training, vendor registrations created by procurement without a mandatory account assignment check, invoice approvals pushed through by managers who do not verify the cost centre: each of these creates a valid accounting entry that is analytically wrong. The system accepts it. The controls did not catch it. And now it is in your closing numbers.
The more complex the system, the more opportunities for this type of error. ERP systems are generally good at preventing technically invalid postings. They are much less good at preventing postings that are technically valid but contextually wrong. That gap is where double entries and mispostings live.
How to diagnose it: Build a set of standard exception reports that you run at the start of every close. These should include: duplicate posting checks on invoice numbers and vendor-amount combinations, period-over-period variance checks at the cost centre level that flag anything outside a defined tolerance, and account-level checks for postings that landed in accounts they should never appear in (fixed costs in variable cost accounts, balance sheet entries in P&L accounts, and so on). The goal is not to review every transaction but to identify the anomalies that warrant investigation.
The fix: Exception reporting is the short-term answer. The structural fix is upstream. Every non-automated data entry point in your ERP is a control gap. For each one, identify whether you can add a mandatory field that forces the user to make a deliberate choice, whether approval workflows can route postings through someone with financial accountability, and whether a reconciliation between the posting system and an independent data source can catch errors before they enter the close. None of this eliminates human error entirely, but it creates checkpoints that surface problems on day one instead of day eight.
Bottleneck 4: No Close Calendar With Named Owners
Most finance teams know what needs to happen during close. Very few have it written down with a name and a deadline next to every item.
The consequences of this are predictable. Tasks get started late because nobody had a specific trigger date in mind. Tasks get done twice because two people both thought they were responsible. Tasks do not get done at all because everyone assumed someone else was handling it. And when the CFO asks why the close is running late, the answer is a vague reference to “waiting on a few things” rather than a specific task, a specific person, and a specific missed deadline.
A close calendar does not need to be sophisticated. It needs to be complete, specific, and visible. Every task, one owner, one reviewer, one hard deadline.
How to diagnose it: Ask your team to independently list the five most important tasks they personally own during month-end close. Then compare the lists. You will almost certainly find overlap (two people think they own the same task), gaps (tasks nobody listed), and surprises (tasks that exist but are not formally recognised as part of the close process). That exercise alone usually surfaces three to five structural problems in under an hour.
The fix: Build a close calendar with explicit task ownership. The structure should follow sequencing logic, not just alphabetical or functional grouping. Tasks that are dependencies for other tasks need to close first. Tasks that can run in parallel should be identified as such to avoid bottlenecks. Publish the calendar to everyone involved, including department heads who need to provide data or approvals, not just the finance team. A close is a cross-functional process. Treating it as a finance-only exercise is itself a bottleneck.
Bottleneck 5: Missing Accruals
A P&L that does not accrue for costs incurred but not yet invoiced is not a P&L. It is a cash accounting report dressed up as accrual accounting, and it will mislead every management decision that relies on it.
Missing accruals are one of the most common findings when I review a new client’s reporting. The pattern is usually the same: the team accrues for the big, obvious costs, payroll, rent, major contracts, and forgets about the smaller, recurring items that add up. Temporary staff costs accrued at zero because the agency invoice has not arrived. Consulting fees not accrued because the project is “nearly finished.” Marketing costs not accrued because the campaign ran in the last week of the month and the invoice will come next month.
Individually, each of these might be immaterial. Collectively, they produce a monthly P&L that understates costs by a meaningful amount, creates artificial profit in some months and artificial losses when the invoices eventually arrive, and makes variance analysis impossible because you cannot tell whether you are looking at a real business trend or an accrual timing difference.
How to diagnose it: Compare your accruals balance at month-end to the same month in the prior year and to your budget. If the accruals balance is consistently lower than budget or shows significant month-to-month swings that do not correspond to obvious business seasonality, you likely have a systematic under-accrual problem. A secondary check is to review your actuals in the first week of each month: a spike of invoices posting in the first five days is a reliable indicator that costs from the previous month were not accrued.
The fix: Build a standard accrual schedule and treat it as a mandatory close deliverable, not an optional adjustment. The schedule should list every recurring cost category that is regularly invoiced in arrears, with a standard accrual methodology for each one: based on contract value, based on prior month invoice, based on headcount, based on run rate. Remove the judgment call from the process. The accrual gets posted unless there is a documented reason not to.
Bottleneck 6: Late Invoices From Suppliers and Internal Departments
Late invoices are the bottleneck that finance teams complain about most and control least, which is exactly why they keep tolerating it instead of fixing it.
The problem is real: you cannot post what has not arrived. But the reason invoices arrive late is usually not vendor slowness. It is the absence of a hard cut-off communicated clearly and enforced consistently. Vendors send invoices when they send them because nobody has told them that invoices received after the 20th of the month go to the next period. Internal departments approve purchase orders on their own schedule because finance has never given them a reason to treat the close cut-off as their problem.
How to diagnose it: Track the date each invoice is received against the date it is posted. If a significant portion of your invoice volume is arriving after day three of close, the cut-off discipline does not exist or is not being enforced.
The fix: Establish a published cut-off date, communicate it to vendors and internal budget holders, and enforce it. Invoices received after cut-off go to the following period, with an accrual posted for the estimated amount. This is accounting orthodoxy, but many teams avoid it because it requires a conversation with procurement, operations, or external vendors. That conversation is worth having once rather than losing two days every month chasing paper.
Bottleneck 7: Manual Reporting Built in Excel After the Close
The close finishes and then someone spends two days manually copying numbers from the ERP into the management report template in Excel.
This is not the close running late. This is a second process beginning after the close, one that reintroduces all the risks of the close: transcription errors, version control problems, formatting inconsistencies, and time pressure. The management report that arrives on day 12 is often late not because the close was slow but because the reporting layer on top of it was manual and undocumented.
How to diagnose it: Time the gap between when the period is locked in your ERP and when the management report is distributed. If that gap is more than 24 hours, your reporting process is a separate bottleneck from your close process.
The fix: The reporting layer needs to be built in parallel with the close, not after it. If your ERP extracts are structured correctly and your Excel template uses direct data links rather than manual copy-paste, the management report should be 80 percent complete the moment the period closes. The remaining 20 percent is variance commentary, which requires human judgment but not additional data collection. Structuring your reporting template this way is a one-time investment that pays back every single month.
Where to Start
If your close is taking more than 10 working days, you almost certainly have more than one of these bottlenecks operating simultaneously. The question is which one to fix first.
Start with data quality and completeness, because everything else depends on it. You cannot meaningfully analyse a close that is built on incomplete or incorrectly posted data. Get the data clean first, then work on sequencing, accruals, and reporting structure.
The second priority is documenting your manual reconciliations, because that is where the hidden process risk sits. A reconciliation that only one person knows how to run is not a reconciliation. It is a dependency on a specific individual, and individuals leave, get sick, and take holidays.
Everything else, the close calendar, the accrual schedule, the reporting template, is real and important but builds on top of those two foundations.
A structured month-end close is not a complicated thing to build. It is a disciplined thing to maintain. The difference between a five-day close and a four-week close is almost always a handful of process decisions made years ago and never revisited.
If you want an independent assessment of where your close is losing time, I offer a structured process review as part of my fractional CFO and business controlling engagements. The first conversation is free.
[Book a 30-minute call at /contact.html]
Ready to improve your financial reporting? Book a free 30-minute call to discuss your situation.
Alessandro Ratzenberger is a fractional CFO and business controller based in Zurich, with 15 years of operational finance experience at Dufry Group and Bomi (UPS Group).