KJE.Default.FREQ_WEEKLY=0;KJE.Default.FREQ_EVERYOTHER=1;KJE.Default.FREQ_2XMONTHLY=2;KJE.Default.FREQ_MONTHLY=3;KJE.Default.FREQ_QUARTERLY=4;KJE.Default.FREQ_SEMIANNUAL=5;KJE.Default.FREQ_ANNUAL=6;KJE.Default.FREQUENCY_INDEXES=[KJE.Default.FREQ_WEEKLY,KJE.Default.FREQ_EVERYOTHER,KJE.Default.FREQ_2XMONTHLY,KJE.Default.FREQ_MONTHLY,KJE.Default.FREQ_QUARTERLY,KJE.Default.FREQ_SEMIANNUAL,KJE.Default.FREQ_ANNUAL];KJE.Default.FREQUENCY_TYPES=KJE.parameters.get("ARRAY_FREQUENCY_TYPES",["weekly","every other week","twice monthly","monthly","quarterly","semi-annual","annual"]);KJE.Default.FREQUENCY_TYPES_CAP=KJE.parameters.get("ARRAY_FREQUENCY_TYPES_CAP",["Weekly","Every other week","Twice monthly","Monthly","Quarterly","Semi-annual","Annual"]);KJE.Default.FREQUENCY_TYPES_LBL=KJE.parameters.get("ARRAY_FREQUENCY_TYPES_LBL",["week","payment","payment","month","quarter","payment","annual payment"]);KJE.Default.FREQUENCY_TYPES_LBL_PLURAL=KJE.parameters.get("ARRAY_FREQUENCY_TYPES_LBL_PLURAL",["weeks","payments","payments","months","quarters","payments","annual payments"]);KJE.Default.FREQUENCY_ANNUAL_PERIODS=[52,26,24,12,4,2,1];KJE.InvestmentAccountCalc=function(){this.MSG_WITHDRAW_RESULT_DESC=KJE.parameters.get("MSG_WITHDRAW_RESULT_DESC","A distribution of WITHDRAW_AMOUNT_CALC WITHDRAW_FREQUENCY runs out in WITHDRAW_LENGTH_DESC.");this.WITHDRAW_RESULT_DESC="";this.INFLATION_PER_PERIOD=false;this.WITHDRAW_YEARS_TXT=null;this.WITHDRAW_RUNOUT_YEARS=0;this.WITHDRAW_RUNOUT_PERIODS=0;this.WITHDRAW_RUNOUT_FRACTION=0;this.MAX_WITHDRAW_YEARS=100;this.MSG_PLUS=KJE.parameters.get("MSG_PLUS","plus");this.MSG_PERIOD=KJE.parameters.get("MSG_PERIOD","payment");this.MSG_PERIODS=KJE.parameters.get("MSG_PERIODS","payments");this.WITHDRAW_LENGTH_DESC="";this.MSG_EXTRA_NOTE="";this.MSG_CONTRIB_ADJUST_FOR_INFLATION=KJE.parameters.get("MSG_CONTRIB_ADJUST_FOR_INFLATION","Your contributions were increased annually at a projected MSG_INFLATION annual rate of inflation.");this.MSG_WITHDRAW_ADJUST_FOR_INFLATION=KJE.parameters.get("MSG_WITHDRAW_ADJUST_FOR_INFLATION","Your withdrawals were increased annually at a projected MSG_INFLATION rate of inflation.");this.MSG_WITHDRAW_ADJUST_FOR_INFLATION_FROM_SAVINGS=KJE.parameters.get("MSG_WITHDRAW_ADJUST_FOR_INFLATION_FROM_SAVINGS","In today's dollars your withdrawal would be WITHDRAW_AMOUNT_CALC. To have the same purchasing power, after CONTRIB_TOTAL_YEARS years of inflation during your contribution phase, your first withdrawal will actually be WITHDRAW_AMOUNT.");this.iDecimal=KJE.parameters.get("DECIMALS",2);this.IRA_MAXIMUMS=[5500,5500,5500,5500];this.IRA_MAXIMUMS_CATCHUP=1000;this.IRA_CATCHUP_AGE_START=50;this.CONTRIB_BEGIN_PERIOD=true;this.WITHDRAW_BEGIN_PERIOD=true;this.WITHDRAW_STARTING_BALANCE=0;this.WITHDRAW_ANNUAL_ROR_ATAX=0;this.WITHDRAW_YEARS=0;this.WITHDRAW_TYPE=KJE.InvestmentAccountCalc.WITHDRAW_ZERO_BALANCE;this.CONTRIB_TAX_RATE=0;this.CONTRIB_YEARS=0;this.CONTRIB_ADJUST_FOR_INFLATION=false;this.CONTRIB_AMOUNT=0;this.CONTRIB_FREQUENCY=KJE.Default.FREQ_MONTHLY;this.CONTRIB_ANNUAL_ROR=0;this.CURRENT_AGE=0;this.WITHDRAW_TAX_RATE=0;this.CONTRIBUTE_TO_MAXIMUM=false;this.WITHDRAW_FREQUENCY=KJE.Default.FREQ_ANNUAL;this.WITHDRAW_ADJUST_FOR_INFLATION=false;this.WITHDRAW_ADJUST_FOR_TAXES=false;this.INFLATION_RATE=0;this.CONTRIB_STARTING_BALANCE=0;this.CONTRIB_YEARS_TO_START=0;this.CONTRIB_YEARS_TO_END=0;this.WITHDRAW_AMOUNT=0;this.WITHDRAW_ANNUAL_ROR=0;this.WITHDRAW_REQUIRED_REMAINING_BALANCE=0;this.WITHDRAW_PERSERVATION_PERCENT=0;this.WITHDRAW_RUNOUT=0;this.DS_STARTING_BAL=null;this.DS_CONTRIBUTIONS=null;this.DS_WITHDRAWALS=null;this.DS_EARNINGS=null;this.DS_ENDING_BAL=null;this.DF_BALANCE=null;this.DF_STARTING_BAL=null;this.DF_CONTRIBUTIONS=null;this.DF_WITHDRAWALS=null;this.DF_EARNINGS=null;this.cats=null;this.CURRENT_YEAR=KJE.parameters.get("CURRENT_YEAR",1);this.ADVANCED_COUNT=KJE.parameters.get("ADVANCED_COUNT",0);if(this.ADVANCED_COUNT>0){this.ADVANCED_AMOUNT=KJE.FloatArray(this.ADVANCED_COUNT);this.ADVANCED_YEAR_START=KJE.IntArray(this.ADVANCED_COUNT);this.ADVANCED_YEAR_END=KJE.IntArray(this.ADVANCED_COUNT);this.ADVANCED_TABLE_ROW=KJE.parameters.get("ADVANCED_TABLE_ROW","
Additional withdrawal(-) or deposit(+) #ADVANCED_TABLE_ROW | ADVANCED_TABLE_CONTENT |
");this.ADVANCED_TABLE_CONTENT2=KJE.parameters.get("ADVANCED_TABLE_CONTENT2","ADVANCED_AMOUNT annually from ADVANCED_YEAR_START to ADVANCED_YEAR_END");this.ADVANCED_TABLE_CONTENT1=KJE.parameters.get("ADVANCED_TABLE_CONTENT1","ADVANCED_AMOUNT in ADVANCED_YEAR_START");this.sRowClass=KJE.parameters.get("ADVANCED_TABLE_ROW_CLASS","KJEEvenRow")}this.sSchedule=new KJE.Repeating()};KJE.InvestmentAccountCalc.prototype.clear=function(){this.ACCOUNT_TYPE=KJE.InvestmentAccountCalc.ACCT_OTHER;this.ACCOUNT_NAME="";this.ACCOUNT_SHORT_NAME="";this.WITHDRAW_PRESERVE_AMOUNT=0};KJE.InvestmentAccountCalc.prototype.calculate=function(M){var b=KJE;var e=false;var p=this.CURRENT_AGE;var q=this.INFLATION_RATE;var s=this.ACCOUNT_TYPE;var o=this.CONTRIBUTE_TO_MAXIMUM;var C=this.ACCOUNT_NAME;var E=this.ACCOUNT_SHORT_NAME;var U=this.CONTRIB_STARTING_BALANCE;var g=this.CONTRIB_AMOUNT;var t=KJE.Default.FREQUENCY_ANNUAL_PERIODS[this.CONTRIB_FREQUENCY];var ab=this.CONTRIB_ADJUST_FOR_INFLATION;var V=this.CONTRIB_TAX_RATE;var z=this.CONTRIB_ANNUAL_ROR;var B=this.CONTRIB_YEARS;var Q=this.CONTRIB_YEARS_TO_START;var u=this.CONTRIB_YEARS_TO_END;var v=this.WITHDRAW_YEARS;var x=this.WITHDRAW_TAX_RATE;var H=this.WITHDRAW_TYPE;var r=this.WITHDRAW_AMOUNT;var A=KJE.Default.FREQUENCY_ANNUAL_PERIODS[this.WITHDRAW_FREQUENCY];var w=this.WITHDRAW_ANNUAL_ROR;var n=this.WITHDRAW_PERSERVATION_PERCENT;var J=this.WITHDRAW_ADJUST_FOR_INFLATION;var c=this.WITHDRAW_ADJUST_FOR_TAXES;this.WITHDRAW_AMOUNT_TODAY=r;this.TOTAL_INTEREST=0;this.CONTRIB_TOTAL_INTEREST=0;this.CONTRIB_TOTAL_CONTRIBUTIONS=0;this.WITHDRAW_ENDING_BALANCE=0;this.WITHDRAW_TOTAL_INTEREST=0;this.WITHDRAW_TOTAL_WITHDRAWALS=0;this.WITHDRAW_TOTAL_WITHDRAWALS_AFTERTAX=0;var I=r;for(var aa=0;aa=Q-1&&aa<=(Q+B)-1){var L=0;var ac=0;for(var Z=0;Z0){for(var aa=0;aa=this.ADVANCED_YEAR_START[aa]&&m<=this.ADVANCED_YEAR_END[aa]){D+=this.ADVANCED_AMOUNT[aa]}}}for(var h=0;h0;h++){if(!this.WITHDRAW_BEGIN_PERIOD){K+=b.round(ad*S,2);ad+=b.round(ad*S,2)}if(h==0&&D!=0){a-=D;ad+=D;if(ad<=0){a+=ad;ad=0}}a+=O;ad-=O;if(ad<(O/2)){a+=ad;ad=0}if(J&&this.INFLATION_PER_PERIOD){O*=1+G}if(this.WITHDRAW_BEGIN_PERIOD){K+=b.round(ad*S,2);ad+=b.round(ad*S,2)}if(ad<=0&&this.WITHDRAW_YEARS_TXT==null){this.WITHDRAW_RUNOUT=X-this.CONTRIB_TOTAL_YEARS+1;this.WITHDRAW_RUNOUT_YEARS=X-this.CONTRIB_TOTAL_YEARS;this.WITHDRAW_RUNOUT_PERIODS=h+1;if(this.WITHDRAW_RUNOUT_PERIODS==A){this.WITHDRAW_RUNOUT_PERIODS=0;this.WITHDRAW_RUNOUT_YEARS++}this.WITHDRAW_RUNOUT_FRACTION=this.WITHDRAW_RUNOUT_YEARS+this.WITHDRAW_RUNOUT_PERIODS/A;this.WITHDRAW_YEARS_TXT=b.number(this.WITHDRAW_RUNOUT)+" "+KJE.MSG_YEARS_LBL}}if(J&&!this.INFLATION_PER_PERIOD){O*=1+q}this.WITHDRAW_TOTAL_INTEREST+=K;this.WITHDRAW_TOTAL_WITHDRAWALS+=a;this.WITHDRAW_TOTAL_WITHDRAWALS_AFTERTAX+=this.WITHDRAW_TAXABLE_WITHDRAWALS?a*(1-x):a;if(a>=0){this.DS_CONTRIBUTIONS[X]=0;this.DS_WITHDRAWALS[X]=a}else{this.DS_CONTRIBUTIONS[X]=a*-1;e=true;this.DS_WITHDRAWALS[X]=0}this.DS_EARNINGS[X]=K;this.DS_ENDING_BAL[X]=ad}if(ad>0||this.WITHDRAW_YEARS_TXT==null){this.WITHDRAW_YEARS_TXT=KJE.getTermLabel(this.WITHDRAW_RUNOUT_YEARS+this.WITHDRAW_RUNOUT_PERIODS);this.WITHDRAW_ENDING_BALANCE=ad;this.WITHDRAW_RUNOUT=v;this.WITHDRAW_RUNOUT_YEARS=v;this.WITHDRAW_RUNOUT_FRACTION=v;this.WITHDRAW_RUNOUT_PERIODS=0}this.WITHDRAW_LENGTH_DESC=this.getPaymentLength(this.WITHDRAW_RUNOUT_YEARS,this.WITHDRAW_RUNOUT_PERIODS,this.WITHDRAW_FREQUENCY,false);this.WITHDRAW_RESULT_DESC=KJE.replace("WITHDRAW_AMOUNT_CALC",b.dollars(I,this.iDecimal),KJE.replace("WITHDRAW_FREQUENCY",KJE.Default.FREQUENCY_TYPES[this.WITHDRAW_FREQUENCY],KJE.replace("WITHDRAW_LENGTH_DESC",this.WITHDRAW_LENGTH_DESC,this.MSG_WITHDRAW_RESULT_DESC)));this.TOTAL_INTEREST=this.CONTRIB_TOTAL_INTEREST+this.WITHDRAW_TOTAL_INTEREST;if(M){var y=this.sSchedule;y.clearRepeat();var Y=y.sReportCol("
Contributions",3);if(Y=="Withdrawals"){Y="
Contributions"}y.addHeader(y.sReportCol("
Age",1),y.sReportCol("Starting
Balance",2),(g>0||e?Y:null),y.sReportCol("
Withdrawals",4),y.sReportCol("Investment
Earnings",5),y.sReportCol("Ending
Balance",6))}this.DF_BALANCE=KJE.FloatArray(this.WITHDRAW_RUNOUT+this.CONTRIB_TOTAL_YEARS+1);this.DF_STARTING_BAL=KJE.FloatArray(this.WITHDRAW_RUNOUT+this.CONTRIB_TOTAL_YEARS+1);this.DF_CONTRIBUTIONS=KJE.FloatArray(this.WITHDRAW_RUNOUT+this.CONTRIB_TOTAL_YEARS+1);this.DF_WITHDRAWALS=KJE.FloatArray(this.WITHDRAW_RUNOUT+this.CONTRIB_TOTAL_YEARS+1);this.DF_EARNINGS=KJE.FloatArray(this.WITHDRAW_RUNOUT+this.CONTRIB_TOTAL_YEARS+1);this.cats=KJE.FloatArray(this.DF_BALANCE.length);this.DF_BALANCE[0]=(U);this.DF_STARTING_BAL[0]=(U);this.cats[0]=""+(p<=0?this.CURRENT_YEAR:p);for(var W=0;W0?b.dollars(this.DS_CONTRIBUTIONS[W],this.iDecimal):null),b.dollars(this.DS_WITHDRAWALS[W],this.iDecimal),b.dollars(this.DS_EARNINGS[W],this.iDecimal),b.dollars(this.DS_ENDING_BAL[W],this.iDecimal))}}this.WITHDRAW_PERSERVATION_PERCENT=n;this.WITHDRAW_REQUIRED_REMAINING_BALANCE=k;this.WITHDRAW_AMOUNT_CALC=I;this.WITHDRAW_AMOUNT=r};KJE.InvestmentAccountCalc.prototype.formatReport=function(f){var g=KJE;var c=this.iDecimal;var h=f;h=KJE.showCode("","",false,h);h=KJE.replace("WITHDRAW_ANNUAL_AMOUNT_AFTERTAX",g.dollars(KJE.Default.FREQUENCY_ANNUAL_PERIODS[this.WITHDRAW_FREQUENCY]*this.WITHDRAW_AMOUNT_AFTERTAX,c),h);h=KJE.replace("WITHDRAW_ANNUAL_AMOUNT",g.dollars(KJE.Default.FREQUENCY_ANNUAL_PERIODS[this.WITHDRAW_FREQUENCY]*this.WITHDRAW_AMOUNT,c),h);h=KJE.replace("WITHDRAW_RESULT_DESC",this.WITHDRAW_RESULT_DESC,h);h=KJE.replace("WITHDRAW_LENGTH_DESC",this.WITHDRAW_LENGTH_DESC,h);h=KJE.replace("WITHDRAW_YEARS_TXT",this.WITHDRAW_YEARS_TXT,h);h=KJE.replace("MSG_CONTRIB_ADJUST_FOR_INFLATION",(this.CONTRIB_ADJUST_FOR_INFLATION?KJE.replace("MSG_INFLATION",g.percent(this.INFLATION_RATE,2),this.MSG_CONTRIB_ADJUST_FOR_INFLATION):""),h);h=KJE.replace("MSG_WITHDRAW_ADJUST_FOR_INFLATION_FROM_SAVINGS",(this.WITHDRAW_ADJUST_FOR_INFLATION==KJE.InvestmentAccountCalc.INFLATION_ADJUST_IMMEDIATE?this.MSG_WITHDRAW_ADJUST_FOR_INFLATION_FROM_SAVINGS:""),h);h=KJE.replace("MSG_WITHDRAW_ADJUST_FOR_INFLATION",(this.WITHDRAW_ADJUST_FOR_INFLATION?KJE.replace("MSG_INFLATION",g.percent(this.INFLATION_RATE,2),this.MSG_WITHDRAW_ADJUST_FOR_INFLATION):""),h);h=KJE.replace("CONTRIB_STARTING_BALANCE",g.dollars(this.CONTRIB_STARTING_BALANCE,c),h);h=KJE.replace("CONTRIB_AMOUNT",g.dollars(this.CONTRIB_AMOUNT,c),h);h=KJE.replace("CONTRIB_FREQUENCY",KJE.Default.FREQUENCY_TYPES[this.CONTRIB_FREQUENCY],h);h=KJE.replace("CONTRIB_ANNUAL_ROR",g.percent(this.CONTRIB_ANNUAL_ROR,2),h);h=KJE.replace("CONTRIB_TAX_RATE",g.percent(this.CONTRIB_TAX_RATE,1),h);h=KJE.replace("CONTRIB_TAXABLE_INTEREST",g.yesno(this.CONTRIB_TAXABLE_INTEREST),h);h=KJE.replace("CONTRIB_TAXABLE_DEPOSITS",g.yesno(this.CONTRIB_TAXABLE_DEPOSITS),h);h=KJE.replace("CONTRIB_TOTAL_INTEREST",g.dollars(this.CONTRIB_TOTAL_INTEREST,c),h);h=KJE.replace("CONTRIB_TOTAL_CONTRIBUTIONS",g.dollars(this.CONTRIB_TOTAL_CONTRIBUTIONS,c),h);h=KJE.replace("CONTRIB_ANNUAL_ROR_ATAX",g.percent(this.CONTRIB_ANNUAL_ROR_ATAX,4),h);h=KJE.replace("CONTRIB_PERIODIC_ROR",g.percent(this.CONTRIB_PERIODIC_ROR,6),h);h=KJE.replace("CONTRIB_PERIODIC_ROR_ATAX",g.percent(this.CONTRIB_PERIODIC_ROR_ATAX,6),h);h=KJE.replace("CONTRIB_ADJUST_FOR_INFLATION",g.yesno(this.CONTRIB_ADJUST_FOR_INFLATION),h);h=KJE.replace("CONTRIB_TOTAL_YEARS",g.number(this.CONTRIB_TOTAL_YEARS),h);h=KJE.replace("CONTRIB_YEARS",g.number(this.CONTRIB_YEARS),h);h=KJE.replace("CONTRIB_YEARS_TO_START",g.number(this.CONTRIB_YEARS_TO_START),h);h=KJE.replace("CONTRIB_YEARS_TO_END",g.number(this.CONTRIB_YEARS_TO_END),h);h=KJE.replace("WITHDRAW_STARTING_BALANCE",g.dollars(this.WITHDRAW_STARTING_BALANCE,c),h);h=KJE.replace("WITHDRAW_YEARS",g.number(this.WITHDRAW_YEARS),h);h=KJE.replace("WITHDRAW_TAX_RATE",g.percent(this.WITHDRAW_TAX_RATE,1),h);h=KJE.replace("WITHDRAW_TYPE",KJE.InvestmentAccountCalc.WITHDRAW_TYPES[this.WITHDRAW_TYPE],h);h=KJE.replace("WITHDRAW_TOTAL_WITHDRAWALS_AFTERTAX",g.dollars(this.WITHDRAW_TOTAL_WITHDRAWALS_AFTERTAX,c),h);h=KJE.replace("WITHDRAW_AMOUNT_TODAY",g.dollars(this.WITHDRAW_AMOUNT_TODAY,c),h);h=KJE.replace("WITHDRAW_AMOUNT_AFTERTAX",g.dollars(this.WITHDRAW_AMOUNT_AFTERTAX,c),h);h=KJE.replace("WITHDRAW_AMOUNT_CALC",g.dollars(this.WITHDRAW_AMOUNT_CALC,c),h);h=KJE.replace("WITHDRAW_AMOUNT",g.dollars(this.WITHDRAW_AMOUNT,c),h);h=KJE.replace("WITHDRAW_FREQUENCY",KJE.Default.FREQUENCY_TYPES[this.WITHDRAW_FREQUENCY],h);h=KJE.replace("WITHDRAW_ANNUAL_ROR",g.percent(this.WITHDRAW_ANNUAL_ROR,2),h);h=KJE.replace("WITHDRAW_TAXABLE_INTEREST",g.yesno(this.WITHDRAW_TAXABLE_INTEREST?0:1),h);h=KJE.replace("WITHDRAW_TAXABLE_WITHDRAWALS",g.yesno(this.WITHDRAW_TAXABLE_WITHDRAWALS),h);h=KJE.replace("WITHDRAW_REQUIRED_REMAINING_BALANCE",g.dollars(this.WITHDRAW_REQUIRED_REMAINING_BALANCE,c),h);h=KJE.replace("WITHDRAW_ENDING_BALANCE",g.dollars(this.WITHDRAW_ENDING_BALANCE,c),h);h=KJE.replace("WITHDRAW_TOTAL_INTEREST",g.dollars(this.WITHDRAW_TOTAL_INTEREST,c),h);h=KJE.replace("WITHDRAW_TOTAL_WITHDRAWALS",g.dollars(this.WITHDRAW_TOTAL_WITHDRAWALS,c),h);h=KJE.replace("WITHDRAW_PERSERVATION_PERCENT",g.dollars(this.WITHDRAW_PERSERVATION_PERCENT),h);h=KJE.replace("WITHDRAW_ADJUST_FOR_INFLATION",g.yesno(this.WITHDRAW_ADJUST_FOR_INFLATION),h);h=KJE.replace("WITHDRAW_ANNUAL_ROR_ATAX",g.percent(this.WITHDRAW_ANNUAL_ROR_ATAX,4),h);h=KJE.replace("WITHDRAW_PERIODIC_ROR",g.percent(this.WITHDRAW_PERIODIC_ROR,6),h);h=KJE.replace("WITHDRAW_PERIODIC_ROR_ATAX",g.percent(this.WITHDRAW_PERIODIC_ROR_ATAX,6),h);h=KJE.replace("CURRENT_AGE",g.number(this.CURRENT_AGE),h);h=KJE.replace("WITHDRAW_AGE",g.number(this.CURRENT_AGE+this.CONTRIB_TOTAL_YEARS),h);h=KJE.replace("INFLATION_RATE",g.percent(this.INFLATION_RATE,2),h);h=KJE.replace("ACCOUNT_TYPE",KJE.InvestmentAccountCalc.ACCOUNT_TYPES[this.ACCOUNT_TYPE],h);h=KJE.replace("CONTRIBUTE_TO_MAXIMUM",g.yesno(this.CONTRIBUTE_TO_MAXIMUM),h);h=KJE.replace("ACCOUNT_NAME",this.ACCOUNT_NAME,h);h=KJE.replace("TOTAL_INTEREST",g.dollars(this.TOTAL_INTEREST,c),h);h=KJE.replace("MSG_EXTRA_NOTE",this.MSG_EXTRA_NOTE,h);var e="";var b="";var a="";for(var d=0;d0?"+":"")+g.dollars(this.ADVANCED_AMOUNT[d],c),e);b=KJE.replace("ADVANCED_TABLE_ROW",g.input(d+1),this.ADVANCED_TABLE_ROW);b=KJE.replace("ADVANCED_TABLE_CONTENT",e,b);a+=b}}h=KJE.replace("**ROWCLASS**",this.sRowClass,KJE.replace("",a,h));h=h.replace("**REPEATING GROUP**",this.sSchedule.getRepeat());this.sSchedule.clearRepeat();return h};KJE.InvestmentAccountCalc.prototype.dMaxWithdrawal=function(a,f,k){var l=this.WITHDRAW_TAXABLE_INTEREST?this.WITHDRAW_PERIODIC_ROR_ATAX:this.WITHDRAW_PERIODIC_ROR;var m=KJE.ROR_PERIOD(this.INFLATION_RATE,k);var q=this.WITHDRAW_ADJUST_FOR_INFLATION&&this.INFLATION_PER_PERIOD;var t=this.WITHDRAW_ADJUST_FOR_INFLATION&&!this.INFLATION_PER_PERIOD;var i=this.WITHDRAW_BEGIN_PERIOD;var u=this.WITHDRAW_YEARS+this.CONTRIB_TOTAL_YEARS;var g=this.CONTRIB_TOTAL_YEARS;var d=this.INFLATION_RATE;var b=f;var c=f/2;var h=0;var e=a;var s=b;for(var o=1;o<50;o++){e=a;s=b;for(var r=g;r0;p++){if(!i){e+=KJE.round(e*l,2)}e-=s;if(q){s*=1+m}if(i){e+=KJE.round(e*l,2)}}if(t){s*=1+d}}h=e;if(KJE.round(h,2)==0){return b}else{if(h<0){b-=c}else{b+=c}}c=c/2}return b};KJE.InvestmentAccountCalc.prototype.getPaymentLength=function(f,a,e,c){var b=this.MSG_PERIOD;var d=this.MSG_PERIODS;if(e0?f+" "+(f>=this.MAX_WITHDRAW_YEARS?this.MSG_PLUS+" ":"")+(f==1?KJE.MSG_YEAR_LBL:KJE.MSG_YEARS_LBL):"")+(c||(f>0&&a>0)?" "+KJE.MSG_AND_LBL+" ":"")+(c||a>0?a+" "+(a==1?b:d):"")};KJE.showCode=function(e,h,d,b){var g=b;if(!d){var c=g.indexOf(e);var a=g.indexOf(h);var f="";while(c>0&&a>c){f+=g.substring(0,c);f+=g.substring(a+h.length);c=g.indexOf(e);a=g.indexOf(h)}g=(f==""?b:f)}g=KJE.replace(e,"",g);g=KJE.replace(h,"",g);return g};KJE.InvestmentAccountCalc.WITHDRAW_PRESERVE_PERCENT=0;KJE.InvestmentAccountCalc.WITHDRAW_PRESERVE_AMOUNT=1;KJE.InvestmentAccountCalc.WITHDRAW_ZERO_BALANCE=2;KJE.InvestmentAccountCalc.WITHDRAW_PERIODIC_AMOUNT=3;KJE.InvestmentAccountCalc.WITHDRAW_TYPES=KJE.parameters.get("ARRAY_WITHDRAW_TYPES",["Principal preservation percent","Principal preservation fix-ed amount","Zero ending balance","periodic amount"]);KJE.InvestmentAccountCalc.WITHDRAW_INDEXES=[0,1,2,3];KJE.InvestmentAccountCalc.WITHDRAW_SHORT_TYPES=KJE.parameters.get("ARRAY_WITHDRAW_SHORT_TYPES",["Maximum withdrawal","Years balance with last"]);KJE.InvestmentAccountCalc.WITHDRAW_SHORT_INDEXES=[KJE.InvestmentAccountCalc.WITHDRAW_ZERO_BALANCE,KJE.InvestmentAccountCalc.WITHDRAW_PERIODIC_AMOUNT];KJE.InvestmentAccountCalc.INFLATION_NO_ADJUST=0;KJE.InvestmentAccountCalc.INFLATION_ADJUST=1;KJE.InvestmentAccountCalc.INFLATION_ADJUST_IMMEDIATE=2;KJE.InvestmentAccountCalc.WITHDRAW_INFLATION_TYPES=KJE.parameters.get("ARRAY_WITHDRAW_INFLATION_TYPES",["No adjustment","Adjustments begin with withdrawals","Adjustments begin immediately"]);KJE.InvestmentAccountCalc.WITHDRAW_INFLATION_INDEXES=[KJE.InvestmentAccountCalc.INFLATION_NO_ADJUST,KJE.InvestmentAccountCalc.INFLATION_ADJUST,KJE.InvestmentAccountCalc.INFLATION_ADJUST_IMMEDIATE];KJE.InvestmentAccountCalc.CONTRIB_INFLATION_TYPES=KJE.parameters.get("ARRAY_CONTRIB_INFLATION_TYPES",["No adjustment","Annually for inflation"]);KJE.InvestmentAccountCalc.CONTRIB_INFLATION_INDEXES=[KJE.InvestmentAccountCalc.INFLATION_NO_ADJUST,KJE.InvestmentAccountCalc.INFLATION_ADJUST];KJE.InvestmentAccountCalc.ACCT_401K=0;KJE.InvestmentAccountCalc.ACCT_TRADITIONAL_IRA=1;KJE.InvestmentAccountCalc.ACCT_ROTH_IRA=2;KJE.InvestmentAccountCalc.ACCT_OTHER_TAX_DEFERRED=3;KJE.InvestmentAccountCalc.ACCT_FIXED_ANNUITIES=4;KJE.InvestmentAccountCalc.ACCT_VARIABLE_ANNUTIES=5;KJE.InvestmentAccountCalc.ACCT_TAX_EXEMPT_BONDS=6;KJE.InvestmentAccountCalc.ACCT_TAX_EXEMPT_MUTUAL_FUNDS=7;KJE.InvestmentAccountCalc.ACCT_OTHER_TAX_EXEMPT=8;KJE.InvestmentAccountCalc.ACCT_LONGTERM_STOCKS=9;KJE.InvestmentAccountCalc.ACCT_SHORTTERM_STOCKS=10;KJE.InvestmentAccountCalc.ACCT_TAXABLE_BONDS=11;KJE.InvestmentAccountCalc.ACCT_SAVINGS_ACCOUNTS=12;KJE.InvestmentAccountCalc.ACCT_STOCK_MUTUAL_FUNDS=13;KJE.InvestmentAccountCalc.ACCT_BOND_MUTUAL_FUNDS=14;KJE.InvestmentAccountCalc.ACCT_MONEY_MARKET=15;KJE.InvestmentAccountCalc.ACCT_SAVINGS_BONDS=16;KJE.InvestmentAccountCalc.ACCT_OTHER_TAXABLE=17;KJE.InvestmentAccountCalc.ACCT_REALESTATE=18;KJE.InvestmentAccountCalc.ACCT_OTHER_FIXED_ASSETS=19;KJE.InvestmentAccountCalc.ACCT_OTHER=20;KJE.InvestmentAccountCalc.ACCOUNT_TYPES=["401(k)s and 403(b)s","Traditional IRAs","ROTH IRAs","Other tax-deferred","Fixed annuities","Variable annuities","Tax-exempt bonds","Tax-exempt mutual funds","Other tax-exempt","Long-term stocks","Short-term stocks","Taxable Bonds","Savings Accounts and CDs","Stock mutual funds","Bond mutual funds","Money market funds","Savings bonds","Other taxable","Real estate","Other fixed assets","Other"];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER=new Array();KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[0]=[false,false,false,true];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[1]=[false,false,false,true];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[2]=[false,true,false,false];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[3]=[false,true,false,true];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[4]=[false,true,false,true];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[5]=[false,true,false,true];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[6]=[false,true,false,false];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[7]=[false,true,false,false];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[8]=[false,true,false,false];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[9]=[true,true,true,false];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[10]=[true,true,true,false];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[11]=[true,true,true,false];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[12]=[true,true,true,false];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[13]=[true,true,true,false];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[14]=[true,true,true,false];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[15]=[true,true,true,false];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[16]=[true,true,true,false];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[17]=[true,true,true,false];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[18]=[false,true,false,true];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[19]=[false,true,false,true];KJE.InvestmentAccountCalc.ACCOUNT_DEFAULT_CHARACTER[20]=[true,true,true,true];KJE.InvestmentAccountCalc.WITHDRAW_INDEXES=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];KJE.CalcName="How long will my retirement savings last Calculator";KJE.CalcType="RetirementDistribution";KJE.CalculatorTitleTemplate="KJE1";KJE.parseInputs=function(b){var c=10;KJE.parameters.set("ADVANCED_COUNT",c);var a=new Date();iCurrentYear=a.getFullYear();KJE.parameters.set("CURRENT_YEAR",iCurrentYear);for(var d=0;dInput information:
**GRAPH1** ";KJE.DefinitionText=" Cumulative savings at retirementEnter how much you have saved to-date for retirement. Then add to this number how much you can realistically save between now and your retirement date. Finally, add in any estimated net after-tax dollars you expect to receive from the sale of real estate, a business, or any item of value at or near your retirement date. Do not count expected inheritances or return on investments. Use today's values, not anticipated future values. Amount you want to spend annually in retirementHow much money do you want to spend annually in retirement including payment of taxes. Use today's dollars. Subtract from this number annual Social Security, pension, or other lifetime income sources. Be careful not to underestimate living expenses and taxes. Doing so could cause serious cash-flow shortages later on. After tax rate of return in retirementThis is the annual rate of return you expect from your investments after taxes. **ROR_DEFINITION** When you are taking periodic distributions from an account or investment, the return earned is often lower due to more conservative investment choices to help insure a steady flow of income.
Expected inflation rate**INFLATION_DEFINITION** This calculator increases your distribution amount at the end of each year by the rate of inflation. This begins at end of the first year of distributions. This helps illustrate the cost of providing a current amount of purchasing power throughout your distributions. AmountThis is the additional amount you will add to your retirement savings. Enter a negative amount if this is a reduction or withdrawal in your retirement savings. All deposits and/or withdrawals are assumed to happen at the beginning of the year. Year to startFirst year of the additional amount. Year to endLast year of the additional amount. If this is the same as the first year, it will impact your account once. Otherwise we assume that the additional amount is an annual deposit (or if negative a withdrawal). ";KJE.ReportText='
This assumes that you have a starting retirement balance of CONTRIB_STARTING_BALANCE and earn a WITHDRAW_ANNUAL_ROR annual rate of return. MSG_WITHDRAW_ADJUST_FOR_INFLATION Withdrawals were assumed to be made monthly, at the beginning of each month. **GRAPH** Cumulative savings at retirement | CONTRIB_STARTING_BALANCE |
Amount you want to spend annually in retirement | WITHDRAW_ANNUAL_AMOUNT MSG_EXTRA_NOTE |
---|
Expected inflation rate | INFLATION_RATE |
After tax rate of return in retirement | WITHDRAW_ANNUAL_ROR |
**REPEATING GROUP** ';