Posts

Calculating IRR, DPI, RVPI, and TVPI, Part III

Image
In Part I , I used sample data on transactions, prices, and FX rates to calculate market values, cash flows, and DPI, RVPI, and TVPI ratios for Private Equity funds. The resulting view's output was a time series with every cash flow and valuation date, and data calculated in two currencies, the Instrument Currency and the Portfolio Currency. In Part II , I discussed how to calculate IRR (internal rate of return) in SQL using a recursive CTE, and went through an example with code. In this part, I will use SQL Server to calculate the IRRs for the funds using the view set up in Part I . Results will be presented in both currencies, and for the portfolio as a whole, in Portfolio Currency. I will build an inline table-valued function (TVF) with two date parameters to limit the calculation period, if required, to enable reporting a specific time period. An inline TVF has a lot of advantages compared to a multi-statement TVF . When using an inline TVF, SQL Server can treat it much like a...

Calculating IRR, DPI, RVPI, and TVPI, Part II

Image
In the previous part , I used sample data on transactions, prices, and FX rates to calculate market values, cash flows, and DPI, RVPI, and TVPI ratios for Private Equity funds. The output was a time series with every cash flow and valuation date, and data calculated in two currencies, the Instrument Currency and the Portfolio Currency. In this part, I will use SQL Server to calculate internal rate of return (IRR) for some simple sample data. In the next part, Part III , I will build an inline table-valued function (TVF) to calculate IRRs in two currencies for the funds and the total portfolio using the data prepared in Part I . The function will have two date parameters to limit the calculation period, if required, to enable reporting a specific time period. But, let's focus for a while on calculating the IRR with a set-based SQL query. The whole SQL script is available in my  GitHub by the name IRR Simple.sql . Internal Rate of Return, IRR By definition, internal rate of return...

Calculating IRR, DPI, RVPI, and TVPI, Part I

Image
In the previous parts (see Performance Attribution  Part I to start with) I have set up a MS SQL Server database, the required tables and data to calculate time-weighted returns and Brinson-Fachler performance attribution for some sample data. However, private assets, e.g. private equity, private credit, and real estate funds, are an increasingly important part of professional investors' portfolios. Instead of time-weighted returns, sharpe ratios etc. commonly used for liquid assets, the private asset classes often use other measures. Perhaps the most important of these is IRR or internal rate of return. Other statistics usually presented on fund provider reports and, increasingly, asset owner private asset portfolios, include ratios like DPI (Distributions to Paid-In capital), RVPI (Residual Value to Paid-In capital), and TVPI (Total Value to Paid-In capital). Here, I am going present how to calculate these using SQL. This first part will set up the data and a view providing the ...