Functional Weave
Code in TypeScript

finance.uk-bank-rate@1.0.1

README.md

1,663 bytes · view raw

# finance.uk-bank-rate

The Bank of England's Bank Rate (the "base rate", and the "official dealing
rate" in older legislation) in force on a date. Statutory interest, tracker
mortgages and loan agreements are all written as a margin over it, and all of
them need the rate on a particular past date, not today's.

The rates are dated rows in `data/bank-rate.json`, one per change, each in force
from the day of the change to the day before the next. They run from the cut to
4% on 8 November 2001 (so the rate on any date from then on is known) to the cut
to 3.75% on 18 December 2025, which was still in force when this version was
published. A date before 8 November 2001 is refused rather than guessed.

Source: Bank of England, "Official Bank Rate history",
https://www.bankofengland.co.uk/boeapps/database/Bank-Rate.asp, checked on
23 September 2026 (no change in 2026 up to that date). Rates are held in basis
points, which every published rate fits exactly (0.1% is 10).

When the rate changes, publish a new version with the new row and the previous
row's `validTo` filled in. The data declares its effective dates, so a
`history=current` build ships only the rate still in force and refuses an
earlier date, explaining why, rather than answering it with today's rate.

## Notices

Contains public sector information licensed under the Open Government
Licence v3.0 (https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/).

Contains Bank of England data. Reproduction of data in the Database is
subject to the terms of the UK Open Government Licence.

1.0.1 adds its attribution notices (NOTICE). The code and the tests are unchanged.