UK Actuarial and Fixed Income Market Data

Curated daily from the Bank of England, ONS, and PRA. One add-in. One token. Zero CSV downloads.

=ALM.SONIA("2026-03-31") 3.73

What you can pull

Roughly 50 functions across six categories. All public regulator data, refreshed daily.

Yield Curves

UK Gilt Nominal, OIS, Inflation, and BoE-published Solvency II RFR (UK, EUR, USD, CAD). Daily and monthly observations from 1970.

=ALM.GILT(10, "2026-03-31")

Smith-Wilson Curve Fits

Interpolate and extrapolate yield curves with your own α, UFR, and day-count assumptions. Curves out to 60 years — the method Solvency II uses for liability discounting.

=ALM.SW_FIT("GILT_NOMINAL", "2026-03-31")

Rates & FX

SONIA, Bank Rate, 22 GBP FX pairs, Sterling ERI. Backfill across weekends and holidays.

=ALM.FX("USD", "2026-03-31", TRUE)

Inflation

RPI, CPI, CPIH, RPIX index levels and official annual rates. ONS data back to 1987 (RPI annual to 1948).

=ALM.RPI("2025-12-01")

PRA Fundamental Spreads

Every CQS × tenor × currency × sector cell for Matching Adjustment. Plus FS breakdown with binding component.

=ALM.PRA_FS(2, 10, "GBP", "FINANCIAL", "2026-01-31")

Mortality

ONS National Period Life Tables — qx, lx, ex by age 0–100 and sex. 43 periods.

=ALM.LIFE_EXPECTANCY(65, "M", "2022-2024")

Three ways to pull it

Same data. Same token. Pick the surface that fits your workflow.

Excel add-in

In-cell formulas

=ALM.SONIA("2026-03-31")

=ALM.SW_FIT(
  "GILT_NOMINAL",
  "2026-03-31")

=ALM.PRA_FS(
  2, 10, "GBP",
  "FINANCIAL",
  "2026-01-31")
Power Query

Native Excel data

let
  url = "https://almdatahub.com
        /api/v1/range/sonia",
  src = Json.Document(
    Web.Contents(url,
      [Headers=[
        Authorization=
          "Bearer alm_..."]]))
in src
Python · R · curl

Anywhere you script

import requests

r = requests.get(
  "https://almdatahub.com"
  "/api/v1/range/sonia",
  headers={
    "Authorization":
      f"Bearer {token}"})
df = r.json()

From regulators to your model

Where the data comes from, what we do with it, and who uses it.

Sources
Bank of England
Yield curves, SONIA, Bank Rate, FX, Solvency II RFR
Office for National Statistics
RPI, CPI, CPIH, RPIX · National Period Life Tables
Prudential Regulation Authority
Fundamental spreads (CQS × tenor × ccy × sector)
ALM DataHub
  • Scheduled jobs — daily, monthly, and annual fetches tracking each source.
  • Data ingestion & normalisation — PDF spreads, nested ZIPs, multi-tab CSVs into one clean schema.
  • Analytics — Smith-Wilson interpolation, PRA breakdown logic, life-table column meanings.
  • REST API — fully documented.
  • Excel add-in — rich function library with full access to the curated data.
  • Scripting support — Python, R, curl, Power Query (with templates).
Used by
Life insurers & pension consultancies
Solvency II MA, liability discounting, mortality assumptions
Big 4 & actuarial advisory
Client deliverables — handed over with the data still flowing
Quants, treasury, academia
Curve modelling, FX, fixed-income research

Why this exists

Actuaries shouldn't be CSV-downloading from three regulators every quarter. The data we serve is public — Bank of England, ONS, PRA — but stitching it together, parsing it correctly, and keeping it current is its own project.

ALM DataHub is that project. We do the data plumbing so you can do the modelling.

What's inside

Live numbers, refreshed on every page load.

18
data series
202,629
data points
1970
earliest history
3
regulator sources

Ready to talk?

No demos. Just a conversation about whether this fits your workflow.