KJE.InvestmentReturnCalc=function(){this.MSG_EXCEEDS_LIMIT=KJE.parameters.get("MSG_EXCEEDS_LIMIT","Investment total exceeds 120 trillion.");this.MSG_INFLATION_BEFORE=KJE.parameters.get("MSG_INFLATION_BEFORE","before");this.MSG_INFLATION_AFTER=KJE.parameters.get("MSG_INFLATION_AFTER","after");this.LBL_INFLATION_BEFORE=KJE.parameters.get("LBL_INFLATION_BEFORE","");this.LBL_INFLATION_AFTER=KJE.parameters.get("LBL_INFLATION_AFTER"," after inflation");this.MSG_INFLATION_CONTRIBUTION_NOTE=KJE.parameters.get("MSG_INFLATION_CONTRIBUTION_NOTE"," and are increased with inflation");this.MSG_NO_INFLATION_CONTRIBUTION_NOTE=KJE.parameters.get("MSG_NO_INFLATION_CONTRIBUTION_NOTE","");this.catsBold=new Array(3);this.cats=new Array(100);var a=this.cats;for(var b=0;b<100;b++){a[b]=""+b}this.sSchedule=new KJE.Repeating()};KJE.InvestmentReturnCalc.prototype.clear=function(){this.YEARS=0;this.RATE_OF_RETURN=0;this.INITIAL_INVESTMENT=0;this.INFLATION_RATE=0;this.PERIODIC_INVESTMENT=0;this.TAX_RATE=0;this.SHOW_VALUE_AFTER_INFLATION=0;this.ADJUST_ANNUAL_INVESTMENT_FOR_INFLATION=0;this.DEPOSIT_FREQUENCY_INDEX=KJE.Default.DEPOSIT_ANNUAL};KJE.InvestmentReturnCalc.prototype.calculate=function(z){var l=KJE;var c=KJE.Default.DEPOSIT_VALUE[this.DEPOSIT_FREQUENCY_INDEX];var i=this.YEARS;var h=this.RATE_OF_RETURN;var a=this.INITIAL_INVESTMENT;var g=this.INFLATION_RATE;var s=this.PERIODIC_INVESTMENT;var f=s*c;var x=this.TAX_RATE;var k=this.SHOW_VALUE_AFTER_INFLATION;var o=this.ADJUST_ANNUAL_INVESTMENT_FOR_INFLATION;var r=0;var q=0;var u=0;var d=0;var p=Math.round(i+1);this.DF_CAPITAL=KJE.FloatArray(p);this.DF_SIMPLE_INTEREST=KJE.FloatArray(p);this.DF_COMPOUND_INTEREST=KJE.FloatArray(p);this.DF_TOTAL=KJE.FloatArray(p);this.DF_ANNUAL_CONTRIBUTION=KJE.FloatArray(p);this.DF_TAXES=KJE.FloatArray(p);this.DF_SIMPLE_INTEREST_LINE=KJE.FloatArray(p);if(z){var m=this.sSchedule;m.clearRepeat();m.addHeader(m.sReportCol("
Year",1),m.sReportCol("Annual
investment",2),(!KJE.bHT?m.sReportCol("
Taxes",3):null),m.sReportCol("
Net Return",4),m.sReportCol("
Total",5))}var y=h/100;var v=KJE.ROR_PERIOD(y,c);var j=x/100;var w=g/100;for(var t=0;t
0){this.DF_ANNUAL_CONTRIBUTION[t]=KJE.FV_AMT(w,t-1,f)}else{this.DF_ANNUAL_CONTRIBUTION[t]=f}var e=KJE.FV_BEGIN(v,c,this.DF_ANNUAL_CONTRIBUTION[t]/c)-this.DF_ANNUAL_CONTRIBUTION[t];var b=(d*y)+e;this.DF_TAXES[t]=b*j;q+=(u*y+e)*(1-j);u+=this.DF_ANNUAL_CONTRIBUTION[t];d=d+this.DF_ANNUAL_CONTRIBUTION[t]+b-this.DF_TAXES[t];r=d-q-u}if(k>0){this.DF_CAPITAL[t]=KJE.NPV_AMT(w,t,u);this.DF_TOTAL[t]=KJE.NPV_AMT(w,t,d);this.DF_SIMPLE_INTEREST[t]=KJE.NPV_AMT(w,t,q);this.DF_COMPOUND_INTEREST[t]=KJE.NPV_AMT(w,t,r);this.DF_ANNUAL_CONTRIBUTION[t]=KJE.NPV_AMT(w,t,this.DF_ANNUAL_CONTRIBUTION[t]);this.DF_TAXES[t]=KJE.NPV_AMT(w,t,this.DF_TAXES[t])}else{this.DF_CAPITAL[t]=u;this.DF_SIMPLE_INTEREST[t]=q;this.DF_COMPOUND_INTEREST[t]=r;this.DF_TOTAL[t]=d}this.DF_SIMPLE_INTEREST_LINE[t]=this.DF_SIMPLE_INTEREST[t]+this.DF_CAPITAL[t];if(z){m.addRepeat(l.number(t),l.dollars(this.DF_ANNUAL_CONTRIBUTION[t],2),(!KJE.bHT?l.dollars(this.DF_TAXES[t],2):null),l.dollars(this.DF_TOTAL[t]-(t>0?this.DF_TOTAL[t-1]:this.DF_CAPITAL[t])-this.DF_ANNUAL_CONTRIBUTION[t],2),l.dollars(this.DF_TOTAL[t],2))}}if(k>0){u=KJE.NPV_AMT(w,i,u);d=KJE.NPV_AMT(w,i,d);q=KJE.NPV_AMT(w,i,q);r=KJE.NPV_AMT(w,i,r)}if(d>120000000000000){throw (this.MSG_EXCEEDS_LIMIT)}this.catsBold[0]=""+l.dollars(q);this.catsBold[1]=""+l.dollars(r);this.catsBold[2]=""+l.dollars(u);this.COMPOUNDED_INTEREST_RETURN=r;this.SIMPLE_INTEREST_RETURN=q;this.TOTAL_INVESTED_CAPITAL=u;this.INVESTMENT_FINAL_TOTAL=d;this.ANNUAL_INVESTMENTS=f;this.RATE_AFTER_TAX_AND_INFLATION=((y)*(1-j))-w};KJE.InvestmentReturnCalc.prototype.formatReport=function(b){var c=KJE;var a=this.iDecimal;var d=b;d=KJE.replace("YEARS",c.number(this.YEARS),d);d=KJE.replace("RATE_OF_RETURN",c.percent(this.RATE_OF_RETURN/100,1),d);d=KJE.replace("INITIAL_INVESTMENT",c.dollars(this.INITIAL_INVESTMENT,2),d);d=KJE.replace("INFLATION_RATE",c.percent(this.INFLATION_RATE/100,2),d);d=KJE.replace("ANNUAL_INVESTMENTS",c.dollars(this.ANNUAL_INVESTMENTS,2),d);d=KJE.replace("PERIODIC_INVESTMENT",c.dollars(this.PERIODIC_INVESTMENT,2),d);d=KJE.replace("DEPOSIT_FREQUENCY",KJE.Default.DEPOSIT_SELECTIONS[this.DEPOSIT_FREQUENCY_INDEX],d);d=KJE.replace("TAX_RATE",c.percent(this.TAX_RATE/100,1),d);d=KJE.replace("RATE_AFTER_TAX_AND_INFLATION",c.percent(this.RATE_AFTER_TAX_AND_INFLATION,1),d);d=KJE.replace("COMPOUNDED_INTEREST_RETURN",c.dollars(this.COMPOUNDED_INTEREST_RETURN,2),d);d=KJE.replace("SIMPLE_INTEREST_RETURN",c.dollars(this.SIMPLE_INTEREST_RETURN,2),d);d=KJE.replace("TOTAL_INVESTED_CAPITAL",c.dollars(this.TOTAL_INVESTED_CAPITAL,2),d);d=KJE.replace("MSG_INVESTMENT_FINAL_TOTAL",c.dollars(this.INVESTMENT_FINAL_TOTAL,2)+(this.SHOW_VALUE_AFTER_INFLATION?this.LBL_INFLATION_AFTER:this.LBL_INFLATION_BEFORE),d);d=KJE.replace("INVESTMENT_FINAL_TOTAL",c.dollars(this.INVESTMENT_FINAL_TOTAL,2),d);d=KJE.replace("SHOW_VALUE_AFTER_INFLATION",c.yesno(this.SHOW_VALUE_AFTER_INFLATION),d);d=KJE.replace("ADJUST_ANNUAL_INVESTMENT_FOR_INFLATION",c.yesno(this.ADJUST_ANNUAL_INVESTMENT_FOR_INFLATION),d);d=KJE.replace("MSG_INFLATION_ACCOUNT",(this.SHOW_VALUE_AFTER_INFLATION?this.MSG_INFLATION_AFTER:this.MSG_INFLATION_BEFORE),d);d=KJE.replace("MSG_INFLATION_ACCOUNT",(this.SHOW_VALUE_AFTER_INFLATION?this.MSG_INFLATION_AFTER:this.MSG_INFLATION_BEFORE),d);d=KJE.replace("MSG_INFLATION_CONTRIBUTION_NOTE",(this.ADJUST_ANNUAL_INVESTMENT_FOR_INFLATION?this.MSG_INFLATION_CONTRIBUTION_NOTE:this.MSG_NO_INFLATION_CONTRIBUTION_NOTE),d);this.MSG_INFLATION_CONTRIBUTION_NOTE=KJE.parameters.get("MSG_INFLATION_CONTRIBUTION_NOTE"," and are increased with inflation");d=d.replace("**REPEATING GROUP**",this.sSchedule.getRepeat());this.sSchedule.clearRepeat();return d};KJE.Default.DEPOSIT_ANNUAL=4;KJE.Default.DEPOSIT_MONTHLY=2;KJE.Default.DEPOSIT_WEEKLY=0;KJE.Default.DEPOSIT_SELECTIONS=KJE.parameters.get("ARRAY_DEPOSIT_SELECTIONS",["per week","bi-weekly","per month","per quarter","per year"]);KJE.Default.DEPOSIT_PERIODS=KJE.parameters.get("ARRAY_DEPOSIT_PERIODS",["Weeks","Bi-weeks","Months","Quarters",""]);KJE.Default.DEPOSIT_VALUE=KJE.parameters.get("ARRAY_DEPOSIT_VALUE",[52,26,12,4,1]);KJE.Default.DEPOSIT_INDEX=KJE.parameters.get("ARRAY_DEPOSIT_INDEX",[0,1,2,3,4]);KJE.CalcName="Investment Returns";KJE.CalcType="InvestmentReturn";KJE.CalculatorTitleTemplate="Investment totals KJE1 after KJE2 years.";KJE.parseInputs=function(a){var b=KJE.getDropBox("DEPOSIT_FREQUENCY",KJE.parameters.get("DEPOSIT_FREQUENCY",KJE.Default.DEPOSIT_ANNUAL),KJE.Default.DEPOSIT_INDEX,KJE.Default.DEPOSIT_SELECTIONS);a=KJE.replace("**DEPOSIT_FREQUENCY**",b,a);return a};KJE.initialize=function(){KJE.CalcControl=new KJE.InvestmentReturnCalc();KJE.GuiControl=new KJE.InvestmentReturn(KJE.CalcControl)};KJE.InvestmentReturn=function(f){var e=KJE;var c=KJE.gLegend;var b=KJE.inputs.items;KJE.NumberSlider("YEARS","Years",1,100,0);KJE.InvestRateSlider("RATE_OF_RETURN","Rate of return");KJE.DollarSlider("INITIAL_INVESTMENT","Initial investment",0,10000000,0,0,3);KJE.InflationRateSlider("INFLATION_RATE","Expected inflation rate");KJE.DollarSlider("ANNUAL_INVESTMENTS","Additional investment",0,10000000,0,0,1);KJE.PercentSlider("TAX_RATE","Tax rate",0,75,1);KJE.Checkbox("SHOW_VALUE_AFTER_INFLATION","Show values after inflation",false,"Check here to show all totals after inflation");KJE.Checkbox("ADJUST_ANNUAL_INVESTMENT_FOR_INFLATION","Inflation adjustment",false,"Check here to increase your annual investments with inflation");KJE.DropBox("DEPOSIT_FREQUENCY","Frequency");this.MSG_COMPOUND_INTEREST=KJE.parameters.get("MSG_COMPOUND_INTEREST","Compound interest")+" ";this.MSG_SIMPLE_INTEREST=KJE.parameters.get("MSG_SIMPLE_INTEREST","Simple interest")+" ";this.MSG_CAPITAL=KJE.parameters.get("MSG_CAPITAL","Invested capital")+" ";var a=KJE.gNewGraph(KJE.gLINE,"GRAPH1",true,false,KJE.colorList[1],KJE.parameters.get("MSG_GRAPH_TITLE","Annual Investment Returns"));a._legend._iOrientation=(c.TOP_RIGHT);a._iArea=KJE.gGraphLine.AREA_ALL;var d=KJE.parameters.get("MSG_DROPPER_TITLE","Investment returns Inputs:");KJE.addDropper(new KJE.Dropper("INPUTS",true,d,d),KJE.colorList[0])};KJE.InvestmentReturn.prototype.setValues=function(b){var a=KJE.inputs.items;b.SHOW_VALUE_AFTER_INFLATION=a.SHOW_VALUE_AFTER_INFLATION.getValue();b.ADJUST_ANNUAL_INVESTMENT_FOR_INFLATION=a.ADJUST_ANNUAL_INVESTMENT_FOR_INFLATION.getValue();b.INITIAL_INVESTMENT=a.INITIAL_INVESTMENT.getValue();b.PERIODIC_INVESTMENT=a.ANNUAL_INVESTMENTS.getValue();b.YEARS=a.YEARS.getValue();b.RATE_OF_RETURN=a.RATE_OF_RETURN.getValue();b.INFLATION_RATE=a.INFLATION_RATE.getValue();b.TAX_RATE=a.TAX_RATE.getValue();b.DEPOSIT_FREQUENCY_INDEX=(a.DEPOSIT_FREQUENCY._inputType==KJE.TypeNone?KJE.Default.DEPOSIT_ANNUAL:a.DEPOSIT_FREQUENCY.getValue())};KJE.InvestmentReturn.prototype.refresh=function(e){var d=KJE;var c=KJE.gLegend;var b=KJE.inputs.items;var a=KJE.gGraphs[0];KJE.setTitleTemplate(d.dollars(e.INVESTMENT_FINAL_TOTAL),d.number(e.YEARS));a.removeAll();a.setGraphCategories(e.cats);a.add(new KJE.gGraphDataSeries(e.DF_TOTAL,this.MSG_COMPOUND_INTEREST,a.getColor(3),e.catsBold[1],this.MSG_COMPOUND_INTEREST+" "+KJE.MSG_YEAR_LBL));a.add(new KJE.gGraphDataSeries(e.DF_SIMPLE_INTEREST_LINE,this.MSG_SIMPLE_INTEREST,a.getColor(2),e.catsBold[0],this.MSG_SIMPLE_INTEREST+" "+KJE.MSG_YEAR_LBL));a.add(new KJE.gGraphDataSeries(e.DF_CAPITAL,this.MSG_CAPITAL,a.getColor(1),e.catsBold[2],this.MSG_CAPITAL+" "+KJE.MSG_YEAR_LBL));a.paint()};KJE.InputScreenText="
Years | YEARS |
---|---|
Rate of return | RATE_OF_RETURN |
Initial investment | INITIAL_INVESTMENT |
Additional investments | PERIODIC_INVESTMENT DEPOSIT_FREQUENCY |
Inflation rate | INFLATION_RATE |
Tax rate | TAX_RATE |
Net return after taxes and inflation | RATE_AFTER_TAX_AND_INFLATION |
Adjust annual investment for inflation? | ADJUST_ANNUAL_INVESTMENT_FOR_INFLATION |
Show all values after inflation? | SHOW_VALUE_AFTER_INFLATION |
Compounded interest return | COMPOUNDED_INTEREST_RETURN |
---|---|
Simple interest return | SIMPLE_INTEREST_RETURN |
Total invested capital | TOTAL_INVESTED_CAPITAL |
Investment final total | MSG_INVESTMENT_FINAL_TOTAL |