<% option explicit %> <% dim lookingForAffordable dim defaultValue defaultValue = 0 dim defaultStressRate defaultStressRate = 7.24 Dim mainIncomeApp1 mainIncomeApp1 = request.form("txtMainIncomeApp1") if Not IsEmpty(mainIncomeApp1) and isNumeric(mainIncomeApp1) then mainIncomeApp1 = cDbl(mainIncomeApp1) else mainIncomeApp1 = defaultValue end if 'response.write(mainIncomeApp1 & "#mainIncomeApp1
") Dim secondIncomeApp1 secondIncomeApp1 = request.form("txtSecondIncomeApp1") if Not IsEmpty(secondIncomeApp1) and isNumeric(secondIncomeApp1) then secondIncomeApp1 = cDbl(secondIncomeApp1) else secondIncomeApp1 = defaultValue end if 'response.write(secondIncomeApp1 & "#secondIncomeApp1
") Dim pensionApp1 pensionApp1 = request.form("txtPensionApp1") if Not IsEmpty(pensionApp1) and isNumeric(pensionApp1) then pensionApp1 = cDbl(pensionApp1) else pensionApp1 = defaultValue end if 'response.write(pensionApp1 & "#pensionApp1
") Dim investmentApp1 investmentApp1 = request.form("txtInvestmentApp1") if Not IsEmpty(investmentApp1) and isNumeric(investmentApp1) then investmentApp1 = cDbl(investmentApp1) else investmentApp1 = defaultValue end if 'response.write(investmentApp1 & "#investmentApp1
") 'Dim rentalApp1 'rentalApp1 = request.form("txtRentalApp1") 'if Not IsEmpty(rentalApp1) and isNumeric(rentalApp1) then ' rentalApp1 = cDbl(rentalApp1) 'else ' rentalApp1 = defaultValue 'end if 'response.write(rentalApp1 & "#rentalApp1
") dim AnnualIncomeApp1 AnnualIncomeApp1 = mainIncomeApp1 + secondIncomeApp1 + pensionApp1 + investmentApp1' + rentalApp1 'response.write(AnnualIncomeApp1 & "#AnnualIncomeApp1
") Dim HighRateApp1 HighRateApp1 = cBool(request.form("chkHigherTaxPayerApp1")) 'response.write(HighRateApp1 & "#HighRateApp1
") dim stateBenefits stateBenefits = request.form("txtStateBenefits") if Not IsEmpty(stateBenefits) and isNumeric(stateBenefits) then stateBenefits = cDbl(stateBenefits) else stateBenefits = defaultValue end if 'response.write(stateBenefits & "#stateBenefits
") dim stateBenefitsApp2 stateBenefitsApp2 = request.form("txtStateBenefitsApp2") if Not IsEmpty(stateBenefitsApp2) and isNumeric(stateBenefitsApp2) then stateBenefitsApp2 = cDbl(stateBenefitsApp2) else stateBenefitsApp2 = defaultValue end if 'response.write(stateBenefits & "#stateBenefits
") dim maintenance maintenance = request.form("txtMaintenance") if Not IsEmpty(maintenance) and isNumeric(maintenance) then maintenance = cDbl(maintenance) else maintenance = defaultValue end if 'response.write(maintenance & "#maintenance
") dim maintenanceApp2 maintenanceApp2 = request.form("txtMaintenanceApp2") if Not IsEmpty(maintenanceApp2) and isNumeric(maintenanceApp2) then maintenanceApp2 = cDbl(maintenanceApp2) else maintenanceApp2 = defaultValue end if Dim UnTaxedIncomeAnnual UnTaxedIncomeAnnual = stateBenefits + stateBenefitsApp2 + maintenance + maintenanceApp2 'response.write(UnTaxedIncomeAnnual & "#UnTaxedIncomeAnnual
") dim creditCardsBalance creditCardsBalance = request.form("txtCreditCardsBalance") if Not IsEmpty(creditCardsBalance) and isNumeric(creditCardsBalance) then creditCardsBalance = cDbl(creditCardsBalance) else creditCardsBalance = defaultValue end if 'response.write(creditCardsBalance & "#creditCardsBalance
") dim creditCards creditCards = request.form("txtCreditCards") if Not IsEmpty(creditCards) and isNumeric(creditCards) then creditCards = cDbl(creditCards) else creditCards = defaultValue end if 'response.write(creditCards & "#creditCards
") dim loans loans = request.form("txtLoans") if Not IsEmpty(loans) and isNumeric(loans) then loans = cDbl(loans) else loans = defaultValue end if 'response.write(loans & "#loans
") dim Studentloans Studentloans = request.form("txtStudentloans") if Not IsEmpty(Studentloans) and isNumeric(Studentloans) then Studentloans = cDbl(Studentloans) else Studentloans = defaultValue end if 'response.write(loans & "#loans
") Dim SharedOwnership SharedOwnership = request.form("txtSharedOwnership") if Not IsEmpty(SharedOwnership) and isNumeric(SharedOwnership) then SharedOwnership = cDbl(SharedOwnership) else SharedOwnership = defaultValue end if 'response.write(SharedOwnership & "#SharedOwnership
") Dim Outgoings if creditCardsBalance = defaultValue then Outgoings = creditCards + loans + SharedOwnership else Outgoings = (creditCardsBalance * 0.03) + loans + SharedOwnership end if 'response.write(Outgoings & "#Outgoings
") Dim mainIncomeApp2 mainIncomeApp2 = request.form("txtMainIncomeApp2") if Not IsEmpty(mainIncomeApp2) and isNumeric(mainIncomeApp2) then mainIncomeApp2 = cDbl(mainIncomeApp2) else mainIncomeApp2 = defaultValue end if 'response.write(mainIncomeApp2 & "#mainIncomeApp2
") Dim secondIncomeApp2 secondIncomeApp2 = request.form("txtSecondIncomeApp2") if Not IsEmpty(secondIncomeApp2) and isNumeric(secondIncomeApp2) then secondIncomeApp2 = cDbl(secondIncomeApp2) else secondIncomeApp2 = defaultValue end if 'response.write(secondIncomeApp2 & "#secondIncomeApp2
") Dim pensionApp2 pensionApp2 = request.form("txtPensionApp2") if Not IsEmpty(pensionApp2) and isNumeric(pensionApp2) then pensionApp2 = cDbl(pensionApp2) else pensionApp2 = defaultValue end if 'response.write(pensionApp2 & "#pensionApp2
") Dim investmentApp2 investmentApp2 = request.form("txtInvestMentApp2") if Not IsEmpty(investmentApp2) and isNumeric(investmentApp2) then investmentApp2 = cDbl(investmentApp2) else investmentApp2 = defaultValue end if 'response.write(investmentApp2 & "#investmentApp2
") 'Dim rentalApp2 'rentalApp2 = request.form("txtRentalApp2") 'if Not IsEmpty(rentalApp2) and isNumeric(rentalApp2) then ' rentalApp2 = cDbl(rentalApp2) 'else ' rentalApp2 = defaultValue 'end if 'response.write(rentalApp2 & "#rentalApp2
") dim AnnualIncomeApp2 AnnualIncomeApp2 = mainIncomeApp2 + secondIncomeApp2 + pensionApp2 + investmentApp2' + rentalApp2 'response.write(AnnualIncomeApp2 & "#AnnualIncomeApp2
") Dim HighRateApp2 HighRateApp2 = cBool(request.form("chkHigherTaxPayerApp2")) 'response.write(HighRateApp2 & "#HighRateApp2
") Dim LoanAmount LoanAmount = request.form("txtLoanAmount") if Not IsEmpty(LoanAmount) and isNumeric(LoanAmount) then LoanAmount = cDbl(LoanAmount) else LoanAmount = defaultValue end if 'response.write(LoanAmount & "#LoanAmount
") dim InterestOnlyAmount InterestOnlyAmount = request.form("txtInterestOnlyAmount") if Not IsEmpty(InterestOnlyAmount) and isNumeric(InterestOnlyAmount) and LoanAmount <> defaultValue then InterestOnlyAmount = cDbl(InterestOnlyAmount) else InterestOnlyAmount = defaultValue end if dim RepaymentOnlyAmount RepaymentOnlyAmount = LoanAmount - InterestOnlyAmount Dim MRVRepayment MRVRepayment = request.form("txtMRVRepayment") if Not IsEmpty(MRVRepayment) and isNumeric(MRVRepayment) and InterestOnlyAmount > defaultValue then MRVRepayment = cDbl(MRVRepayment) else MRVRepayment = defaultValue end if 'Dim InterestOnly 'InterestOnly = cBool(request.form("chkInterestOnly") = "true") Dim StressRate StressRate = request.form("txtStressRate") if Not IsEmpty(StressRate) and isNumeric(StressRate) then StressRate = cDbl(StressRate) else StressRate = defaultStressRate end if 'dim MonthsOffset 'MonthsOffset = request.form("txtMonthsOffset") 'if Not IsEmpty(MonthsOffset) and isNumeric(MonthsOffset) then ' MonthsOffset = cDbl(MonthsOffset) 'else ' MonthsOffset = defaultValue 'end if dim blnSubmit blnSubmit = cBool(LoanAmount <> 0) Dim AffordableAmount dim ErrorString Sub Calculate() 'Stage 1 Dim HigherIncomeApp1 HigherIncomeApp1 = AnnualIncomeApp1 - 30000 'response.write(AnnualIncomeApp1 & "#AnnualIncomeApp1
") Dim NetIncomeApp1 If HighRateApp1 = True Then NetIncomeApp1 = (HigherIncomeApp1 * 0.05) + 1875 Else NetIncomeApp1 = (AnnualIncomeApp1 * 0.0625) End If 'response.write(NetIncomeApp1 & "#NetIncomeApp1
") Dim HigherIncomeApp2 HigherIncomeApp2 = AnnualIncomeApp2 - 30000 Dim NetIncomeApp2 If HighRateApp2 = True Then NetIncomeApp2 = (HigherIncomeApp2 * 0.05) + 1875 Else NetIncomeApp2 = (AnnualIncomeApp2 * 0.0625) End If Dim MonthlyNetIncome Dim MonthlyNet Dim GrossAnnualLessOuts MonthlyNetIncome = NetIncomeApp1 + NetIncomeApp2 + (UnTaxedIncomeAnnual / 12) 'response.write(MonthlyNetIncome & "#MonthlyNetIncome
") MonthlyNet = MonthlyNetIncome - Outgoings 'response.write(MonthlyNet & "#MonthlyNet
") GrossAnnualLessOuts = AnnualIncomeApp1 + AnnualIncomeApp2 + UnTaxedIncomeAnnual - (Outgoings * 12) 'response.write(GrossAnnualLessOuts & "#GrossAnnualLessOuts
") Dim S2Affordability AffordableAmount = GrossAnnualLessOuts * 4.25 S2Affordability = MonthlyNetIncome * 12 * 4.25 If LoanAmount > AffordableAmount Then ErrorString = "Outside Affordablility @ Stage 1" 'LoanAmount = AffordableAmount RepaymentOnlyAmount = AffordableAmount - InterestOnlyAmount End If if ((AnnualIncomeApp1 + AnnualIncomeApp2 + UnTaxedIncomeAnnual) < 1) and request.form("blnSubmit") = "true" then response.write("
") response.write("Unable to calculate as no income figures provided.") response.write("
") exit sub End If if (MonthlyNet < 0) and request.form("blnSubmit") = "true" then response.write("
") response.write("Unable to calculate, outgoings greater than income.") response.write("
") exit sub End If if (GrossAnnualLessOuts < 0) and request.form("blnSubmit") = "true" then GrossAnnualLessOuts response.write("
") response.write("Unable to calculate, outgoings greater than income.") response.write("
") exit sub End If Dim MonthlyInterest 'If InterestOnly Then MonthlyInterest = (InterestOnlyAmount) * ((StressRate / 12) * 0.01) 'Else ' MonthlyInterest = 0 'End If Dim CurrentTerm CurrentTerm = 1 lookingForAffordable = true if LoanAmount = defaultValue then RepaymentOnlyAmount = AffordableAmount end if while lookingForAffordable and CurrentTerm <= 40 call Output(1,CurrentTerm, MonthlyInterest, MonthlyNetIncome) CurrentTerm = CurrentTerm + 1 wend if lookingForAffordable and blnSubmit then response.write("
") response.write("Unfortunately Nationwide is unable to lend your client the amount requested based on the income and outgoings provided.") response.write("
") exit sub end if End Sub Sub Output(CapitalPortion,CurrentTerm, MonthlyInterest, NetMonthlyIncome) Dim MonthlyCost Dim MonthlyCapitalRepayment 'If InterestOnly = False Then 'RepaymentOnlyAmount = LoanAmount - InterestOnlyAmount 'End If 'MonthlyCapitalRepayment = RepaymentOnlyAmount * CapitalPortion / 12 Dim BPCMonthly Dim EasyRate EasyRate = 1 + (StressRate / 1200) Dim totmonths totmonths = (CurrentTerm * 12)' + MonthsOffset ' additional months [var] BPCMonthly = (((RepaymentOnlyAmount) * (EasyRate ^ totmonths)) * (EasyRate - 1)) / ((EasyRate ^ totmonths) - 1) MonthlyCost = MonthlyInterest + BPCMonthly + MRVRepayment If (NetMonthlyIncome * 0.6) > MonthlyCost Then response.write("
") if request.form("txtLoanAmount") = "0" or request.form("txtLoanAmount") = "" then response.write("Nationwide would be willing to lend your client up to a maximum of " & formatCurrency(AffordableAmount) & ". The minimum term your client could afford to repay this amount over is "& CurrentTerm & " years.

