Ask any fund CFO what month-end close costs and they'll give you a number in days, not dollars. Five business days is common. Three if everything goes right. Two if someone worked the weekend. The calculation itself takes minutes. The five days is what everything around the calculation costs.
That gap — between how long the math takes and how long the close takes — is where most fund operations spending lives. And it's invisible on the budget because it's paid in time, not invoices.
The NAV isn't the problem
Net asset value is not a complicated concept. Position value plus cash plus accruals, minus liabilities. A first-year analyst can write the formula. The hard part is never the formula. It's getting every input to agree — at the same point in time, from sources that weren't designed to talk to each other — before you can run the formula at all.
The prime broker file comes in overnight. It has to reconcile to the position book. The position book has prices that were refreshed at 4pm, not at the prime broker's settlement cut. The journal entries that capture accrued management fees, accrued interest on bonds, and the GP commitment are in the fund's accounting system — which someone updates, on a schedule, that is not the same schedule as the prime broker or the position book. You have three authoritative sources for three parts of the same number, none of which agree at month-end without a reconciliation step.
That reconciliation step is the week.
Then every LP has different terms
Once you have a NAV number everyone agrees on, you need to allocate it. And that is where the spreadsheet comes out.
Every LP has terms. Most of them look the same on the surface: 8% hurdle, 20% carry, European waterfall. But once you actually look at the LPAs, the surface cracks. One LP negotiated a 7% hurdle in their side letter. Another has a preferred return that compounds on a 360-day basis, not 365. A third has carry calculated only on realized exits, not mark-to-market. A fourth came in mid-vintage and their committed capital baseline for the waterfall starts from their close date, not the fund's first close.
None of this is unusual. Every institutional LP has a lawyer and most of them used one. The standard form LPA is a starting point, not a final answer. What you end up with is a fund where "our carry is 20%" is simultaneously true and misleading, because 20% is the number before anyone reads the side letters.
The waterfall math is deterministic. The inputs are not. And the inputs are locked in documents that were negotiated in four different months by two different law firms.
The spreadsheet that runs your fund
At most funds, the waterfall calculation lives in a spreadsheet that has been passed from one CFO to the next, updated every quarter, never properly version-controlled, and understood in full by one or two people who have been at the fund since the first close. It works until it doesn't. It doesn't when someone updates it with the wrong LP's terms, or when a new LP comes in mid-vintage and the formula didn't account for that, or when the person who built it leaves and the person who inherited it doesn't quite understand why one cell references another.
That spreadsheet is not a criticism of the people running it. It's the rational response to a problem that the industry has not produced a better tool for. You need something that computes a per-LP allocation from a per-LP set of terms, for every LP, every period. Excel is what exists. So Excel is what you use.
What the close looks like when it's automated
FundOS tracks the full picture continuously. Positions are marked to last price. Journal entries — management fees, carried interest accruals, accrued bond coupon, GP contributions — are posted as they happen. NAV is always live: what you see on the dashboard is the number you'd produce at month-end, computed in real time rather than assembled over five days at month-end.
When you click Run Period Close, the system doesn't start gathering inputs. It locks the inputs it's already been tracking. It reads every LP's deal terms — hurdle rate, carry percentage, preferred return, effective date — and runs each LP's waterfall from their actual terms, not the fund default. The allocation table appears: LP name, committed capital, their share of the distributable P&L, the GP carry, the basis it was computed on. For hedge funds, that means incentive fees on realized plus unrealized P&L. For PE and private credit funds, it means carry on realized distributions only. The system knows which your fund is and applies the right logic without being told.
Past closes are locked. They can't be edited — which means the number you reported to LP A in May is the number the system still shows in November. No restatements. No "this doesn't match my records." The period close is the period of record.
The high-water mark doesn't get forgotten
One of the quieter costs of manual waterfall computation is high-water mark tracking. For hedge funds, incentive fees only accrue when NAV is above the prior peak. In a good year that's irrelevant. After a drawdown year, it's the only number that matters to your LPs — and it's the number most likely to be computed wrong when it's being maintained in a cell somewhere in the quarterly spreadsheet.
FundOS tracks the high-water mark on the fund account. Every period close checks it. If NAV is below the prior peak, no incentive fee accrues — and the system tells you that explicitly, rather than producing a zero and leaving you to wonder if something failed. When NAV recovers past the mark, carry accrual resumes automatically.
The five-day close isn't a function of the complexity of the math. It's a function of the complexity of gathering the inputs, looking up the terms, and running the allocation in a tool that wasn't built for it. When the inputs are always live and the terms are already in the system, the close is a button.