Home  Homepage
text size
 
 
 
 
 
 
 
 

Pension Calculator

 

<%@ Page Language="VBScript" Debug="true" %> <%dim mortgagewindfall, pensionfund, pensionfundshortfall, pensionfundwindfall, mortgage, mortgageshortfall, adjustrateperform, interest, mycontribution, totaltaxrelief, taxrelief40, taxrelief20, t40, t20, tax20, tax40, taxband20, taxband40, earnings, retdate, diff, dob, today, nra, age, mi, termyears, termmonths, risk, target, charges, invret, rate, payment, rest, mortcost, repayment, singlepremium, ratedown, rateup, futurevaluedown, futurevalueup, adjustrate dim rotate As Decimal singlepremium=0 %>
DoB (dd/mm/yyyy)
Retirement Age
Taxable Earnings
Mortgage amount
Mortgage Rate
Existing Pensions
Assumed Rate of Return
<% If Request.Form("Button1")<>"" then rotate = Request.Form("rotate") rotate=rotate+1 if rotate = 6 then rotate = 1 end if rest = 12 earnings = Request.Form("earnings") 'taxable earnings mi = Request.Form("mortgage_rate") 'mortgage interest nra = Request.Form("nra") 'retirement age e.g. 65 dob = DateValue(Request.Form("dob")) 'age now e.g 03/01/1966 nra = nra*365.25 today = now() retdate = DateAdd("d",nra,dob) termmonths = DateDiff("m",today,retdate) termyears = termmonths/rest risk = Request.Form("risk") mortgage = Request.Form("target_value") target = mortgage * 4 'pension pot is 4 x TFC singlepremium = Request.Form("single_premium") if risk = "low" then charges = 0.005 invret = 0.05 else if risk = "medium" then invret = 0.07 'investment return charges = 0.0075 else if risk = "high" then charges = 0.01 invret = 0.09 End if End if End if adjustrate = 0.01 rate = invret - charges ratedown = invret - charges - adjustrate rateup = invret - charges + adjustrate payment = FormatCurrency(pmt(rate/rest,termyears*rest,singlepremium,-target),2) 'rate, period, present value,future value, type repayment = FormatCurrency(pmt(mi/rest/100,termyears*rest,-mortgage,0),2) 'rate, period, present value,future value, type futurevaluedown = FormatCurrency(fv(ratedown/rest,termyears*rest,-payment,-singlepremium),2) 'rate, period, payment, present value futurevalueup = FormatCurrency(fv(rateup/rest,termyears*rest,-payment,-singlepremium),2) 'rate, period, payment, present value mortgageshortfall = FormatCurrency((target*0.25)-(futurevaluedown*0.25),2) mortgagewindfall = FormatCurrency((futurevalueup*0.25)-(target*0.25),2) 'pensionfund = FormatCurrency(target*0.75,2) pensionfundshortfall = FormatCurrency((target*0.75)-(futurevaluedown*0.75),2) pensionfundwindfall = FormatCurrency((futurevalueup*0.75)-(target*0.75),2) charges = charges*100 invret = invret*100 termyears = FormatNumber(termyears,2) taxband20 = 20000 'earnings taxed at 20% taxband40 = 30000 'earnings taxed at 40% if earningst40 then tax40 = t40 else tax40 = payment*12 End if if tax40 > (payment*12) then tax20 = 0 else tax20 = (payment*12)-tax40 End if taxrelief20=tax20*0.2/12 taxrelief40=tax40*0.4/12 totaltaxrelief = FormatCurrency(taxrelief20+taxrelief40,2) mycontribution = FormatCurrency(payment-totaltaxrelief,2) interest = mi*mortgage/rest/100 mortcost = (payment-totaltaxrelief+interest) %>
Investment Period <%response.write(termyears)%> years
Net Pension Contribution <%response.write(mycontribution)%>
Mortgage Payment <%response.write(FormatCurrency(interest,2))%>
Total Cost <%response.write(FormatCurrency(mortcost,2))%>
   
A repayment mortgage costs <%response.write(repayment)%>
Difference <%response.write(FormatCurrency(mortcost-repayment,2))%>
   
The pension you have built up
Pension Value <%response.write(FormatCurrency(target,0))%>
Lump Sum to pay mortgage <%response.write(FormatCurrency(target*0.25,0))%>
Fund left to buy a pension <%response.write(FormatCurrency(target*0.75,0))%>
 
Investment returns are not guaranteed
<% If Request.Form("Button1")<>"" and rotate = 1 then %>
1% less growth:
you would have to find <%response.write(FormatCurrency(mortgageshortfall,2))%> from another source to repay your mortgage
Think Bubble
<% End if %> <% If Request.Form("Button1")<>"" and rotate = 2 then %>
1% less growth:
the fund used to buy your pension income would fall by
<%response.write(FormatCurrency(pensionfundshortfall,2))%>
Think2
think bubble
<% End if %> <% If Request.Form("Button1")<>"" and rotate = 3 then %>
1% more growth:
you can repay your mortgage and have <%response.write(FormatCurrency(mortgagewindfall,2))%> left over
.
think
Think Bubble
<% End if %> <% If Request.Form("Button1")<>"" and rotate = 4 then %>
1% more growth:
you would have <%response.write(FormatCurrency(pensionfundwindfall,2))%> more from which to buy your pension income
Think2
think bubble
<% End if %> <% If Request.Form("Button1")<>"" and rotate = 5 then %>
Investment returns are not guaranteed, you could get back less than you have invested
Think Bubble
Think
<% End if End if %>
 
Mortgage Newsletter
newsletter
Ways to contact us
Contact us for mortgage advice or help arranging a mortgage...
call us 08000337802
call us 01157270702
enquiry form Email
No obligation
Best Buys
annuity quotes Best Buys
Compare

follow us on twitter