") 'response.write("Nationwide would be willing to lend your client a maximum of " & formatCurrency(AffordableAmount) & ", subject to satisfactory income evidence, credit scoring and suitable security. The minimum term your client could afford this mortgage over is " & CurrentTerm & " years.") LoanAmount = "0" elseif ErrorString = "Outside Affordablility @ Stage 1" then response.write("Unfortunately Nationwide is unable to lend your client the amount requested based on the income and outgoings provided.

") response.write("However, Nationwide could lend your client up to a maximum of " & formatCurrency(AffordableAmount) & ". The minimum term your client could afford to repay this amount over is "& CurrentTerm & " years.

") else response.write("Nationwide could lend your client the amount requested.") if InterestOnlyAmount = defaultValue then response.write(" The minimum term your client could afford this mortgage over is " & CurrentTerm & " years.

") else response.write("

") end if if AffordableAmount = LoanAmount then response.write(" This represents the maximum nationwide would be prepared to lend.

") else CurrentTerm = 1 RepaymentOnlyAmount = AffordableAmount while CurrentTerm <= 40 totmonths = (CurrentTerm * 12)' + MonthsOffset ' additional months [var] BPCMonthly = ((RepaymentOnlyAmount * (EasyRate ^ totmonths)) * (EasyRate - 1)) / ((EasyRate ^ totmonths) - 1) If (NetMonthlyIncome * 0.6) > BPCMonthly Then response.write(" However, Nationwide could lend your client up to a maximum of " & formatCurrency(AffordableAmount)) if InterestOnlyAMount = defaultValue then response.write(".") else response.write(" on a repayment basis.") end if response.write(" The minimum term your client could afford to repay this amount over is " & CurrentTerm & " years.

