theorangedog.net

Tag: Valuation

Private Equity Valuation Guidelines

by theorangedog on Jan.02, 2008, under Skills

Via Nuclear Phynance, I came across this pdf that was developed as a set of “international guidelines” for valuing investments from a private equity or VC point of view.

The methodologies they introduce include:

  • Price of recent investment
  • Earnings multiple
  • Net assets
  • Discounted cash flows or earnings (of Underlying Business)
  • Discounted cash flows (from the Investment)
  • Industry valuation benchmarks

I would say the most common for negotiation and discussion purposes are Earnings multiple and DCF of Underlying business, which usually are estimated or calculated to be near each other.  This is generally caused by the use of a hurdle rate in the discounting process.

This is a very high level document with no detail on executing methodologies (IP = paycheck), and will provide a nice introduction and overview for someone unfamiliar with general practices.

Leave a Comment :, , more...

Valuing Individual Line Items

by theorangedog on Dec.18, 2007, under Skills

In a recent post, Will Cazalet mentioned valuing companies by looking at what the market pays for line items. So, why couldn’t one just regress enterprise value on a set of line item variables to try to determine the fair price for other companies?

Plenty of considerations enter when looking at a model like this:
1. Which line items should be included?
2. Should the companies be segmented by size?
3. Should the companies be segmented by type/industry?
4. Should the model extend past line items to include qualitative factors, such as whether or not an independent statement says the company may not continue as a going concern?
5. Should business factors, such as the exclusion of the cash line item, be considered?

I’ll look at a simple model that uses the components of the DuPont ROE as independent variables.

ROE = (frac{NI}{REV})(frac{REV}{Assets})(frac{Assets}{Sh Eq})

So, a simple model, based upon these variables, could be:

EV = alpha + beta_{1}(NI) + beta_{2}(REV) + beta_{3}(Assets) + beta_{4}(SE) + epsilon

I am building a small set of sample data and will regress this, filling in the equation, determine whether or not it is remotely robust, and then applying it to an out-of-sample set. This is very incomplete testing - its just mostly for my own practice.

Leave a Comment :, , , more...

Code Snippet Test

by theorangedog on Nov.04, 2007, under Skills

I installed the Code Snippet (codesnippet) plugin, so that any copied and pasted code looks nice.

A sample of a simple bond value calculator that I wrote a few months back is below:

  1. // this is a test to create a program that calculates bond prices
  2.  
  3. #include <iostream>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7. double calc(double coupon, double numyears, double numpmts, double parval, double rdisc);
  8.  
  9. int main()
  10. {
  11.         double coupon, numyears, numpmts, parval, rdisc;
  12.         cout << “Enter the coupon payment: “;
  13.         cin >> coupon;
  14.         cout << “nEnter the number of years to maturity: “;
  15.         cin >> numyears;
  16.         cout << “nEnter the number of payments per year: “;
  17.         cin >> numpmts;
  18.         cout << “nEnter the par value: “;
  19.         cin >> parval;
  20.         cout << “nEnter your discount rate: “;
  21.         cin >> rdisc;
  22.         cout << “n”;
  23.  
  24.         calc(coupon, numyears, numpmts, parval, rdisc);
  25.  
  26.         cout << “nnOnly a sucker would pay more than that.nn”;
  27.         return 0;
  28. }
  29.  
  30. double calc( double coupon, double numyears, double numpmts, double parval, double rdisc)
  31. {
  32.         double rdiscbynumpmts, numperiods, value, pvfactor;
  33.  
  34.         rdiscbynumpmts = rdisc / numpmts;
  35.         numperiods = numyears * numpmts;
  36.         pvfactor = pow((1 + rdiscbynumpmts), numperiods);
  37.        
  38.         value = (coupon * ((1 - (1 / pvfactor))/rdiscbynumpmts)) + (parval * (1 / pvfactor));
  39.         cout << “The value of this bond is: “ << value;
  40.         return 0;
  41. }

And for the record, I realize that this may not be the most efficient code… its just an example.

3 Comments :, more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Try Google.

Endurance

The best long distance runners eat raw meat, run naked, and sleep in the snow.