All datasets

Swiss bond spot interest rates by borrower and maturity, daily

Daily spot interest rates on Swiss franc bond issues from the SNB data portal cube 'rendeiduebd': borrower categories (Swiss Confederation bonds, euro-area government bonds, cantons by rating tier, mortgage bond institutions, commercial banks by rating tier, manufacturing and trade by rating tier) crossed with residual maturity (1 to 30 years), in percent. History from 1988. The SNB publishes this cube monthly (end-of-month data).

Source: Swiss National Bank — data portal188,502 rowsUpdated: 9/22/2026
switzerlandbondsyieldsinterest-ratesyield-curvecentral-bank

Quality

97

Attribution

Swiss National Bank (SNB) data portal, data.snb.ch

Schema

ColumnTypeDescription
datetimestampObservation date from the provider's time series. Daily cubes (P1D_L) use calendar dates; monthly cubes (P1M) report YYYY-MM, mapped to the first day of the month.
series_idstringStable machine identifier: snake_case slug of the provider's own dimension codes, in dimension order (e.g. chf_10j).
series_labelstringHuman-readable series name built only from the provider's own dimension labels (the /dimensions endpoint of the SNB data portal), joined with ' — ', e.g. 'CHF Swiss Confederation bond issues — 10 years'.
unitstringCanonical unit mapped from the provider's metadata.unit string: 'In percent' -> %, 'In CHF millions' -> CHF millions, 'Rates at 11 am. in CHF' -> CHF per foreign currency unit. Note: the SNB's metadata declares 'In percent' for every snbgwdzid series, even though the 'Discount in basis points' label implies basis points and 'Threshold factor' is unitless — that is the provider's own metadata.
valuefloatObserved value as a number. Observations the provider reports as null are dropped.
d0stringProvider dimension code for 'Bond categories' (the SNB data portal dimension name). The matching human-readable label is part of series_label.
d1stringProvider dimension code for 'Maturity' (the SNB data portal dimension name). The matching human-readable label is part of series_label.

Sample rows

dateseries_idseries_labelunitvalued0d1
1988-01-04T00:00:00chf_10jCHF Swiss Confederation bond issues — 10 years%4.015CHF10J
1988-01-11T00:00:00chf_10jCHF Swiss Confederation bond issues — 10 years%4.015CHF10J
1988-01-18T00:00:00chf_10jCHF Swiss Confederation bond issues — 10 years%4.025CHF10J
1988-01-25T00:00:00chf_10jCHF Swiss Confederation bond issues — 10 years%4.085CHF10J
1988-01-29T00:00:00chf_10jCHF Swiss Confederation bond issues — 10 years%4.092CHF10J

Download sample data

Download the full sample snapshot for this dataset (sample rows, not the complete dataset).

Use with an LLM

Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).

cURL

curl "https://datazimuts.com/v1/datasets/snb/snb_bond_yields" | jq '{title, rows, columns_count, license}'

Python

import requests

ds = requests.get("https://datazimuts.com/v1/datasets/snb/snb_bond_yields").json()
print(ds["title"], ds["rows"], "rows")

# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
    print(row)

API endpoint: https://datazimuts.com/v1/datasets/snb/snb_bond_yields

Tip: fetch /llms.txt for the full machine-readable catalog.