") CurrentTerm = 40 ' exits end if CurrentTerm = CurrentTerm + 1 wend end if end if response.write(" These amounts are subject to satisfactory income evidence, credit scoring and suitable security.") response.write("
") lookingForAffordable = false End If End Sub %> Intermediaries - Affordabililty Calculator Notes
Mortgage Illustrator - Notes
 

If you know what loan your client requires, enter the loan required and any interest only elements.

If you want to know how much Nationwide would be prepared to lend, leave the first three fields empty and fill in the rest of the information and we'll calculate this for you.


If your client has more than one property (with rental income or a mortgage)

If your client has a property that is let which is mortgage free - Nationwide will allow 75% of the monthly rental income in the affordability calculation - enter this value in the investments field.

If your client has a property where the monthly rental is at least 125% of the mortgage payment Nationwide treats it as self financing, you do not need to deduct this from the calculated affordable amount.

If your client has a property where the monthly rental does not cover 125% of the mortgage then you need to treat the difference as an outgoing as follows:-

Mortgage payment = £500
125% of mortgage = £625
Monthly rental = £600

Outgoing = £25 - enter this in the shared ownership rental field on the calculator


If your client has other mortgages that are continuing and the properties are not let

If your client has other mortgages that are continuing and the properties are not let and you know how much they wish to borrow, please add the existing mortgages to the amount they wish to borrow so the affordability can be assessed against the total new debt.


Investments

Nationwide takes investments of a guaranteed amount that will continue for the foreseeable future into account, please contact your NBSC for advice.


State benefits

Nationwide takes a number of state benefits into account but does not accept the following: Income Support for Mortgage Interest, Child Benefit, Family Credit, Working Families Tax Credit, Disabled Person's Tax Credit or Pension Credit. Proof of benefits will always be required.


Maintenance

Nationwide will take into account maintenance income where it is under the terms of a court order or CSA assessment as long as it has been received for the last 12 months and at the current level for the last three months.


x close window