It is not a perpetuity, it looks like an ordinary annuity with 60 payments in amount of 71706.70 having a present value of 3 500 000
As far as I know, you can only find the rate using iterative methods
Using the tadRATE function https://github.com/FinancialEngineer/tadJS/
tadJS.tadRATE( 60, -71706.70, 3500000, 0 )
i = 0.007033437953072039
i = 0.7033%
0.7033% is the monthly rate
The annual rate is
i x 12 = 0.084401255436864468
i x 12 = 8.44%
The annual effective yield is
(1+i)^12 - 1 = ( 1 + 0.007033437953072039 )^12 - 1
(1+i)^12 - 1 = ( 1.007033437953072039 )^12 - 1
(1+i)^12 - 1 = 0.087743997569067497701061360044075
(1+i)^12 - 1 = 8.77%
Your formula is bit messed up, here is the edited version of the formula for present value of ordinary annuity
3 500 000 = 71706.70 [ 1-(1+i)^-60] / i
You may want to see the complete formula for present value of ordinary annuity that has gradients as well
Present value of constant, growing, shrinking, increasing & decreasing annuity
formula for present value of annuity due
3 524 617 = 71706.70 (1+i) [ 1-(1+i)^-60] / i
formula for present value of ordinary perpetuity
10 195 114 = 71706.70 / i
formula for present value of perpetuity due
10 266 820 = 71706.70 (1+i) / i
formula for present value of deferred ordinary annuity by 12 months
3 217 669 = 71706.70 (1+i)^-12 [ 1-(1+i)^-60] / i
formula for present value of deferred annuity due by 12 months
3 240 300 = 71706.70 (1+i)^-11 [ 1-(1+i)^-60] / i
formula for present value of deferred ordinary perpetuity by 12 months
9 372 715 = 71706.70 (1+i)^-12 / i
formula for present value of deferred perpetuity due by 12 months
9 505 022 = 71706.70 (1+i)^-11 / i
To complete the argument
the formula for present value of a constant, growing and shrinking annuity is
whereCode:PV = R (1+i*type) (1+i)^-d [ 1 - (1+g)^n . (1+i)^-n ] / [ i - g ]
R = annuity payment
i = interest rate
g = growth or shrink rate
type = 0 for ordinary annuity, 1 for annuity due
d = time period by which to defer the annuity
n = number of annuity payments
for constant annuity payments g=0 thus
the formula for present value of a constant, growing and shrinking perpetuity is derived by taking the limit as N tends to ∞inityCode:PV = R (1+i*type) (1+i)^-d [ 1 - (1+0)^n . (1+i)^-n ] / [ i - 0 ] PV = R (1+i*type) (1+i)^-d [ 1 - (1+i)^-n ] /i
the formula for present value of a constant, increasing and decreasing annuity isCode:PV = R (1+i*type) (1+i)^-d [ 1 - (1+g)^∞ . 1 / (1+i)^∞ ] / [ i - g ] PV = R (1+i*type) (1+i)^-d [ 1 - ∞ . 1 / ∞ ] / [ i - g ] PV = R (1+i*type) (1+i)^-d [ 1 - ∞ . 0 ] / [ i - g ] PV = R (1+i*type) (1+i)^-d [ 1 - 0 ] / [ i - g ] PV = R / [ i - g ] . [ (1+i*type) (1+i)^-d ]
whereCode:PV = R (1+i*type) (1+i)^-d [ 1 - (1+i)^-n ]/i + Q/i [ {(1+i*type) (1+i)^-d [ 1 - (1+i)^-n ]/i} - { n . (1+i)^-n } ]
R = annuity payment
i = interest rate
Q = money amount by which annuity payment increases or decreases per period
type = 0 for ordinary annuity, 1 for annuity due
d = time period by which to defer the annuity
n = number of annuity payments
for constant annuity payment Q = 0 thus
the formula for present value of a constant, increasing and decreasing perpetuity is derived by taking the limit as N tends to ∞inityCode:PV = R (1+i*type) (1+i)^-d [ 1 - (1+i)^-n ]/i + 0 / i [ {(1+i*type) (1+i)^-d [ 1 - (1+i)^-n ]/i} - { n . (1+i)^-n } ] PV = R (1+i*type) (1+i)^-d [ 1 - (1+i)^-n ]/i
Code:PV = R (1+i*type) (1+i)^-d [ 1 - 1/(1+i)^∞ ]/i + Q/i [ {(1+i*type) (1+i)^-d [ 1 - 1/(1+i)^∞ ]/i} - { ∞ . 1 / (1+i)^∞ } ] PV = R (1+i*type) (1+i)^-d [ 1 - 1/∞ ]/i + Q/i [ {(1+i*type) (1+i)^-d [ 1 - 1/∞ ]/i} - { ∞ . 1 / ∞ } ] PV = R (1+i*type) (1+i)^-d [ 1 - 0 ]/i + Q/i [ {(1+i*type) (1+i)^-d [ 1 - 0 ]/i} - { ∞ . 0 } ] PV = R (1+i*type) (1+i)^-d [ 1 ]/i + Q/i [ {(1+i*type) (1+i)^-d [ 1 ]/i} - { 0 } ] PV = R (1+i*type) (1+i)^-d / i + Q/i [ {(1+i*type) (1+i)^-d /i } ] PV = R/i [(1+i*type) (1+i)^-d] + Q/(i^2) [(1+i*type) (1+i)^-d]
Just finished me 7th beer and I get the impression that either my calculator is drunk or I am.
Anyways, get more like i = .00703333825736278
According to the Google calculator,
71,706.70*[1-(1.007033437953072039)^(-60)]/.007033437953072039
=3,499,990.15804
------------------------------------------------------------------------------------------------------
Just took a shot of tequila to let it sink in for while and yet I get the same results. I must really really be enchanted. Cheers.
@JonahJust finished me 7th beer and I get the impression that either my calculator is drunk or I am.
Anyways, get more like i = .00703333825736278
According to the Google calculator,
71,706.70*[1-(1.007033437953072039)^(-60)]/.007033437953072039
=3,499,990.15804
You and your calculator are both sober, nothing is wrong
It's partly my fault, I write so much code in a day and then forget to check for errors and omissions in the code.
It seems like the tadRATE function in tadJS library had some omissions in calculations
Now that I fixed it, I get an IRR of
i = 0.007033338257374002
Checking the results
Here is correct codeCode:71,706.70*[1-(1.007033338257374002)^-60]/0.007033338257374002 71,706.70*[1-0.65670315464511959772966724995381]/0.007033338257374002 71,706.70*0.34329684535488040227033275004619/0.007033338257374002 24616.683900808802541478069407737/0.007033338257374002 3,499,999.99
Code:var tadJS = { tadAEY: function(r, c) { if (r==0.0) return 0.0; if (c==0.0) return Math.exp(r) - 1; else return Math.pow(1.0+r*c, 1/c) - 1; }, tadFVIF: function(r, n, c) { c = (typeof c !== "undefined") ? c : 1; if (r==0.0) return 1.0; if (n==0.0) return 1.0; return Math.pow(1.0+this.tadAEY(r,c),n); }, tadPVIF: function(r, n, c) { c = (typeof c !== "undefined") ? c : 1; if (r==0.0) return 1.0; if (n==0.0) return 1.0; return Math.pow(1.0+this.tadAEY(r,c),-n); }, tadPVIFbar: function(r, n, c) { c = (typeof c !== "undefined") ? c : 1; if (r==0.0) return -n; if (n==0.0) return 0.0; return -n * this.tadPVIF(r,n+c,c); }, tadPVIFA: function(r, n, c) { c = (typeof c !== "undefined") ? c : 1; if (r==0.0) return 1.0; if (n==0.0) return 0.0; return (1.0-this.tadPVIF(r,n,c))/this.tadAEY(r,c); }, tadPVIFAbar: function(r, n, c) { c = (typeof c !== "undefined") ? c : 1; if (r==0.0) return 1.0; if (n==0.0) return 0.0; return ( this.tadAEY(r,c) * -this.tadPVIFbar(r,n,c) - (1.0-this.tadPVIF(r,n,c)*this.tadFVIF(r,1-c,c) ) ) / (this.tadAEY(r,c)*this.tadAEY(r,c)); }, tadRATE: function( nper, pmt, pv, fv, atype, c, guess) { guess = (typeof guess === "undefined") ? 0.10 : guess; c = (typeof c !== "undefined") ? c : 1; atype = (typeof atype !== "undefined") ? atype : 0; pmt = (typeof pmt !== "undefined") ? pmt : 0; pv = (typeof pv !== "undefined") ? pv : 0; fv = (typeof fv !== "undefined") ? fv : 0; var i; var x = 0.0; var x0 = guess; var f; var fbar; for (i=0; i<100; i++) { f = pv + pmt * this.tadPVIFA(x0, nper,c) + fv * this.tadPVIF(x0, nper,c); fbar = pmt * this.tadPVIFAbar(x0, nper,c) + fv * this.tadPVIFbar(x0, nper,c); if (fbar == 0.0) return null; else x = x0 - f/fbar; if ( Math.abs(x-x0) < 0.000000001 ) return x; x0 = x; }; return null; } };
The formulas I presented only allow for the trivial of present value calculations whereas the actual PV calculation are quite involved
As a teaser, how about finding present value of series of payments where each annuity payment is itself an annuity. And some of these payments go on forever as in a perpetuity. The odd option is to allow annuity payments even after a perpetual payment
But then there may be a schedule of discount rates rather than a single discount rate.
And the payments may inflate or deflate per period as compared to constant annuity payments.
For the global investor, the income in foreign denominated currency has to be converted to local currency to find the value of such an investment thus usage of exchange rates would be needed.
No matter if they are socialist Americans or capitalist Russians or hybrid Chinese, they all must pay the extortion to the State to stay in business thus the need for applying tax rates.
Interest may be compounded on different frequencies such as annually, semi-annually, quarterly, monthly, fortnightly, weekly, daily, infinite or continuous and even biennially or triennially.
The length of payment periods may be other than a year such as half-yearly, quarterly, monthly, fortnightly, weekly, daily, and even biennially or triennially.
The cash flows may be concentrated at any given time of the year other than the full year, thus the need to apply various discounting conventions such as 1st Qtr, mid-year, 3rd Qtr, full-year, biennial, triennial and so on.
The borrowers may not be able to keep the promise of full-payment thus a need to apply possible hair-cuts on income.
Saints are rarely found in finance, thus the possibility of rigging the discount rate to con money from the business partner
Now what you have is 13 attributes of an investment and N such attributes making it a 13 X N matrix of data from which to find the present value
The table shown below displays the details of an investment that has a present value of 6,883.43
Finding the present value is possible using tadNPV function in tadXL v3.0 add-in for Excel 2007, 2010 and 2013
Download it here so you can find the present value yourself
http://finance.thinkanddone.com/32_b....0_en_demo.zip
Rates 8% 7% 6% 5% 4% 3% 2% 1% Growth 1% 2% 3% 4% 5% 6% 7% 8% Exchange_Rates 1 1 1 1 1 1 1 1 Tax_Rates 30% 31% 32% 33% 34% 35% 36% 37% Cash_Flows (100) 200 300 (50) 400 500 600 700 Adjust_for_inflation 0 0 0 0 0 0 0 0 Frequencies 10 365 24 365 INF 260 INF 5,200 Types 1 1 1 1 1 1 1 1 Compoundings =1/4 =1/365 =1/12 =1/365 1 =1/26 1 =1/52 Periods =1/4 =1/365 =1/12 =1/365 1 =1/26 1 =1/52 Concentrations 1 0.5 2 10 1 0.5 1 0.75 Hair_Cuts 0% 20% 20% 20% 0% 20% 20% 20% Rate_Rigged_By 0% 15% 15% 15% 0% 15% 15% 15%
Hello Scienceboy
It would be waste of time if I did went ahead and attempted to find "i"
Even if I did find "i", I wouldn't be the first one to do so, right!
Scienceboy, you had me waste all my life for no reason at all
I see no point in continue to live my life as it is at the moment and had been like this for the last 24 years
I don't even no how to define my own identity. Sent to a land who have continuously ensured that I fail rather than succeed
Sorry Scienceboy, you should have selected someone else for the job.
I think I am about to take an eternal break from life.