Portfolio LabKnowledgeSign inCreate account

Private markets methodology: analyzing funds, forecasting cash flows, planning commitments

Advanced10 min read · updated 27 October 2026 · 7 sources

The Private markets tool in the Plan section has three tabs: Analyze a fund, Forecast and Plan commitments. This private markets methodology describes what the calculation engine actually does: how it reads in cash flows, determines the IRR like Excel's XIRR function, builds multiples and the J-curve, compares funds with an index, desmooths reported returns, forecasts cash flows following Takahashi and Alexander and solves for the commitments needed to reach a target allocation. All limits and defaults are stated along the way.

Analyzing a fund: inputs, IRR and multiples

A row consists of a date, a capital call, a distribution and, optionally, the NAV after that day's cash flows; all amounts are positive and at most 10^12, with at most 400 rows. Rows are sorted by date, and identical dates are combined (cash flows added, the last NAV applies). Without a capital call, the tool does not calculate. When you paste from Excel or a CSV file, it recognizes tab, semicolon, comma or space as the separator, the columns by the header row (date, call, distribution, NAV, amount) or by their order, the decimal separator from the unambiguous numbers in the whole text and, for dates with slashes, whether the day comes first. Two columns are treated as date and signed amount, with a negative amount being a capital call.

The valuation date is the last date. If there is no NAV on that date, the tool rolls the last reported NAV forward with the subsequent calls and distributions (not below zero); without any NAV at all, the fund is treated as fully distributed. From this:

PIC = Σ C_i DPI = Σ D_i / PIC RVPI = NAV_T / PIC TVPI = DPI + RVPI 0 = Σ (D_i − C_i) × (1 + IRR)^(−days_i / 365) + NAV_T × (1 + IRR)^(−days_T / 365)
C_i, D_i
capital call and distribution on date i
days_i
days since the first cash flow, as with XIRR in Excel
NAV_T
NAV on the valuation date

The calculation engine searches for the IRR on a grid from −99% to 10,000% per year: where the present value changes sign, Brent's method determines the root to 15 digits. If the cash flows change sign several times, there may be several solutions; the tool then shows the one closest to 10%, Excel's starting value, and points this out. For the example from the Excel help (−10,000, then 2,750, 4,250, 3,250 and 2,750 between January 2008 and April 2009), this gives 37.34%, as in Excel. The J-curve is the cumulative net cash flow Σ (D − C) per date. At each date with a NAV, the tool calculates the since-inception IRR, TVPI and DPI, the IRR only after one year, because it strongly extrapolates short periods. If you enter a commitment, the unfunded commitment and the paid-in ratio are added.

PME against an index

The benchmark index is a ticker or an asset class, loaded as in the other tools and converted into the base currency from the settings; the cash flows should be in the same currency. Each cash flow is matched with the index level on its date or the last one before it. Asset classes have monthly values, in which case the previous month-end applies; if the level is more than 10 days old (40 days for monthly values), a note appears. If the index starts after the first cash flow, the tool does not calculate. With I_i for the index level and I_T on the valuation date:

KS-PME = (Σ D_i / I_i + NAV_T / I_T) / Σ C_i / I_i Direct alpha = IRR of (D_i − C_i) × I_T / I_i and NAV_T S_i = S_i−1 × I_i / I_i−1 + C_i − D_i
KS-PME
after Kaplan and Schoar; above 1, the fund beat the index
Direct alpha
discrete excess return per year, with time measured as in XIRR
S_i
shadow portfolio after Long and Nickels; the PME IRR is the IRR of the fund cash flows with S_T instead of NAV_T

The KS-PME goes back to Kaplan and Schoar (2005), direct alpha to Gredil et al. (2023) and the shadow portfolio to Long and Nickels (1996). If S turns negative because the fund has distributed more than was invested in the index, the tool reports the date: the PME IRR is then hardly meaningful. In addition, it shows the spread IRR minus PME IRR, the since-inception KS-PME at each date with a NAV and the time-weighted index return per year from the first cash flow to the valuation date. If the fund is exactly the index, the result is a KS-PME of 1, a direct alpha of 0 and a PME IRR equal to the IRR; the tests check this.

Desmoothing reported returns

The returns are either derived from the NAVs in the table or taken from your own series of quarterly or monthly returns. From the NAVs, the tool calculates the return for each period between two dates with a NAV using Modified Dietz (Bacon 2008), with cash flows weighted by the share of the period that remains after them; cash flows on the end date have zero weight. Periods before anything is invested are dropped. The frequency is read from the average spacing: below 45 days months, below 135 quarters, below 270 half-years, otherwise years; if the spacing varies by more than a factor of 1.6, a note appears.

r_t = (NAV_t − NAV_t−1 − Σ (C − D)) / (NAV_t−1 + Σ w × (C − D)) r_true,t = (r_obs,t − ρ × r_obs,t−1) / (1 − ρ)
w
share of the period after the cash flow
ρ
smoothing parameter: first-order autocorrelation Σ (r_t − m)(r_t−1 − m) / Σ (r_t − m)², limited to 0 to 0.95, or specified

The method of Geltner (1993) needs at least 8 and at most 600 returns; the first period is dropped. The page shows the annualized volatility (standard deviation times the square root of the number of periods per year) before and after, their ratio and the theoretical factor √((1 + ρ) / (1 − ρ)), the autocorrelation, the annual mean and the largest drawdown. Optionally, the model of Getmansky et al. (2004) is added, from 20 returns: an MA(2) process r_obs,t = μ + η_t + ψ1 η_t−1 + ψ2 η_t−2 is estimated by conditional least squares (Nelder-Mead, invertible solutions only) and normalized to θ_j = ψ_j / (1 + ψ1 + ψ2) with θ0 = 1 / (1 + ψ1 + ψ2). The smoothing index ξ = Σ θ², the theoretical volatility σ_obs / √ξ and the desmoothed series r_t = (r_obs,t − θ1 r_t−1 − θ2 r_t−2) / θ0 (the mean before the start) follow from this.

