An LP that commits to a private fund does not know when its money will be called, when it will come back, or what the holding will be worth along the way. Yet it has to plan: to keep enough liquidity for capital calls, to decide how much to commit this year, and to show its investment committee when the private markets allocation will reach its target. Cash flow forecasting turns a commitment into an expected schedule of contributions, distributions and NAV, and commitment pacing turns that schedule into a plan for how much to commit each year.
The most widely taught forecasting framework is the model set out by Dean Takahashi and Seth Alexander of the Yale Investments Office. It is deliberately simple: a handful of parameters, three formulas and no randomness. Its value is not precision about any single fund but a transparent, adjustable picture of how a commitment behaves over its life, which can be calibrated to a strategy and summed across a whole program.
This topic states the model's parameters and formulas, projects a hypothetical $100m commitment year by year, tests the projection's sensitivity, then uses the result to pace a program to a 15 percent target and to measure what a public market fall does to the allocation. Every figure was computed numerically.
Key takeaways
- The Takahashi-Alexander model projects contributions as a rate of the remaining unfunded commitment, and distributions as a rate of the grown NAV that rises with fund age according to a bow factor.
- NAV each year equals the previous NAV grown at the assumed growth rate, plus contributions, minus distributions.
- With all flows at year end, the model's IRR equals the growth rate by construction, so the growth rate is the key return assumption and the bow factor mainly shapes timing and the multiple.
- In the base case a $100m commitment peaks at $104.3m of NAV in year 5, has a cumulative cash trough of $79.4m in year 4 and turns cumulatively cash positive in year 8.
- A steady annual commitment reaches a static NAV target only after roughly a full fund life; in the example, $45.4m a year sustains a $300m NAV with an overcommitment ratio of 1.26x.
- A 25 percent fall in public assets with a lagged 10 percent private markdown lifts a 15 percent allocation to 17.5 percent and the overcommitment ratio to 1.50x, the denominator effect in numbers.
Why LPs forecast cash flows
A private markets program has three planning problems that a public portfolio does not. First, liquidity: unfunded commitments can be called on short notice, so the LP needs to know roughly how much cash to hold, and when. Second, allocation: the policy target is set on NAV, but the LP controls only commitments, and the link between the two runs through years of calls and distributions. Third, vintage diversification: committing everything in one year concentrates the program in one set of market conditions, so commitments have to be spread out, which makes the path to target slower.
A forecasting model answers all three with one set of projections. For each existing fund and each planned commitment it projects contributions, distributions and NAV by year, and the program totals are the sums. The LP can then see its expected net cash need, its expected private markets weight and its exposure (NAV plus unfunded) under a base case and under stress.
The model and its parameters
The model describes a single commitment with six inputs. The commitment itself sets the scale. The rate of contribution, one percentage per year of fund age, sets how fast the unfunded balance is drawn. The fund life sets when everything must be distributed. The bow factor sets how distributions are spread across that life: a low bow returns capital earlier, a high bow pushes distributions late. The growth rate sets how fast NAV compounds. The yield sets a minimum annual distribution rate, which matters for strategies with running income such as credit, real estate or infrastructure.
All flows are annual and happen at year end. Each year, the NAV grows at the growth rate, the fund distributes a share of that grown NAV, and new contributions are added. Because both the contribution rate and the distribution rate are applied to balances rather than fixed dollar amounts, the projection adjusts automatically when actual calls or distributions come in faster or slower than expected: the LP restarts the model from the actual unfunded balance and NAV.
| Symbol | Parameter | Role | Base case |
|---|---|---|---|
| CC | Capital committed | Scale of the commitment | $100m |
| RC_t | Rate of contribution in fund year t | Share of remaining unfunded commitment called in year t | 25% in year 1, 35% in year 2, 50% in year 3 onward |
| L | Fund life | Year by which the distribution rate reaches 100% | 12 years |
| B | Bow factor | Shape of the distribution rate curve over the life | 2.5 |
| G | Growth rate | Annual growth of NAV before flows | 12% |
| Y | Yield | Minimum annual distribution rate on grown NAV | 2% |
Contributions
Contributions in each year are the rate of contribution for that year times the commitment still unfunded at the start of the year. Because the rate applies to a shrinking balance, calls decline geometrically once the rate stops changing, and the commitment is approached but never fully drawn. That matches practice reasonably well: a small share of most commitments is never called.
In the base case the fund calls 25 percent of $100m in year 1, then 35 percent of the remaining $75m, then half of what is left each year. By the end of year 4 the fund has called $87.8m, and by year 12 $99.95m.
- C_t
- Contribution called in fund year t
- RC_t
- Rate of contribution for year t
- CC
- Capital committed
- PIC_(t-1)
- Paid-in capital at the end of the previous year
Contributions in years 1 to 4
- CC = $100m. RC = 25%, 35%, then 50%.
- 1. Year 10.25 x (100 - 0) = 25.0000C_1 = $25.00m, PIC 25.00
- 2. Year 20.35 x (100 - 25) = 0.35 x 75 = 26.2500C_2 = $26.25m, PIC 51.25
- 3. Year 30.50 x (100 - 51.25) = 0.50 x 48.75 = 24.3750C_3 = $24.38m, PIC 75.63
- 4. Year 40.50 x (100 - 75.625) = 0.50 x 24.375 = 12.1875C_4 = $12.19m, PIC 87.81
- 5. Unfunded after year 4100 - 87.8125 = 12.1875$12.19m
Almost 88 percent of the commitment is called in four years. After that, calls halve every year.
Distributions and NAV
Distributions are a rate of the NAV after that year's growth. The rate of distribution rises with fund age along the curve (t / L) raised to the power B, and never falls below the yield. At t = L the curve reaches 1, so everything is distributed. A bow factor above 1 bends the curve so that the rate stays low early and climbs steeply late, which is the typical pattern for equity strategies where most value is realized through exits.
NAV then rolls forward: last year's NAV, grown at G, plus this year's contributions, minus this year's distributions. In early years the yield sets the distribution rate, because (t / L)^B is tiny. In the base case the curve overtakes the 2 percent yield in year 3, when (3 / 12)^2.5 = 3.125 percent.
- RD_t
- Rate of distribution in fund year t
- Y
- Yield, the minimum distribution rate
- t, L, B
- Fund year, fund life and bow factor
- D_t
- Distributions in year t
- NAV_t
- Net asset value at the end of year t, with NAV_0 = 0
- G
- Annual growth rate of NAV
Distributions and NAV in years 1, 2, 3 and 6
- Base case: L = 12, B = 2.5, G = 12%, Y = 2%. Contributions as computed above; C_6 = 3.0469.
- 1. Year 1 NAVNAV_0 = 0, so D_1 = 0; NAV_1 = 0 + 25.0000 - 0 = 25.0000$25.00m
- 2. Year 2 rate(2 / 12)^2.5 = 0.011340, below Y; RD_2 = max(0.02, 0.011340)2.00%
- 3. Year 2 distribution0.02 x 25.0000 x 1.12 = 0.02 x 28.0000 = 0.5600$0.56m
- 4. Year 2 NAV28.0000 + 26.2500 - 0.5600 = 53.6900$53.69m
- 5. Year 3 rate(3 / 12)^2.5 = 0.031250, above Y3.13%
- 6. Year 3 distribution and NAV53.6900 x 1.12 = 60.1328; x 0.031250 = 1.8792; 60.1328 + 24.3750 - 1.8792 = 82.629D_3 $1.88m, NAV_3 $82.63m
- 7. Year 6 rate(6 / 12)^2.5 = 0.5^2.5 = 0.17677717.68%
- 8. Year 6 distributionNAV_5 104.3439 x 1.12 = 116.8652; x 0.176777 = 20.6590$20.66m
- 9. Year 6 NAV116.8652 + 3.0469 - 20.6590 = 99.2531$99.25m
Distributions are negligible for three years, then climb as the rate curve steepens. NAV peaks in year 5 and falls from year 6 as distributions exceed growth plus calls.
A twelve-year projection
Running the formulas for all twelve years gives the full projection below. The shape is the familiar J-curve in cash terms. The LP's cumulative net cash flow bottoms out at -$79.4m at the end of year 4, the point of maximum cash invested, and turns positive in year 8. NAV peaks at $104.3m in year 5. Total contributions are $99.95m and total distributions $179.24m, a TVPI of 1.79x including the small residual NAV.
One property is worth noticing. With every flow at year end and NAV growing at a constant G, the IRR of the projected cash flows (with the residual NAV as a final inflow) is exactly 12.0 percent, the growth rate. That is not a coincidence: every dollar in the fund earns G for every full year it stays. So the growth rate is the model's return assumption, and the bow factor and contribution rates determine how long capital stays, and therefore the multiple.
| Year | RC | Contribution | Paid-in | RD | Distribution | Cum. distributions | NAV | Net cash flow | Cum. net cash flow |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 25% | 25.00 | 25.00 | 2.00% | 0.00 | 0.00 | 25.00 | -25.00 | -25.00 |
| 2 | 35% | 26.25 | 51.25 | 2.00% | 0.56 | 0.56 | 53.69 | -25.69 | -50.69 |
| 3 | 50% | 24.38 | 75.63 | 3.13% | 1.88 | 2.44 | 82.63 | -22.50 | -73.19 |
| 4 | 50% | 12.19 | 87.81 | 6.42% | 5.94 | 8.38 | 98.79 | -6.25 | -79.44 |
| 5 | 50% | 6.09 | 93.91 | 11.21% | 12.40 | 20.78 | 104.34 | 6.31 | -73.13 |
| 6 | 50% | 3.05 | 96.95 | 17.68% | 20.66 | 41.43 | 99.25 | 17.61 | -55.52 |
| 7 | 50% | 1.52 | 98.48 | 25.99% | 28.89 | 70.33 | 83.80 | 27.37 | -28.15 |
| 8 | 50% | 0.76 | 99.24 | 36.29% | 34.06 | 104.38 | 60.56 | 33.30 | 5.14 |
| 9 | 50% | 0.38 | 99.62 | 48.71% | 33.04 | 137.42 | 35.16 | 32.66 | 37.80 |
| 10 | 50% | 0.19 | 99.81 | 63.39% | 24.97 | 162.39 | 14.61 | 24.78 | 62.58 |
| 11 | 50% | 0.10 | 99.90 | 80.45% | 13.16 | 175.55 | 3.29 | 13.07 | 75.65 |
| 12 | 50% | 0.05 | 99.95 | 100.00% | 3.69 | 179.24 | 0.05 | 3.64 | 79.29 |
Checking the projection
- Totals from the table: paid-in 99.9524, distributions 179.2402, residual NAV 0.0476.
- 1. TVPI(179.2402 + 0.0476) / 99.9524 = 179.2878 / 99.9524 = 1.79371.79x
- 2. Cumulative net cash flow179.2402 - 99.9524 = 79.2878Matches the year 12 cumulative column
- 3. Total gain including residual NAV79.2878 + 0.0476 = 79.3354$79.34m
- 4. IRR of net flows with residual at year 12solve NPV = 0 over years 1 to 12; r = 0.12000012.0%, equal to G
- 5. Cash troughminimum cumulative net cash flow-$79.44m at year 4
The projection reconciles: cumulative net cash equals distributions minus paid-in, and the IRR recovers the 12 percent growth assumption exactly.
Sensitivity: growth and bow
Because the model is simple, its sensitivities are easy to read. Changing the growth rate scales NAV and distributions but barely moves the timing of the cash trough, which is driven by contributions. Changing the bow factor moves the timing: a low bow distributes earlier, so the fund's NAV peaks lower and sooner, the trough is shallower, the break-even comes earlier and, because capital spends less time compounding, the TVPI is lower at the same growth rate. A high bow does the reverse.
For pacing, the most important output is the sum of the NAV path per dollar committed, because that number converts a NAV target into an annual commitment, as the next section shows. A lower bow or lower growth means less NAV per dollar committed, so a larger annual commitment is needed to hold the same target.
| Case | Peak NAV ($m) | Peak year | TVPI | Cash trough ($m) | Cumulative break-even year | Sum of NAV per $1 committed |
|---|---|---|---|---|---|---|
| Base: G 12%, B 2.5 | 104.34 | 5 | 1.79x | -79.44 | 8 | 6.61 |
| G 8% | 94.86 | 5 | 1.48x | -79.98 | 9 | 5.95 |
| G 16% | 114.60 | 5 | 2.18x | -78.87 | 8 | 7.36 |
| B 1.5 | 80.63 | 4 | 1.51x | -66.39 | 7 | 4.27 |
| B 3.5 | 122.09 | 6 | 2.01x | -84.74 | 9 | 8.44 |
Pacing a program to a target
Suppose an endowment with a $2,000m portfolio wants 15 percent in private markets, a $300m NAV target, and plans to commit the same amount every year to funds that behave like the base case. For simplicity, hold the total portfolio constant at $2,000m. Once the program has run for a full fund life, it contains one fund of every age from 1 to 12, so its NAV is the annual commitment times the sum of the NAV path per dollar committed. Setting that equal to the target gives the steady-state annual commitment.
The steady state takes time to reach. Committing $45.4m a year from a standing start, the program's NAV is only $118.0m after four years and $248.4m after seven, and reaches the target in year 11. An LP in a hurry can commit more in the early years and then step down, at the cost of concentrating vintages. The program also becomes self-funding: from year 8 distributions from older funds exceed calls from newer ones.
Exposure tells the rest of the story. In steady state the program holds $300m of NAV and $78.2m of unfunded commitments, an overcommitment ratio of 1.26x on the definition used in the earlier topic on committed and unfunded capital. That ratio is not a policy choice made separately; it follows from the fund shape and from committing enough to hit the NAV target.
- X
- Annual commitment, held constant
- NAV_a / CC
- Year-end NAV of a fund of age a per dollar committed, from the projection
- unfunded_a / CC
- Unfunded commitment at the end of age a per dollar committed
Pacing to a $300m NAV target
- Target: 15% x $2,000m = $300m. Base case fund shape.
- Sum of year-end NAV per $1 committed: 6.611761. Sum of year-end unfunded per $1 committed: 1.724524.
- 1. Annual commitment300 / 6.611761 = 45.3737$45.4m a year
- 2. Steady-state unfunded45.3737 x 1.724524 = 78.2480$78.2m
- 3. Exposure300 + 78.2480 = 378.2480$378.2m
- 4. Overcommitment ratio378.2480 / 300 = 1.26081.26x
- 5. Steady-state net cash flowsum of net flows by age x 45.3737 / 100+$35.98m a year, almost exactly 12% of the $300m NAV
Committing about $45.4m a year sustains a $300m private markets NAV with about $78m unfunded. Once mature, the program distributes its growth back to the endowment.
| Year | Calls | NAV | Unfunded | Net cash flow | Private weight | Exposure / target |
|---|---|---|---|---|---|---|
| 1 | 11.34 | 11.34 | 34.03 | -11.34 | 0.57% | 0.15x |
| 2 | 23.25 | 35.70 | 56.15 | -23.00 | 1.79% | 0.31x |
| 3 | 34.31 | 73.20 | 67.21 | -33.21 | 3.66% | 0.47x |
| 4 | 39.84 | 118.02 | 72.74 | -36.04 | 5.90% | 0.64x |
| 5 | 42.61 | 165.37 | 75.50 | -33.18 | 8.27% | 0.80x |
| 6 | 43.99 | 210.40 | 76.89 | -25.19 | 10.52% | 0.96x |
| 7 | 44.68 | 248.42 | 77.58 | -12.77 | 12.42% | 1.09x |
| 8 | 45.03 | 275.90 | 77.92 | 2.33 | 13.80% | 1.18x |
| 9 | 45.20 | 291.86 | 78.10 | 17.15 | 14.59% | 1.23x |
| 10 | 45.29 | 298.48 | 78.18 | 28.39 | 14.92% | 1.26x |
| 11 | 45.33 | 299.98 | 78.23 | 34.32 | 15.00% | 1.26x |
| 12 | 45.35 | 300.00 | 78.25 | 35.98 | 15.00% | 1.26x |
The denominator effect
The allocation target is a percentage, so it depends on the denominator, the total portfolio. When public markets fall sharply, the public part of the portfolio shrinks immediately, while private fund NAVs are marked with a lag and usually by less in the first quarters. The private weight therefore jumps without the LP doing anything, and the target in currency shrinks. An LP whose policy requires it to stay near target then faces unattractive options: stop committing, which damages vintage diversification, or sell fund interests in the secondary market, typically at a discount in exactly those conditions.
Overcommitment amplifies the effect, because the unfunded commitments do not shrink with the portfolio. They are still callable in full, and GPs may call faster in a downturn to buy assets at lower prices while exits and distributions slow down.
A public market fall hits the steady-state program
- Before: total portfolio $2,000m, private NAV $300m (15.0%), public assets $1,700m, unfunded $78.25m.
- Shock: public assets fall 25%. Private NAV is marked down 10% at the next valuation, reflecting lagged and partial markdowns.
- 1. Public assets after the fall1,700 x 0.75 = 1,275$1,275m
- 2. Private weight before any markdown300 / (1,275 + 300) = 300 / 1,575 = 0.190519.0%
- 3. Private NAV after markdown300 x 0.90 = 270$270m
- 4. Total portfolio1,275 + 270 = 1,545$1,545m
- 5. Private weight270 / 1,545 = 0.174817.5%
- 6. Target in currency0.15 x 1,545 = 231.75$231.8m
- 7. Overcommitment ratio on the new target(270 + 78.25) / 231.75 = 348.25 / 231.75 = 1.50271.50x
- 8. New steady-state commitment231.75 / 6.611761 = 35.0512$35.1m a year, 22.7% below $45.4m
A 25 percent public fall pushes the private weight from 15.0 to 17.5 percent (19.0 percent before the lagged markdown) and the overcommitment ratio from 1.26x to 1.50x. Restoring the plan through commitments alone means cutting new commitments by almost a quarter.