Switching Calculator - Lower your mortgage costs 

When comparing variable rate mortgages bear in mind the effect that an increase in interest rates might have on the overall cost of a mortgage; there is very real risk that anyone with a variable rate mortgage could see their curent mortgage rate rise by 1% to 2% over the next few years, maybe even more than this.

<% dim compare_period, broker, ltv, thistoday, property_value, deposit, rate_type, loan, period, months, i,term, graph_period, interest_element, ip_monthly_capital, svr_monthly_capital, final_payment dim initial_period(4), i_p(4), initial_rate(4), svr_rate(4), total_fees(4), ip_mortbalance(4), ip_capitalamount(4), ip_amount(4), svr_amount(4), scheme(4), capital(4), interest(4) Dim compareperiod_sum_interest(4), compareperiod_sum_capital(4), sum_interest(4), sum_capital(4), ip_capital(4), ip_interest(4), svr_interest(4), ip_payment(4), svr_payment(4), payment(4), rate(4) dim apr(4) As Double %> <% if Request.Querystring("Search") <> "" then %> <% broker = Request.Querystring("broker_fees") if broker = "" then broker = 0 End If compare_period = Request.Querystring("compare_period") if compare_period = "" then compare_period = 24 End If term = Request.Querystring("term") if term = "" then term = 1 End If loan = Request.Querystring("loan") if loan = "" then loan= 0.0001 End If months = term*12 dim pay1, pay2 Dim Amount As Decimal = 0 dim guess As Double = 0.06/12 dim apr_values(months+1) As Double graph_period = 0 if compare_period > months then compare_period = months end if for i = 0 to 1 initial_period(i) = Request.Querystring("initial_period(" & i & ")") if initial_period(i) = "" then initial_period(i) = 0 End If i_p(i) = Request.Querystring("i_p(" & i & ")") if i_p(i) = "" then i_p(i) =0 End If scheme(i) = Request.Querystring("Scheme(" & i & ")") if scheme(i) = "" then scheme(i) = "Scheme " & i+1 & "" 'increased by 1 for correct scheme name end if if graph_period term*12 then 'i_p(i) = term*12 'End If initial_rate(i) = Request.Querystring("initial_rate(" & i & ")") if initial_rate(i) = "" then initial_rate(i)=0 End If svr_rate(i) = Request.Querystring("svr_rate(" & i & ")") if svr_rate(i) = "" then svr_rate(i) = 0 End If total_fees(i) = Request.Querystring("total_fees(" & i & ")") if total_fees(i) = "" then total_fees(i) = 0 End If interest_element = Request.Querystring("interest_element") if interest_element = "" then interest_element = 0 End If apr_values(0)= -loan rate(i) = initial_rate(i)/1200 sum_capital(i) = 0 ip_payment(i) = pmt(rate(i),months,-(loan-sum_capital(i)),interest_element) svr_payment(i)= pmt(svr_rate(i)/1200,months,-(loan-sum_capital(i)),interest_element) period = 1 while period < months+1 interest(i) = ipmt(rate(i),1,months+1-period,-(loan-sum_capital(i)),interest_element) capital(i) = ppmt(rate(i),1,months+1-period,-(loan-sum_capital(i)),interest_element) payment(i) = pmt(rate(i),months+1-period,-(loan-sum_capital(i)),interest_element) if period = months then apr_values(period) = payment(i)+interest_element else apr_values(period) = payment(i) end if sum_interest(i) = sum_interest(i)+interest(i) sum_capital(i) = sum_capital(i)+capital(i) if period = i_p(i) then rate(i) = svr_rate(i)/1200 end if if period = i_p(i) then ip_interest(i) = sum_interest(i) ip_capital(i) = sum_capital(i) end if if period = compare_period then compareperiod_sum_interest(i) = sum_interest(i) compareperiod_sum_capital(i) = sum_capital(i) end if period = period+1 end while 'period svr_interest(i) = sum_interest(i)-ip_interest(i) apr(i) = irr(apr_values, guess)*12 ip_mortbalance(i) = loan-ip_capitalamount(i) session("term") = graph_period+12 session("mortterm") = term session("loan")=loan session("intonly")=interest_element session("S(" & i & ")_ipcost")=ip_interest(i) session("S(" & i & ")_svrcost")=svr_interest(i) session("S(" & i & ")_repayment1")= ip_payment(i) session("S(" & i & ")_repayment2")= svr_payment(i) session("S(" & i & ")_ip")=i_p(i) session("S(" & i & ")_initial_rate")=initial_rate(i)/100 session("S(" & i & ")_svr_rate")=svr_rate(i)/100 session("scheme(" & i & ")") = scheme(i) amount = 0 next total_fees(0) = total_fees(0)+(broker*1)+total_fees(1) session("S(" & 0 & ")_ipcost")=ip_interest(0) session("S(" & 0 & ")_fees")=total_fees(0) %>
About your current mortgage

How much do you owe on your mortgage? (e.g. 50000)

Amount owed that is interest only (e.g. 20000)

Remaining mortgage term (e.g 19.5)

Cost to leave your current lender? (e.g 295)

What % rate do you currently pay with your lender? (e.g 3.95)

      How long will you pay this interest rate? (in months e.g. 5)

      When this rate ends, what rate will you then pay? (e.g. 5.95)

     

Total setup cost of new mortgage (survey fee, legal fee, arrangement fee. e.g. 995)

Is there a mortgage broker fee to pay for advice? (e.g. 295)

What % rate will the new mortgage start at?

     How many months does the 'start rate' rate last? (e,g 24)

     What rate is charged when the'start rate' ends? (e.g 4.95)

Comparison Period in months (e.g. 24)

   
     

Comparison Period

<%Response.Write(compare_period)%> months <%Response.Write(compare_period)%> months

Mortgage Balance at start of Comparison Period

<%Response.Write(FormatCurrency(loan))%> <%Response.Write(FormatCurrency(loan))%>

Capital Repaid

<%Response.Write(FormatCurrency(compareperiod_sum_capital(1)))%> <%Response.Write(FormatCurrency(compareperiod_sum_capital(0)))%>

Mortgage Balance at the end of the Comparison Period

<%Response.Write(FormatCurrency(loan-compareperiod_sum_capital(1)))%> <%Response.Write(FormatCurrency(loan-compareperiod_sum_capital(0)))%>

Fees to change lender

n\a <%Response.Write(FormatCurrency(total_fees(0)))%>

Cost of mortgage over Comparison Period

<%Response.Write(FormatCurrency(compareperiod_sum_interest(1)))%> <%Response.Write(FormatCurrency(compareperiod_sum_interest(0)+total_fees(0)))%>

   

Mortgage payment at 'starting rate'

<%Response.Write(FormatCurrency(ip_payment(1)))%> <%Response.Write(FormatCurrency(ip_payment(0)))%>

Mortgage payment after 'starting rate'

<%Response.Write(FormatCurrency(svr_payment(1)))%> <%Response.Write(FormatCurrency(svr_payment(0)))%>

APR% (calculated over <%Response.Write(term)%>  years)

<%Response.Write(FormatPercent(apr(1),1))%> <%Response.Write(FormatPercent(apr(0),1))%>
     
     
Cost of Mortgage

loading
graph loading
<% end if %>