How to calculate CAGR for shares bought at different times? I have bought shares at following times:
    Buy - 5th March 2006 - Price > $ 70 - Quantity - 10
    Buy - 2nd May 2007 -   Price > $ 33.5 - Quantity - 100
    Buy - 1st Oct 2008 -   Price > $ 57.7 - Quantity - 17
    Buy - 5th Jan 2012 -   Price > $ 94.8 - Quantity - 27

Assuming current share price to be $ 100, how can I find CAGR (cumulative) for the total investment I made till now?
PS: Sorry but I am unable to format this. Adding two spaces does not seem to add line breaks. 
 A: If you had made just one investment, calculating the CAGR is not hard.  Say you bought it for 100, held it 30 months (or 5/2 years), and sold it for 200.  r, the CAGR, would be found by solving $100(1+r)^{\frac 52}=200$, which gives $1+r=2^{\frac 25}\approx 1.32$, so the CAGR is about 32%.  If you have multiple buys (and even multiple sales) you want a common $r$ that makes it come out.  Say you bought some for 100 at day 0, some more for 200 18 months later, it is now 42 months in (7/2 years) and worth 500.  The first batch has been compounding for 7/2 years, the second for 2, so we solve $100(1+r)^{\frac 72}+200(1+r)^2=500$.  Usually you cannot solve for $r$ algebraically, you have to do it numerically.  Excel has the function IRR for this.  I get $r \approx 0.222$ in this example.  If you have sales along the way, just enter them as negative investments.  If you do, there may be more than one value of $r$ that satisfies the equation.
A: Your stock portfolio works just like a mini-fund.
You define an initial amount of money (Assets Under Management, AUM) equal to the 1st position (Price*Qty). Your NAV is 100. The gains on your position would be your returns, until you add a new position.
Each time you add your position, your AUM sees capital inflows. The gains on all the positions open would be spread over a bigger AUM in the return calculation.
The returns for the periods determine the evolution of your NAV.
The CAGR over a chosen time window is just the standard CAGR formula applied to NAV(t-1), NAV(t).
Hope this helps understand the general idea.
