# UK Gilt Yields & Bank Rate Daily Panel with GBP FX (`mrdoe/uk-gilt-yields-bank-rate-panel`) Actor

Daily UK rates panel from the Bank of England: Bank Rate, SONIA, 5, 10 and 20 year gilt yields, real yield and breakeven inflation, curve spreads, changes, percentiles and GBP exchange rates in one row per day.

- **URL**: https://apify.com/mrdoe/uk-gilt-yields-bank-rate-panel.md
- **Developed by:** [MrDoe](https://apify.com/mrdoe) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![UK Gilt Yields & Bank Rate Daily Panel with GBP FX - UK gilt yields and Bank Rate daily panel with curve spreads and sterling exchange rates](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/uk-gilt-yields-bank-rate-panel--hero.png)

### What does UK Gilt Yields & Bank Rate Daily Panel with GBP FX do?

UK Gilt Yields & Bank Rate Panel returns one row per UK business day with the rates backdrop that market predictors, macro dashboards and risk models use. Each row holds the Bank of England Bank Rate, SONIA, the 5, 10 and 20 year nominal gilt par yields, the 10 year zero-coupon nominal and real yields with the implied breakeven inflation rate, the 10s5s and 20s5s curve spreads in basis points with a curve regime label, the gap between the 10 year gilt and Bank Rate, daily changes, the 1-year percentile of the 10 year gilt and the sterling exchange rates against the US dollar, euro and yen. All data is published by the Bank of England.

### Why use UK Gilt Yields & Bank Rate Daily Panel with GBP FX?

- Ready to join: one row per date, so it merges with any price or return series on the date.
- Derived features included: spreads, breakeven, changes, percentiles and a curve regime label.
- Official source: the Bank of England statistical database.
- Sterling FX from the same source, so rates and currency line up on the same dates.
- Bulk history in one run or a daily delta of only the new day. No API key or login.

### What makes this different

UK rate data usually means navigating the Bank of England database series by series and writing your own spreads and percentiles. This Actor selects the right series, joins them by date and computes the features once, so your model gets the UK backdrop in one table.

### Who can use the UK Gilt Yields & Bank Rate Panel and how?

- **Quant researchers:** add UK rates and sterling features to price and return models.
- **Portfolio managers:** monitor gilt curve shape and yield levels.
- **Mortgage and rates analysts:** track gilt yields and Bank Rate together, a common driver of fixed mortgage pricing.
- **Economists and students:** study the UK yield curve, breakeven inflation and sterling together.
- **Newsletter writers:** publish a daily UK rates dashboard.
- **Fintech apps:** show the rates backdrop beside a UK portfolio.
- **AI agent builders:** let an assistant answer what gilt yields and Bank Rate are today.
- **Backtesting platforms:** filter historical signals by UK curve regime.

### How it works

![UK Gilt Yields & Bank Rate Daily Panel with GBP FX workflow: your input, collection, output](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/uk-gilt-yields-bank-rate-panel--how-it-works.png)

1. **Your input** — set a date range or a lookback in days.
2. **The Actor collects it** — the Actor reads Bank of England and joins the series by date.
3. **Your output** — you get one row per trading day with derived features; schedule it daily with delta mode to append each new day.

### What data can you extract?

The dataset has 25 fields per row:

| Field                         | Type   | Description                                                |
| ----------------------------- | ------ | ---------------------------------------------------------- |
| `date`                        | string | Trading date, YYYY-MM-DD.                                  |
| `bank_rate`                   | number | Bank of England Bank Rate, percent.                        |
| `sonia`                       | number | SONIA overnight rate, percent.                             |
| `gilt_5y`                     | number | 5 year gilt par yield, percent.                            |
| `gilt_10y`                    | number | 10 year gilt par yield, percent.                           |
| `gilt_20y`                    | number | 20 year gilt par yield, percent.                           |
| `gilt_10y_zero`               | number | 10 year nominal zero-coupon yield, percent.                |
| `real_10y_zero`               | number | 10 year real zero-coupon yield, percent.                   |
| `gbp_usd`                     | number | Sterling per US dollar rate (USD per GBP).                 |
| `gbp_eur`                     | number | Euros per pound.                                           |
| `gbp_jpy`                     | number | Yen per pound.                                             |
| `spread_10y_5y_bps`           | number | Yield spread 10y 5y, basis points.                         |
| `spread_20y_5y_bps`           | number | Yield spread 20y 5y, basis points.                         |
| `gilt_10y_over_bank_rate_bps` | number | 10 year gilt yield minus Bank Rate, basis points.          |
| `breakeven_10y`               | number | 10 year breakeven inflation (nominal minus real), percent. |
| `curve_regime`                | string | inverted, flat or normal.                                  |
| `change_10y_bps`              | number | 1-day change in 10y, basis points.                         |
| `change_5y_bps`               | number | 1-day change in 5y, basis points.                          |
| `change_bank_rate_bps`        | number | 1-day change in bank rate, basis points.                   |
| `gbp_usd_change_1d_pct`       | number | 1-day change in gbp usd, percent.                          |
| `gilt_10y_percentile_1y`      | number | Percentile of gilt 10y over the last 252 trading days.     |
| `fetch_path`                  | string | How the data was obtained.                                 |
| `source`                      | string | Data source.                                               |
| `scraped_at`                  | string | Timestamp.                                                 |
| `actor_version`               | string | Actor version.                                             |

### How to use UK Gilt Yields & Bank Rate Daily Panel with GBP FX

![UK Gilt Yields & Bank Rate Daily Panel with GBP FX input form](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/uk-gilt-yields-bank-rate-panel--input.png)

1. Open the Actor and go to the **Input** tab.
2. Leave the dates empty for the last 90 days, or set **Start date** and **End date** for a long history. Turn on **Only new trading days (delta mode)** and schedule the Actor after the Bank of England update to append each new day.
3. Optionally set filters and a **Max results** limit.
4. Click **Start**. A default run finishes in under a minute.
5. Open the **Output** tab, then download the dataset or connect it to your tools.

### Input Parameters

| Parameter            | Type    | Required | Default                   | Description                                                                           |
| -------------------- | ------- | -------- | ------------------------- | ------------------------------------------------------------------------------------- |
| `startDate`          | string  | No       | —                         | First trading date, YYYY-MM-DD. Leave empty to use the lookback below.                |
| `endDate`            | string  | No       | —                         | Last trading date, YYYY-MM-DD. Leave empty for today.                                 |
| `lookbackDays`       | integer | No       | `90`                      | Used when no start date is set.                                                       |
| `newestFirst`        | boolean | No       | `true`                    | Return the newest day first. Turn off for chronological order.                        |
| `maxItems`           | integer | No       | `0`                       | Cap on returned rows. Set 0 for no limit.                                             |
| `deltaMode`          | boolean | No       | `false`                   | After the first run with a delta key, return and bill only days not delivered before. |
| `deltaStateKey`      | string  | No       | `"default"`               | Name of the tracked stream.                                                           |
| `proxyConfiguration` | object  | No       | `{"useApifyProxy":false}` | Optional proxy. The sources work without one.                                         |

### Output Data

![UK Gilt Yields & Bank Rate Daily Panel with GBP FX dataset table](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/uk-gilt-yields-bank-rate-panel--output.png)

`bank_rate` and `sonia` are percent. `gilt_*` are nominal par yields in percent. `breakeven_10y` is the 10 year nominal minus real zero-coupon yield. `spread_*_bps` are yield differences in basis points and `curve_regime` is inverted (10s5s below 0), flat (below 25 bps) or normal. `gilt_10y_over_bank_rate_bps` shows how far the 10 year gilt sits above policy. `change_*` are 1-day changes and `gilt_10y_percentile_1y` ranks the 10 year yield over the last 252 trading days.

![UK Gilt Yields & Bank Rate Daily Panel with GBP FX field map of one record](https://api.apify.com/v2/key-value-stores/kE36venAoVchGsE6b/records/uk-gilt-yields-bank-rate-panel--fields.png)

A real dataset item:

```json
{
    "date": "2026-09-23",
    "bank_rate": 3.75,
    "sonia": 3.7305,
    "gilt_5y": 4.8785,
    "gilt_10y": 5.291,
    "gilt_20y": 5.6337,
    "gilt_10y_zero": 5.3055,
    "real_10y_zero": 3.404,
    "gbp_usd": 1.3265,
    "gbp_eur": 1.1634,
    "gbp_jpy": 209.8403,
    "spread_10y_5y_bps": 41.3,
    "spread_20y_5y_bps": 75.5,
    "gilt_10y_over_bank_rate_bps": 154.1,
    "breakeven_10y": 1.902,
    "curve_regime": "normal",
    "change_10y_bps": 10,
    "change_5y_bps": 9.9,
    "change_bank_rate_bps": 0,
    "gbp_usd_change_1d_pct": -0.622,
    "gilt_10y_percentile_1y": 98.4,
    "fetch_path": "boe_statistical_database",
    "source": "bank_of_england_statistical_database",
    "scraped_at": "2026-09-27T05:07:04.099Z",
    "actor_version": "1.0.0"
}
```

### How to read and use the results

1. **Read curve\_regime and spread\_10y\_5y\_bps** for the gilt curve slope.
2. **Compare gilt\_10y with bank\_rate** to see market expectations against policy.
3. **Check breakeven\_10y** for inflation expectations.
4. **Use gilt\_10y\_percentile\_1y** to compare with the past year.
5. **Join on date** to your own price data.
6. **Schedule with delta mode** to append each new day.

### Usage Examples

#### Last 90 days

```json
{}
```

#### Full history for a model

```json
{
    "startDate": "2000-01-01",
    "newestFirst": false
}
```

#### Only new days, for a daily schedule

```json
{
    "deltaMode": true,
    "deltaStateKey": "daily"
}
```

### Tips for Best Results

- Join on the date column; markets are closed on weekends and holidays, so those dates have no row.
- Run the Actor once for the whole history, then schedule it daily with delta mode.
- Use the percentile fields rather than raw levels to compare conditions across years.
- Curve inversion is a slow signal; combine it with faster features such as daily changes.
- Bank Rate changes are visible in change\_bank\_rate\_bps; use them to mark policy days.
- Default is 5 results for a fast test. Set the max to 0 to return everything available.

### Reliability by mode

| Mode                          | Status | Needs login or key? | Notes                                         |
| ----------------------------- | ------ | ------------------- | --------------------------------------------- |
| Bank Rate, SONIA, gilt yields | ✅     | No                  | Published by the Bank of England.             |
| Breakeven inflation (10 year) | ✅     | No                  | From the nominal and real zero-coupon curves. |
| GBP exchange rates            | ✅     | No                  | Bank of England spot rates.                   |
| Intraday or real-time values  | ❌     | -                   | End-of-day only.                              |

✅ works as described, 🟡 works with caveats, ❌ not supported.

### Only new records (delta mode)

Turn on **Only new trading days (delta mode)** and set a **Delta key**. The first run returns the whole range; later runs return, and bill, only trading days not delivered before.

### Known Limitations

- Values are end-of-day and appear after the Bank of England publishes them, so the newest day can be missing.
- Gilt yields are par and zero-coupon curve estimates, not tradable prices.
- The real yield and breakeven series cover the 10 year point only.
- The percentile uses the trailing 252 trading days and is empty until enough history exists.
- This is information, not financial advice.

### Integrations

Run it from the Apify API, on a schedule, or from a webhook. Send results straight to Google Sheets, Make, Zapier, Slack or your own database with Apify's built-in integrations.

### Export Formats

Download the dataset as JSON, CSV, Excel, XML, HTML table or RSS from the **Output** tab or the API.

### Frequently Asked Questions

#### Where does the data come from?

The Bank of England Statistical Interactive Database, which publishes these series for free.

#### How far back does it go?

Bank Rate and gilt yields go back decades; each series starts at its own publication date.

#### Does it need an API key or account?

No.

#### Can I get intraday data?

No, the data is end-of-day.

#### Why is a value empty?

The series did not exist on that date, or the source has not published that day yet.

#### Am I charged for empty days?

No, only for rows returned.

#### Do I need an account or login?

No. The Actor reads public Bank of England data and needs no account or API key.

#### Am I charged for failed runs or empty results?

You are only charged for results that are actually written to the dataset.

#### Can I run it on a schedule?

Yes. Create a Task with your input and add a schedule in Apify Console. With monitor mode on, each scheduled run returns only what changed since the previous one.

### Changelog

- **2026-09-27:** First release.

### Enterprise and custom work

Need higher volumes, a custom output schema, dedicated scheduling or a no-breaking-changes commitment for a production pipeline? Open an issue on the Actor page and describe your use case. Bulk terms and custom builds are available.

### Support

Questions or a missing field? Open an issue from the **Issues** tab on this Actor's page and it will be looked at.

### Legal / Responsible Use

This Actor reads publicly published Bank of England data. You are responsible for how you use the data. It is not financial advice and not affiliated with the Bank of England.

# Actor input Schema

## `startDate` (type: `string`):

First trading date, YYYY-MM-DD. Leave empty to use the lookback below.

## `endDate` (type: `string`):

Last trading date, YYYY-MM-DD. Leave empty for today.

## `lookbackDays` (type: `integer`):

Used when no start date is set.

## `newestFirst` (type: `boolean`):

Return the newest day first. Turn off for chronological order.

## `maxItems` (type: `integer`):

Cap on returned rows. Set 0 for no limit.

## `deltaMode` (type: `boolean`):

After the first run with a delta key, return and bill only days not delivered before.

## `deltaStateKey` (type: `string`):

Name of the tracked stream.

## `proxyConfiguration` (type: `object`):

Optional proxy. The sources work without one.

## Actor input object example

```json
{
  "lookbackDays": 90,
  "newestFirst": true,
  "maxItems": 0,
  "deltaMode": false,
  "deltaStateKey": "default",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("mrdoe/uk-gilt-yields-bank-rate-panel").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "proxyConfiguration": { "useApifyProxy": False } }

# Run the Actor and wait for it to finish
run = client.actor("mrdoe/uk-gilt-yields-bank-rate-panel").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call mrdoe/uk-gilt-yields-bank-rate-panel --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mrdoe/uk-gilt-yields-bank-rate-panel"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/I7yfKdQ6UbGphslPa/builds/CXsYEn6cRzx7c5RdX/openapi.json
