# property.mortgage-affordability
The two checks a UK mortgage lender runs on how much a buyer can borrow:
1. **Income multiple (loan-to-income).** The loan divided by gross annual
income, against the lender's ceiling, typically 4 to 4.5 times income
(`maxIncomeMultipleBasisPoints` 45000 = 4.5×). Returned as a multiple in
basis points, rounded up, and as the largest loan the multiple allows,
rounded down.
2. **Stress-tested repayment.** The monthly repayment at the actual rate and
at a higher stress rate, plus existing commitments, as a share of monthly
income, against the lender's ceiling. This is `lending.affordability`
unchanged: its full result comes back as `repayment`.
`affordable` is true only when both pass.
## Everything rounds against the borrower
The monthly income is annual ÷ 12 rounded down; the multiple is rounded up;
the maximum loan down; and lending.affordability rounds repayments and
ratios up. A test that passes only because of a rounding is not a pass. The
multiple test itself is exact: `withinMultiple` is loan × 10000 ≤ income ×
ceiling, with no rounding in it.
## The ceilings are the lender's
Neither ceiling is a rule in this code. The Bank of England Financial Policy
Committee's loan-to-income flow limit restricts the share of a lender's new
mortgages at or above 4.5× income, but it is a portfolio limit, not a cap on
any one loan; the lender's own policy sets the multiple for each applicant.
The stress rate is also the lender's: the FCA's MCOB 11.6.18R requires
lenders to allow for likely rate rises, and the FPC's specific stress test
was withdrawn from 1 August 2022 (see lending.affordability for the sources).
## What it does not do
Joint applications are the caller's to add up (pass the combined income the
lender counts). Expenditure models, credit scores, deposit and loan-to-value
(see lending.ltv), and interest-only lending are out of scope. Annual income
may be up to £100,000,000 (10,000,000,000 minor units) and the multiple up to
20× (200000), which keeps the arithmetic exact in every language.
## Before you rely on this
**Not professional advice.** This capability calculates property figures from published rules. It is a software component for developers, not legal or financial advice. Rules change and every rate here has an effective date. Check that the dates cover your case. Verify results against the official sources listed above, and have a conveyancer or tax adviser review how you use it, before anyone relies on the output. Provided "as is" under its licence, without warranty.
**Unreviewed.** This capability's implementations agree in every language and pass its published test vectors, which were worked out from the official sources cited. But no qualified conveyancer or tax adviser has yet checked those vectors, or confirmed that the capability covers the cases it claims. Treat it as a draft. Do not use it for real people, money or decisions without your own expert review. Once a qualified reviewer signs off, this notice is replaced with their name, qualification and the date. Each new version needs fresh sign-off.
1.0.1 marks it unreviewed. The code and the tests are unchanged.