Methodology
Last updated:
This page documents every formula, every data source, and every refresh assumption used on PlainMortgage. The intent is full transparency: if we publish a number, you can find the source and the transformation that produced it.
Data Sources
- Bank of England base rate — published by the Bank's Monetary Policy Committee. Source: Bank of England Bank Rate. Refresh: within hours of every MPC announcement.
- HM Land Registry House Price Index — the official monthly index of UK residential transaction prices, derived from all registered transactions in England, Scotland, Wales, and Northern Ireland. Source: UK House Price Index. Refresh: monthly, with a roughly six-week reporting lag.
- FCA Mortgage Lending Statistics — quarterly aggregates of mortgage approvals by LTV band, fix length, and product type. Source: FCA mortgage lending statistics. Refresh: quarterly.
- Average headline mortgage rates — compiled weekly from public best-buy tables and the FCA MLAR-derived market mean by LTV and fix length. Sample sizes and source URLs are stamped on every row in the database.
Repayment Calculation
The monthly repayment for a repayment mortgage is computed using the standard amortisation formula:
M = P · (r · (1 + r)n) / ((1 + r)n − 1)
where P is the principal (loan amount), r is the monthly
interest rate (annual rate ÷ 12), and n is the term in months
(typically 25 × 12 = 300 or 30 × 12 = 360). For interest-only mortgages,
M = P · r.
Affordability Engine
The affordability engine applies the conventional UK lender stress test:
- Maximum borrowing is capped at 4.5× gross household income as a working ceiling, adjusted downward for monthly debt obligations.
- The stress-test rate is set to base rate + 1 percentage point at the time of the offer (per FCA MCOB 11.6.18R, the standard post-MMR approach).
- Monthly affordability is computed as repayment at the stress-test rate ≤ 35% of net household income after tax and existing debt.
The result is a realistic ceiling, not a guarantee. Real offers vary by lender appetite, credit profile, employment status, and property type. We err conservatively.
Comparison Logic
For fix-versus-tracker comparisons we compute total interest paid over the chosen horizon under two scenarios: the current fix rate held constant, versus the current tracker rate plus the market-implied path for the base rate (derived from overnight index swap curves where available, otherwise a flat assumption). The breakeven crossover point is the rate path at which the two products cost the same; deviations above or below determine which product wins.
Editorial Pipeline
PlainMortgage operates a continuous editorial pipeline. Raw data is loaded into our SQLite database via our ETL (Extract, Transform, Load) framework, then editorial pages and calculator narratives are drafted and reviewed by our editorial team. Numbers are never altered between source and display — only the surrounding explanation passes through editorial review.
Limitations
- Average headline rates are indicators, not personal quotes. A binding rate requires a Decision in Principle from a lender or broker.
- Affordability projections are formulaic. Real lender assessments use richer credit and income data than this site receives.
- House Price Index figures lag transactions by roughly six weeks.
- This site is not a regulated source of financial advice. See our about page for the full disclosure.
Versioning
The database is versioned via the ETL framework. Each release is tagged with a vintage date, and the source URL plus refresh date is stamped onto every page. Material methodological changes are noted in a changelog at the bottom of this page in future releases.
Data Refresh Cadence
Different data sources update on different cadences. The Bank of England base rate is ingested into our database within hours of every Monetary Policy Committee announcement — eight scheduled meetings per year, plus any emergency announcements. The HM Land Registry House Price Index is published monthly with a roughly six-week reporting lag, and we refresh on the morning after each release. The FCA Mortgage Lending Statistics are published quarterly, typically four to six weeks after the end of the reporting quarter, and we refresh on that schedule. Average headline mortgage rates by LTV band are compiled weekly from a public scrape of best-buy tables across the major UK lenders, and the underlying dataset is republished to the live database within 24 hours of the scrape.
Quality Controls
Every data load runs through three layers of validation before publication. First, a schema check ensures the columns match the expected types and that no required field is null. Second, a range check flags any value outside historically-plausible bounds — for example, a base rate above 20% or a regional average house price below £80,000 is held for manual review. Third, a continuity check compares each release against the prior three releases and flags moves outside the typical period-on-period range. When a load triggers an exception, the database is held at the prior release and the editorial team reviews the source before merging. We err strongly on the side of publishing nothing rather than publishing an unverified value — the credibility of the site depends on every figure being defensible against the upstream agency’s publication.
Currency, Units, and Date Format
All money figures are in pounds sterling (GBP). All rates are annualised and shown to two decimal places. The standard date format on every page is DD Month YYYY (UK convention), with the equivalent ISO-8601 string in the underlying HTML timestamp for machine readability. Time zone for all dataset metadata is UTC; for events such as MPC decision dates, the date is given in the prevailing UK time zone (GMT or BST) as published by the Bank of England.
Open Source and Reproducibility
The PlainMortgage codebase, ETL stages, and data-loader scripts are version-controlled in a private repository. Each release is tagged with a Git SHA and a vintage stamp, allowing full reproducibility of any historical snapshot. Researchers and journalists may request a specific historical snapshot by emailing the editorial team with the date in question.
Browse and Navigation
The data on PlainMortgage is structured around four primary surfaces: research pages, calculator, comparison tables, and editorial guides. The research pages are server-rendered from live SELECTs against the database — every number on a research page is auditable to the exact row in the database. The calculator runs entirely in the browser using the documented formulae; nothing is sent to a server. The comparison and ranking tables paginate at fifty rows per page with explicit sort allowlists. Browse paths are documented at the browse index and the XML sitemap exposes every URL to crawlers.