Mortgages
Mortgage comparison calculator
- The objective of the “Borrowing” section of the FinancialAdvisor site is to allow users to comprehensively compare mortgage offerings in the market across the various providers.
- The tool will allow users to compare mortgages with different:
- (i) “Headline” Interest Rates (expressed as a % of the amount borrowed)
- (ii) Maturities [also known as ‘term’] (e.g. compare a “2-year” mortgage (where the interest rate is fixed for 2 years) to say a “5-year” mortgage (where the rate is fixed for 5 years).
- (iii) Product Fees. Some mortgages come with a “Product fee”, which is a fixed fee, charged irrespective of the mortgage size.
- The tool will essentially distil the 3 “inputs” (Headline Rate, Term, Product fee) into a single number, which then allows us to rank the mortgage offers an equivalent basis
- This is done as follows:
- Step 1: Combine the “Product Fee” (which is expressed as an absolute £ amount, regardless to the size of the mortgage) into the Headline Interest Rate…. This is done by dividing the Product Fee by the amount borrowed and the ‘duration’ (don’t worry about how duration is computed – it is more or less the number of years (i.e. term))
- Step 2: Compare the “Net” Mortgage Interest Rate (net of the Product Fees) to the “Inter-bank” (or “Swap”) rate observable in the financial markets…. To compare across different maturities
- The attached spreadsheet shows an example of that comparing 4 mortgages (two 2-yr fixed rate mortgages [one with a product fee, one without] and two 5-year mortgages [one with a product fee, one without]).
- Please have a look at the xls file so you can understand the “mathematics” of what we are trying to achieve.
- What you/me need to do, practically, in the Financial Advisor site…..
- First, we need to collect a daily history of
- (i) the top mortgage rates on the market, for each of the maturities being offered (say 2yr, 3yr, 5yr), scraped from moneysupermarket.com and
- (ii) the inter-bank rates (for 2yr, 3yr and 5yr)
- Then for a given day, and mortgage size, compute the best “net rate” for each maturity relative to the government bond rate.
Flexible repayments
- Include a commentary on Flexible mortgages
- (SN to research the rules, and summarise the options)
- Assess the ‘value’ of including this option vs the cost to include
- I.e. (Max amount repayable x IR savings x Duration) vs Cost on the Headline rate?
- Only a valuable feature if Savings rates < Mortgage rate (and add multuiple if user hasn't used their ISA allowance)
- Likely conclusion is that a flexi mortgage, or offset mortgage is largely a marketing gimmick and not to overpay for this feature.
- Comment on what is good debt vs bad debt. Is all debt bad?
- Why borrowing to save does make sense contrary to popular commentaries
- Step 1: Scraping the Mortgage Offers
- The first task is to build a scraper that hits the URL below (example is the 2-year) and capture the top [10] results. Then save 10 new records in the MortgageRates entity in our project.
https://www.moneysupermarket.com/mortgages/rates-table/first-time-buyer/?propertyValue=290000&mortgageAmount=230000&remainingTerm=29&repaymentMethod=Repayment&mortgageType=Fixed&mortgageTerm=TwoYears&sortState=MonthlyRepaymentAmount&directFromLenders=false
- For each record, populate the name of the Lender (i.e. the bank), the Headline Rate (%), the term of the mortgage (e.g. 2 , 3 or 5 year), the Product Fee, and the Date of the scrape.
- You can look at this manually here->http://localhost:8001/mortgage/rates/new
- Lender is a String
- Term is an INT
- Headline Rate is a float
- Product Fee is an INT
- Date is a Date
- So, the end result of this will be 30 records for each day (10 records for each of the 2yr, 3yr, and 5yr mortgage terms. Does that make sense?
- Create a chron jon that scrapes this daily
- Small note
- Interestingly, the result depends on the size of the mortgage being sought by the client. This is because the Product Fee is expressed as an absolute cost and therefore the effect is lower for a larger mortgage and vice versa, and MoneySupermarket.com sorts the results by looking at the net monthly payment amount….
https://www.moneysupermarket.com/mortgages/rates-table/first-time-buyer/?propertyValue=290000&mortgageAmount=230000&remainingTerm=29&repaymentMethod=Repayment&mortgageType=Fixed&mortgageTerm=TwoYears&sortState=MonthlyRepaymentAmount&directFromLenders=false
- Hence to capture all of the best mortgage rates we may need the mortgage scrape to be done twice, once assuming a large mortgage notional and once assuming a small mortgage notional
- So we may want to do the scrape twice times altering the 290000 inputs in the scrape URL
- Let’s first do all the work assuming the 230000 is fixed for now, and we can tweak these later
- Step 2: Scraping the Interbank Rates
- The second step is to scrape the 2yr, 3yr and 5yr inter-bank rates from Investing.com.
- This is similar to scrape for the Mortgage rates, but these do not vary by size, so there are 3 records for each day.
- Step 3: Displaying the results
- The final step is to compute the ranking for a given date and to sensibly display the results
- It would be great to show a graph of the history of the rates (2, 3, 5y) over time to see the lag between the Inter Bank rates and the Mortgage rates
- We will need the user to supply their borrowed amount to convert the Product fee into a % of borrowings – I think we link that to the User?
- Once we have the first 2 steps completed we can address this aspect….
- Include a commentary on Flexible mortgages
- SN - first to confirm rules on fees etc and summarise the impact
- Then analyse the real impact relative to the headline rate
- I.e. Max amount repayable x IR savings x Duration vs Impact on the Headline rate?
- Suspect this is only a valuable feature if Savings rates < Mortgage rate. And if the user has no ISA allowance remaining
- Likely conclusion is that a flexi mortgage, or offset mortgage is largely a marketing gimmick and not to overpay for this feature.
- Comment on what is good debt vs bad debt. Is all debt bad? Why borrowing to save does make sense contrary to popular commentaries