Forecast following Takahashi and Alexander

The Forecast tab calculates the model of Takahashi and Alexander (2002) in years t = 1 to L with cash flows at year-end, as described in the article on the Takahashi-Alexander model:

C_t = RC_t × (CC − PIC_t−1) RD_t = min(1; max(Y; (t / L)^B)) D_t = RD_t × NAV_t−1 × (1 + G) NAV_t = NAV_t−1 × (1 + G) + C_t − D_t
RC_t
rate of contribution per year; after the last year entered, the last value applies, and from year L it is zero
L, B, G, Y
fund life 2 to 30 years, bow factor 0.1 to 10, growth −50% to 100%, yield (minimum distribution) 0 to 100%

In year L, the rate is 100%, the NAV falls to zero, and the never-called remainder of the commitment expires; the tool reports this amount. For each year, it shows the call, distribution, NAV, unfunded commitment, cumulative net cash flow, and the since-inception IRR, TVPI and DPI. Because the NAV grows by exactly G every year and all cash flows occur at year-end, the IRR is G in every year; in the first year, in which call and NAV are equal, there is no IRR.

Planning commitments and the solver

At the start of each year y, a vintage with commitment K_y is added: either fixed (with an optional annual increase) or a share k of the previous year's wealth. Each vintage follows the forecast model scaled to a commitment of 1. At year-end:

Liquid_y = Liquid_y−1 × (1 + r) − Calls_y + Distributions_y − e × W_y−1 W_y = Liquid_y + NAV_y Allocation_y = NAV_y / W_y
r, e
return on the liquid part (−50% to 50%) and withdrawal in % of wealth (0 to 20%)
W
total wealth, fully liquid at the start

Overcommitment ratio = (NAV + unfunded commitments) / (target allocation × W), coverage = liquid part / unfunded commitments, liquidity need = max(calls − distributions; 0) / W of the previous year. The solver looks for the constant rate k at which the allocation in steady state hits the target allocation (1% to 90%). Steady state means the mean of the last L years of a 200-year run. The solver brackets k between 0 and 100% with the steps 1, 2, 4, 8, 16, 32 and 64% and determines the solution with Brent's method. If the liquid part turns negative along the way, the rate counts as too high; if the solver only ends up at this boundary, it returns no solution. The calculation covers 5 to 50 years.

Limitations of the calculation

  • One currency: amounts are not converted; only the index is in the base currency.
  • Desmoothing on short series: the autocorrelation from 20 quarters has a standard error of about 1 / √20; below 20 returns, the tool points this out.
  • Deterministic forecast: a single path without fluctuations, without fees and without market dependence of the cash flows.
  • No data retrieval apart from the index: the server does not store the fund data; only your browser remembers the inputs.

Frequently asked questions

Why does the IRR differ from a calculation with annual periods?

Like XIRR, the tool calculates with days divided by 365. If cash flows are exactly one year apart and a February 29 falls in between, that makes 366 days, and the IRR differs in the later decimal places.

What happens if the last NAV is missing?

The tool then rolls the last reported NAV forward with the later calls and distributions and points this out. Without any NAV at all, the fund is treated as fully distributed.

Which index should I choose for the PME?

One that fits the rest of your portfolio and the fund's risk; for buyouts, for example, small-cap value stocks rather than a standard large-cap index. The index is converted into the base currency; the cash flows should be in the same currency.

How does the tool estimate the smoothing parameter ρ?

As the first-order autocorrelation of the returns, limited to 0 to 0.95. You can also specify ρ yourself. If the autocorrelation is negative, ρ = 0 applies, and the series remains unchanged.

How does the solver find the commitment rate?

It runs 200 years with a constant rate, averages the private markets allocation over the last L years and uses Brent's method to find the commitment rate at which this average hits the target allocation, as long as the liquid part does not turn negative.

Literature

  1. Bacon, Carl R. (2008): Practical Portfolio Performance Measurement and Attribution. Wiley, 2nd edition.
  2. Geltner, David (1993): Estimating Market Values from Appraised Values without Assuming an Efficient Market. Journal of Real Estate Research 8 (3), pp. 325–345. doi:10.1080/10835547.1993.12090713
  3. Getmansky, Mila; Lo, Andrew W.; Makarov, Igor (2004): An econometric model of serial correlation and illiquidity in hedge fund returns. Journal of Financial Economics 74 (3), pp. 529–609. doi:10.1016/j.jfineco.2004.04.001
  4. Gredil, Oleg R.; Griffiths, Barry; Stucke, Rüdiger (2023): Benchmarking private equity: The direct alpha method. Journal of Corporate Finance 81, pp. 102360. doi:10.1016/j.jcorpfin.2023.102360
  5. Kaplan, Steven N.; Schoar, Antoinette (2005): Private Equity Performance: Returns, Persistence, and Capital Flows. The Journal of Finance 60 (4), pp. 1791–1823. doi:10.1111/j.1540-6261.2005.00780.x
  6. Long, Austin M.; Nickels, Craig J. (1996): A Private Investment Benchmark. Vortrag auf der AIMR Conference on Venture Capital Investing, 13.2.1996; abgerufen am 27.10.2026. Source
  7. Takahashi, Dean; Alexander, Seth (2002): Illiquid Alternative Asset Fund Modeling. The Journal of Portfolio Management 28 (2), pp. 90–100. doi:10.3905/jpm.2002.319836

Full bibliography

This page describes how Portfolio Lab calculates; past results are not a forecast. All terms in the glossary.