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.
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")
Native Excel data
let
url = "https://almdatahub.com
/api/v1/range/sonia",
src = Json.Document(
Web.Contents(url,
[Headers=[
Authorization=
"Bearer alm_..."]]))
in src
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.
- 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).
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.
Ready to talk?
No demos. Just a conversation about whether this fits your workflow.