Bank of England
Bank of England Database — Bank Rate since 1694, gilt yields, sterling and UK money and credit — as CSV by series code
For UK monetary and financial series — Bank Rate, the sterling ERI, gilt yields, mortgage rates, M4, lending — from the institution that sets or compiles them. The Interactive Database exports any series to CSV once you know its code.
Reach for it when…
For UK monetary and financial series — Bank Rate, the sterling ERI, gilt yields, mortgage rates, M4, lending — from the institution that sets or compiles them. The Interactive Database exports any series to CSV once you know its code.
Not for: UK CPI, GDP and jobs (the Office for National Statistics), intraday gilt prices, EU comparisons (ECB, Eurostat).
Units, revisions, traps
Units. Rates in percent; ERI as an index (2005 = 100); money and credit in £ millions. Daily series are business days.
Revisions. Money and credit are revised monthly; rates are not.
- The CSV endpoint is /boeapps/iadb/fromshowcolumns.asp and needs every parameter (Datefrom, Dateto, SeriesCodes, CSVF, UsingCodes, VPD, VFD) — a missing one, or the /database/ path, returns the HTML page instead.
- Dates are DD/Mon/YYYY in the query and the output.
- Codes are opaque (IUDBEDR = Bank Rate); find them in the Interactive Database first.
- A generic script user-agent gets 403 from the CSV endpoint; send one that names you.
Classic mistake: Reading the sterling ERI as a price of the pound in dollars.
Three recipes
- Recipe 1 · Bank Rate history as CSV
- Recipe 2 · Sterling effective exchange rate
- Recipe 3 · Browser export for bulk series
Each recipe: Python · Excel · Sheets, with how to read the result. Python recipes run under pandas; recipe 1 is re-run by the weekly check where the source allows it.
How to use it in your own work
Copy the snippet, change the series id, read the result the way the footer says. Replace YOUR_…_KEY with your own key where one is needed.
Recipe 1Bank Rate history as CSV
# official Bank Rate, daily (steps), since 2010
import requests, pandas as pd, io
H = {"User-Agent": "Your Name [email protected]"} # identify yourself; generic script user-agents are refused
u = ("https://www.bankofengland.co.uk/boeapps/iadb/fromshowcolumns.asp?csv.x=yes&Datefrom=01/Jan/2010&Dateto=now"
"&SeriesCodes=IUDBEDR&CSVF=TN&UsingCodes=Y&VPD=Y&VFD=N")
df = pd.read_csv(io.StringIO(requests.get(u, headers=H, timeout=30).text))
s = df.set_index(pd.to_datetime(df.DATE, format="%d %b %Y"))["IUDBEDR"]
print(s.drop_duplicates().tail(8)) # only the changes- Data → From Web → the same URL → Load.
=IMPORTDATA with the same URL.Recipe 2Sterling effective exchange rate
import requests, pandas as pd, io
H = {"User-Agent": "Your Name [email protected]"} # identify yourself; generic script user-agents are refused
u = ("https://www.bankofengland.co.uk/boeapps/iadb/fromshowcolumns.asp?csv.x=yes&Datefrom=01/Jan/2015&Dateto=now"
"&SeriesCodes=XUDLBK67&CSVF=TN&UsingCodes=Y&VPD=Y&VFD=N")
df = pd.read_csv(io.StringIO(requests.get(u, headers=H, timeout=30).text))
print(df.tail())- From Web with the same URL.
=IMPORTDATA with the same URL.Recipe 3Browser export for bulk series
# after exporting from the Interactive Database (Excel/CSV), read the file
import pandas as pd
df = pd.read_csv("BoE-Database_export.csv", skiprows=0)
print(df.head())- Interactive Database → search a series → tick → 'Download' at the bottom of the results page.
- File → Import the downloaded CSV.
Series → question map
The ids we use from Bank of England Database, each with the question it answers. The catalog's compare view reads the concept tags behind these rows.
| Series | Answers | Region | Concept |
|---|---|---|---|
| IUDBEDR | What is Bank Rate? | United Kingdom | policy_rate |
| XUDLBK67 | Is sterling strong or weak? (effective rate) | United Kingdom | fx_effective |
| IUDMNZC | Where is the 10-year gilt yield? | United Kingdom | yield_10y |
| LPMVWYR | Is M4 money growing? | United Kingdom | money_supply |
| XUDLUSS | Dollars per pound, daily | United Kingdom | fx_usd |
Compare with
Same question, different source: ECB Data Portal, FRED, BIS Data Portal. The compare view lines up coverage, frequency, history and access side by side and lists what the combination makes possible.
Open compare: Bank of England Database · ECB Data Portal · FRED →
Questions readers ask
Is the Bank of England database free?
Yes, under the Open Government Licence. No key.
Why do I get an HTML page instead of CSV?
A missing query parameter. The URL in recipe 1 has the full set; change only the codes and dates.
Where is UK CPI?
At the Office for National Statistics (ons.gov.uk), not the Bank. FRED mirrors the headline as GBRCPIALLMINMEI.
From the paper
Educational only — we explain, we never advise · snippet licence: public domain · corrections to [email protected], fixed within a day and logged in the changelog.