Real interest rates #
This category group contains various measures of local-currency real interest rates. Nominal interest rate measures are selected such that they are roughly comparable across countries. They are adjusted by using either vintages of formulaic estimates of inflation expectations or (backward-looking) vintages of recent CPI inflation trends.
Real short-term interest rates #
Ticker : RIR_NSA / RIRB_NSA
Label : Real short-term interest rate: expectations-based / backward looking
Definition : Main 1-month money market rate or closest proxy: adjusted for inflation expectations / adjusted for latest CPI trend
Notes :
-
For many countries, the short-term interest rate was the 1-month local-currency LIBOR rate until December 2021.
-
At the end of 2021, LIBOR started to be phased out and was replaced on the 15th December 2021 by overnight index swap (OIS) rates in Switzerland, the Eurozone, Great Britain, Japan and the United States. Australia switched to OIS rates on the 1st September 2022. These rates have become the new standard.
-
The following currency areas have used rates other than the 1-month LIBOR rates (prior to the LIBOR reform) for the whole sample history:
-
Brazil: Interbank rate - interbank deposit certificates
-
Canada: 1 month term spot forward rate
-
Chile: 3-month interbank rate (fixing)
-
Czech Republic: 2-week repo rate
-
New Zealand: 90-day bank bill rate
-
Taiwan: 1-year IRS rate
-
-
The Phillipines use the Manila interbank 1-month discount rate prior to the 2nd January 2006, after which the 1-month swap rate is used.
-
Russia uses the 1-month Moscow price rate prior to the 15th April 2011, after which the average of the Moscow price rate and the 1-month OIS rate is used.
-
Inflation expectation refers to a 1-year ahead estimated inflation expectation according to a Macrosynergy methodology. See notes on the category
INFE1Y_JA
here . -
The latest CPI trend refers to the last recorded CPI growth trend (six months over previous six months), seasonally and jump-adjusted, using headline and core rates with equal weights. For more information, see the documentation here .
Real policy-driven interest rates #
Ticker : RPIR_NSA / RPIRB_NSA
Label : Real policy-driven short-term interest rate: expectations-based / backward looking
Definition : A 1-month money market rate or closest proxy that typically serves as an indication of local monetary policy: adjusted for inflation expectations / adjusted for latest CPI trend
Notes :
-
For most countries, the policy-driven and main short-term interest rates are identical. For some countries, there have been (or still are) better metrics for tracking monetary policy intentions. These include:
-
AUD: 1-month OIS rate
-
BRL: Overnight Selic rate
-
CHF: 1-month OIS rate and 1-month deposit rate
-
EUR: 1-month OIS rate
-
INR: 1-month MIBOR and reverse repo rate
-
JPY: 1-month OIS rate
-
NZD: 1-month OIS rate
-
-
Inflation expectation refers to a 1-year ahead estimated inflation expectation according to a Macrosynergy methodology. See notes on the category
INFE1Y_JA
here . -
The latest CPI trend refers to the last recorded CPI growth trend (six months over previous six months), seasonally and jump-adjusted, using headline and core rates with equal weights. For more information, see the documentation here .
Longer-term real IRS yields #
Ticker : RYLDIRS02Y_NSA / RYLDIRS05Y_NSA / RYLDIRS02YB_NSA / RYLDIRS05YB_NSA
Label : Real IRS yield: 2-year maturity, expectations-based / 5-year maturity, expectations-based / 2-year maturity, backward looking / 5-year maturity, backward looking
Definition : Main local interest rate swap yield minus inflation expections: 2-year maturity, adjusted for inflation expectations / 5-year maturity, adjusted for inflation expectations / 2-year maturity, adjusted for latest CPI trend / 5-year maturity, adjusted for latest CPI trend
Notes :
-
The nominal yield is the yield on the fixed receiver positions in the main interest rate swap contracts traded in the currency area.
-
Inflation expectation refers to a 2-year or 5-year ahead estimated inflation expectation according to a Macrosynergy methodology. See notes on the categories
INFE2Y_JA
andINFE5Y_JA
here . -
The latest CPI trend refers to the last recorded CPI growth trend (six months over previous six months), seasonally and jump-adjusted, using headline and core rates with equal weights. For more information, see the documentation here .
Imports #
Only the standard Python data science packages and the specialized
macrosynergy
package are needed.
import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import math
import json
import yaml
import macrosynergy.management as msm
import macrosynergy.panel as msp
import macrosynergy.signal as mss
import macrosynergy.pnl as msn
from macrosynergy.download import JPMaQSDownload
from timeit import default_timer as timer
from datetime import timedelta, date, datetime
import warnings
from IPython.display import HTML
warnings.simplefilter("ignore")
The
JPMaQS
indicators we consider are downloaded using the J.P. Morgan Dataquery API interface within the
macrosynergy
package. This is done by specifying
ticker strings
, formed by appending an indicator category code
<category>
to a currency area code
<cross_section>
. These constitute the main part of a full quantamental indicator ticker, taking the form
DB(JPMAQS,<cross_section>_<category>,<info>)
, where
<info>
denotes the time series of information for the given cross-section and category. The following types of information are available:
-
value
giving the latest available values for the indicator -
eop_lag
referring to days elapsed since the end of the observation period -
mop_lag
referring to the number of days elapsed since the mean observation period -
grade
denoting a grade of the observation, giving a metric of real time information quality.
After instantiating the
JPMaQSDownload
class within the
macrosynergy.download
module, one can use the
download(tickers,start_date,metrics)
method to easily download the necessary data, where
tickers
is an array of ticker strings,
start_date
is the first collection date to be considered and
metrics
is an array comprising the times series information to be downloaded.
# Cross-sections of interest
cids_dmca = [
"AUD",
"CAD",
"CHF",
"EUR",
"GBP",
"JPY",
"NOK",
"NZD",
"SEK",
"USD",
] # DM currency areas
cids_dmec = ["DEM", "ESP", "FRF", "ITL", "NLG"] # DM euro area countries
cids_latm = ["BRL", "COP", "CLP", "MXN", "PEN"] # Latam countries
cids_emea = ["CZK", "HUF", "ILS", "PLN", "RON", "RUB", "TRY", "ZAR"] # EMEA countries
cids_emas = [
"CNY",
# "HKD",
"IDR",
"INR",
"KRW",
"MYR",
"PHP",
"SGD",
"THB",
"TWD",
] # EM Asia countries
cids_dm = cids_dmca + cids_dmec
cids_em = cids_latm + cids_emea + cids_emas
cids = sorted(cids_dm + cids_em)
main = [
"RIR_NSA",
"RPIR_NSA",
"RYLDIRS02Y_NSA",
"RYLDIRS05Y_NSA",
"RIRB_NSA",
"RPIRB_NSA",
"RYLDIRS02YB_NSA",
"RYLDIRS05YB_NSA",
]
econ = [
"NIR_NSA",
"NPIR_NSA",
"CPIC_SJA_P6M6ML6AR",
"CPIC_SJA_P3M3ML3AR",
"CPIH_SJA_P6M6ML6AR",
] # economic context
mark = [
"EQXR_NSA",
"EQXR_VT10",
"DU02YXR_NSA",
"DU02YXR_VT10",
"DU05YXR_NSA",
"DU05YXR_VT10",
] # market links
xcats = main + econ + mark
# Download series from J.P. Morgan DataQuery by tickers
start_date = "2002-01-01"
tickers = [cid + "_" + xcat for cid in cids for xcat in xcats]
print(f"Maximum number of tickers is {len(tickers)}")
# Retrieve credentials
client_id: str = os.getenv("DQ_CLIENT_ID")
client_secret: str = os.getenv("DQ_CLIENT_SECRET")
# Download from DataQuery
with JPMaQSDownload(client_id=client_id, client_secret=client_secret) as downloader:
start = timer()
df = downloader.download(
tickers=tickers,
start_date=start_date,
metrics=["value", "eop_lag", "mop_lag", "grading"],
suppress_warning=True,
show_progress=True,
)
end = timer()
dfd = df
print("Download time from DQ: " + str(timedelta(seconds=end - start)))
Maximum number of tickers is 703
Downloading data from JPMaQS.
Timestamp UTC: 2024-10-29 10:56:01
Connection successful!
Requesting data: 100%|██████████| 141/141 [00:28<00:00, 4.91it/s]
Downloading data: 100%|██████████| 141/141 [00:07<00:00, 19.09it/s]
Some expressions are missing from the downloaded data. Check logger output for complete list.
760 out of 2812 expressions are missing. To download the catalogue of all available expressions and filter the unavailable expressions, set `get_catalogue=True` in the call to `JPMaQSDownload.download()`.
Some dates are missing from the downloaded data.
2 out of 5958 dates are missing.
Download time from DQ: 0:00:43.051931
Availability #
cids_exp = sorted(list(set(cids) - set(cids_dmec))) # cids expected in category panels
msm.missing_in_df(dfd, xcats=main, cids=cids_exp)
No missing XCATs across DataFrame.
Missing cids for RIRB_NSA: []
Missing cids for RIR_NSA: []
Missing cids for RPIRB_NSA: []
Missing cids for RPIR_NSA: []
Missing cids for RYLDIRS02YB_NSA: ['BRL', 'MYR', 'PEN', 'PHP', 'RON']
Missing cids for RYLDIRS02Y_NSA: ['BRL', 'MYR', 'PEN', 'PHP', 'RON']
Missing cids for RYLDIRS05YB_NSA: ['BRL', 'MYR', 'PEN', 'PHP', 'RON']
Missing cids for RYLDIRS05Y_NSA: ['BRL', 'MYR', 'PEN', 'PHP', 'RON']
Quantamental series’ of real interest rates are typically available from the early 2000s for most developed markets. China, Colombia, Russia and Thailand are notable late-starters. Time series’ for real swap yields are not available for the Phillipines, Malaysia, Brazil, Peru and Romania.
For the explanation of currency symbols, which are related to currency areas or countries for which categories are available, please view Appendix 1 .
xcatx = main
cidx = cids_exp
dfx = msm.reduce_df(dfd, xcats=xcatx, cids=cidx)
dfs = msm.check_startyears(
dfx,
)
msm.visual_paneldates(dfs, size=(18, 4))
print("Last updated:", date.today())

Last updated: 2024-10-29
xcatx = main
cidx = cids_exp
plot = msm.check_availability(
dfd, xcats=xcatx, cids=cidx, start_size=(18, 4), start_years=False
)

Average vintage grading is higher for longer-dated yields as the long-dated inflation expectations are based more on concurrent inflation targets, which do not require vintage estimation.
xcatx = main
cidx = cids_exp
plot = msp.heatmap_grades(
dfd,
xcats=xcatx,
cids=cidx,
size=(18, 4),
title=f"Average vintage grades from {start_date} onwards",
)

xcatx = main
cidx = cids_exp
msp.view_ranges(
dfd,
xcats=xcatx,
cids=cidx,
val="eop_lag",
title="End of observation period lags (ranges of time elapsed since end of observation period in days)",
start="2002-01-01",
kind="box",
size=(16, 2.5),
legend_bbox_to_anchor=(1.08, 1),
)
msp.view_ranges(
dfd,
xcats=xcatx,
cids=cidx,
val="mop_lag",
title="Median of observation period lags (ranges of time elapsed since middle of observation period in days)",
start="2002-01-01",
kind="box",
size=(16, 6),
legend_bbox_to_anchor=(1.1, 0.4),
)


History #
Real short-term interest rates #
Real interest rates have been diverse across countries, in terms of means and standard deviations, and generally quite variable over time relative to their means.
xcatx = ["RIR_NSA", "RPIR_NSA"]
cidx = cids_exp
msp.view_ranges(
dfd,
xcats=xcatx,
cids=cidx,
sort_cids_by="mean",
start=start_date,
kind="box",
title="Means and standard deviations of real short-term interest rates, expectations-based, since 2002",
xcat_labels=["Real", "Real policy-driven"],
size=(16, 8),
)

xcatx = ["RIR_NSA", "RPIR_NSA"]
cidx = cids_exp
msp.view_timelines(
dfd,
xcats=xcatx,
cids=cidx,
start=start_date,
title="Main and policy-driven real interest rates, expectations-based",
title_fontsize=27,
legend_fontsize=17,
label_adj=0.075,
xcat_labels=["Real", "Real policy-driven"],
ncol=4,
same_y=False,
size=(12, 7),
aspect=1.7,
all_xticks=True,
)

Backward-looking inflation adjustment can lead to very different real rate estimates in times when the concurrent published inflation trend is well above or below the effective inflation target.
In inflationary periods, this leads to a greater compression in real rates. In temporary lowflation or deflation periods, the backward-looking real rates are typically higher.
xcatx = ["RIR_NSA", "RIRB_NSA"]
cidx = cids_exp
msp.view_timelines(
dfd,
xcats=xcatx,
cids=cidx,
start=start_date,
title="Real expectations-based and backward-looking interest rates",
title_fontsize=27,
legend_fontsize=17,
label_adj=0.075,
xcat_labels=["Expectation", "Backward"],
ncol=4,
same_y=False,
size=(12, 7),
aspect=1.7,
all_xticks=True,
)

Cross-sectional correlations of short-term real interest rates across currency areas have mostly been positive. Russia and China display notable idiosyncratic dynamics.
xcatx = "RIR_NSA"
cidx = cids_exp
msp.correl_matrix(dfd, xcats="RIR_NSA", cids=cidx, cluster=True, size=(20, 14))

Longer-term real IRS yields #
As with short-term real interest rates, cross-sectional and intertemporal differences of longer-term real rates have been fairly wide relative to their means.
Most countries have experienced both negative and sizable positive real interest rates over the sample period.
xcatx = ["RYLDIRS02Y_NSA", "RYLDIRS05Y_NSA"]
cidx = cids_exp
msp.view_timelines(
dfd,
xcats=xcatx,
cids=cidx,
start=start_date,
title="Real 2-year and 5-year interest rate swap yields, expectations-based",
title_fontsize=27,
legend_fontsize=17,
label_adj=0.075,
xcat_labels=["2-year", "5-year"],
ncol=4,
same_y=False,
size=(12, 7),
aspect=1.7,
all_xticks=True,
)

Backward-looking inflation adjustment, for both 2-year and 5-year yields, can produce very different levels of estimated real swap yields compared to expectations-based adjustment.
xcatx = ["RYLDIRS02Y_NSA", "RYLDIRS02YB_NSA"]
cidx = cids_exp
msp.view_timelines(
dfd,
xcats=xcatx,
cids=cidx,
start=start_date,
title="Real 2-year interest rate swap yields",
xcat_labels=["Expectations-based", "Backward-looking"],
title_fontsize=27,
legend_fontsize=17,
label_adj=0.075,
ncol=4,
same_y=False,
size=(12, 7),
aspect=1.7,
all_xticks=True,
)

xcatx = ["RYLDIRS05Y_NSA", "RYLDIRS05YB_NSA"]
cidx = cids_exp
msp.view_timelines(
dfd,
xcats=xcatx,
cids=cidx,
start=start_date,
title="Real 5-year interest rate swap yields",
title_fontsize=27,
legend_fontsize=17,
label_adj=0.075,
xcat_labels=["Expectations-based", "Backward-looking"],
ncol=4,
same_y=False,
size=(12, 7),
aspect=1.7,
all_xticks=True,
)

Importance #
Research links #
“Real, or inflation-adjusted, interest rates may well be the most important prices for any nation’s economy. They govern intertemporal purchasing decisions facing households, firms, and all levels of government. That is, virtually all interactions in the marketplace that entail making a choice between spending now and spending later necessarily involve real interest rates, which specify the real cost of borrowing to make a purchase or, on the flip side, the real gain from saving.” Yi and Zhang
“It is misleading to think of the medium term equilibrium real rate as a constant. Real interest rates move around a lot, and those changes can be persistent. Changes have been driven by both nominal factors, e.g. what the central bank targets and how credible it is, as well as real factors, e.g. the structure of the economy and the financial system. There is therefore no “normal” level of interest rates” Vlieghe
Empirical clues #
Most analysts would expect that higher real interest rates bode well for duration and high-grade fixed income returns, whilst poorly for equity returns.
Indeed, there is evidence of a positive association between real interest rates and subsequent monthly IRS returns in developed markets.
xcatx = ["RIR_NSA", "DU02YXR_NSA"]
cidx = cids_dmca
cr = msp.CategoryRelations(
dfd,
xcats=xcatx,
cids=cidx,
freq="M",
lag=1,
xcat_aggs=["mean", "sum"],
start=start_date,
years=None,
)
cr.reg_scatter(
title="Real short-term interest rates and next-month IRS returns, 2-year maturity, developed markets, since 2002",
labels=False,
coef_box="upper left",
xlab="Real short-term interest rate, expectations-based, % annualized",
ylab="2-year IRS fixed receiver return",
)

xcatx = ["RIR_NSA", "DU05YXR_NSA"]
cidx = cids_dmca
cr = msp.CategoryRelations(
dfd,
xcats=xcatx,
cids=cidx,
freq="M",
lag=1,
xcat_aggs=["mean", "sum"],
start=start_date,
years=None,
)
cr.reg_scatter(
title="Real short-term interest rates and next-month IRS returns, 5-year maturity, developed markets, since 2002",
labels=False,
coef_box="upper left",
xlab="Real short-term interest rate, expectations-based, % annualized",
ylab="5-year IRS fixed receiver return",
)

Moreover, there is evidence of a positive and significant relation between real swap yields and subsequent receiver returns in developed markets at a monthly frequency.
xcatx = ["RYLDIRS05Y_NSA", "DU05YXR_NSA"]
cidx = cids_dmca
cr = msp.CategoryRelations(
dfd,
xcats=xcatx,
cids=cidx,
freq="M",
lag=1,
xcat_aggs=["last", "sum"],
start=start_date,
years=None,
)
cr.reg_scatter(
title="Real 5-year swap yields (expectations-based) and next-month IRS receiver returns, 5-year maturity, developed markets, since 2002",
labels=False,
coef_box="upper left",
xlab="Real 5-year swap yields, expectations-based, % annualized",
ylab="Next month 5-year IRS fixed receiver return",
)

Finally, pooled OLS regression provides evidence that real yields have predictive power with respect to subsequent monthly (or quarterly) equity index future returns, at least in developed markets. Moreover, the positive intercept is highly statistically significant, meaning that the real yield needs to be quite large before the average cumulative equity index future return becomes negative.
xcatx = ["RYLDIRS05Y_NSA", "EQXR_NSA"]
cidx = list(set(cids_dmca) - set(["NOK", "NZD"]))
cr = msp.CategoryRelations(
dfd,
xcats=xcatx,
cids=cidx,
freq="M",
lag=1,
xcat_aggs=["last", "sum"],
start=start_date,
years=None,
)
cr.reg_scatter(
title="Real 5-year swap yields (expectations-based) and subsequent equity returns for developed markets since 2002",
labels=False,
coef_box="lower left",
xlab="Real 5-year swap yields, expectations-based, % annualized",
ylab="Next month equity index future return",
)

cr.ols_table()
OLS Regression Results
==============================================================================
Dep. Variable: EQXR_NSA R-squared: 0.011
Model: OLS Adj. R-squared: 0.010
Method: Least Squares F-statistic: 23.75
Date: Tue, 29 Oct 2024 Prob (F-statistic): 1.18e-06
Time: 10:57:24 Log-Likelihood: -6190.1
No. Observations: 2148 AIC: 1.238e+04
Df Residuals: 2146 BIC: 1.240e+04
Df Model: 1
Covariance Type: nonrobust
==================================================================================
coef std err t P>|t| [0.025 0.975]
----------------------------------------------------------------------------------
const 0.8087 0.097 8.348 0.000 0.619 0.999
RYLDIRS05Y_NSA -0.3051 0.063 -4.874 0.000 -0.428 -0.182
==============================================================================
Omnibus: 192.299 Durbin-Watson: 1.927
Prob(Omnibus): 0.000 Jarque-Bera (JB): 362.621
Skew: -0.602 Prob(JB): 1.81e-79
Kurtosis: 4.613 Cond. No. 1.69
==============================================================================
Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
Appendices #
Appendix 1: Currency symbols #
The word ‘cross-section’ refers to currencies, currency areas or economic areas. In alphabetical order, these are AUD (Australian dollar), BRL (Brazilian real), CAD (Canadian dollar), CHF (Swiss franc), CLP (Chilean peso), CNY (Chinese yuan renminbi), COP (Colombian peso), CZK (Czech Republic koruna), DEM (German mark), ESP (Spanish peseta), EUR (Euro), FRF (French franc), GBP (British pound), HKD (Hong Kong dollar), HUF (Hungarian forint), IDR (Indonesian rupiah), ITL (Italian lira), JPY (Japanese yen), KRW (Korean won), MXN (Mexican peso), MYR (Malaysian ringgit), NLG (Dutch guilder), NOK (Norwegian krone), NZD (New Zealand dollar), PEN (Peruvian sol), PHP (Phillipine peso), PLN (Polish zloty), RON (Romanian leu), RUB (Russian ruble), SEK (Swedish krona), SGD (Singaporean dollar), THB (Thai baht), TRY (Turkish lira), TWD (Taiwanese dollar), USD (U.S. dollar), ZAR (South African rand).
Appendix 2: Reference indicators for short-term interest rates #
# Defining the data
data = {
"Indicator": [
"AED_RIR_NSA", "AUD_RIR_NSA", "BHD_RIR_NSA", "BRL_RIR_NSA", "CAD_RIR_NSA",
"CHF_RIR_NSA", "CLP_RIR_NSA", "CNY_RIR_NSA", "COP_RIR_NSA", "CZK_RIR_NSA",
"DEM_RIR_NSA", "EGP_RIR_NSA", "ESP_RIR_NSA", "EUR_RIR_NSA", "FRF_RIR_NSA",
"GBP_RIR_NSA", "HKD_RIR_NSA", "HUF_RIR_NSA", "IDR_RIR_NSA", "ILS_RIR_NSA",
"INR_RIR_NSA", "ITL_RIR_NSA", "JPY_RIR_NSA", "KRW_RIR_NSA", "MXN_RIR_NSA",
"MYR_RIR_NSA", "NGN_RIR_NSA", "NLG_RIR_NSA", "NOK_RIR_NSA", "NZD_RIR_NSA",
"OMR_RIR_NSA", "PEN_RIR_NSA", "PHP_RIR_NSA", "PLN_RIR_NSA", "QAR_RIR_NSA",
"RON_RIR_NSA", "RSD_RIR_NSA", "RUB_RIR_NSA", "SAR_RIR_NSA", "SEK_RIR_NSA",
"SGD_RIR_NSA", "THB_RIR_NSA", "TRY_RIR_NSA", "TWD_RIR_NSA", "USD_RIR_NSA",
"VEF_RIR_NSA", "ZAR_RIR_NSA"
],
"Country": [
"United Arab Emirates", "Australia", "Bahrain", "Brazil", "Canada",
"Switzerland", "Chile", "China", "Colombia", "Czech Republic",
"Germany", "Egypt", "Spain", "Eurozone", "France",
"United Kingdom", "Hong Kong", "Hungary", "Indonesia", "Israel",
"India", "Italy", "Japan", "South Korea", "Mexico",
"Malaysia", "Nigeria", "Netherlands", "Norway", "New Zealand",
"Oman", "Peru", "Philippines", "Poland", "Qatar",
"Romania", "Serbia", "Russia", "Saudi Arabia", "Sweden",
"Singapore", "Thailand", "Turkey", "Taiwan", "United States",
"Venezuela", "South Africa"
],
"Indicator of reference": [
"UAE DIRHAM 1 MONTH INTERBANK OFFERED RATE", "AUSTRALIAN DOLLAR 1 MONTH BANK BILL",
"BAHRAINI DINAR 1 MONTH INTERBANK OFFERED RATE", "BRAZILIAN REAL 1 DAY INTERBANK DEPOSIT CERTIFICATE RATE",
"CANADIAN DOLLAR 1 MONTH TERM SPOT FORWARD RATE", "SWISS FRANC 1 MONTH LIBOR RATE",
"CHILEAN PESO 3 MONTH SWAP MARKET RATE", "CHINESE YUAN 1 MONTH SHIBOR RATE",
"COLOMBIAN PESO 30 DAY INTERBANK RATE", "CZECH KORUNA 2 WEEK REPO RATE",
"DEUTSCHE MARK 1 MONTH LIBOR RATE", "EGYPTIAN POUND OVERNIGHT INTERBANK OFFERED RATE",
"SPANISH PESETA 1 MONTH LIBOR RATE", "EURO 1 MONTH LIBOR RATE",
"FRENCH FRANC 1 MONTH LIBOR RATE", "BRITISH POUND 1 MONTH LIBOR RATE",
"HONG KONG DOLLAR 1 MONTH INTERBANK OFFERED RATE", "HUNGARIAN FORINT 1 MONTH INTERBANK RATE",
"INDONESIAN RUPIAH 1 MONTH INTERBANK RATE", "ISRAELI SHEKEL 1 MONTH INTERBANK OFFERED RATE",
"INDIAN RUPEE 1 MONTH MIBOR AVERAGE FIX-FBIL", "ITALIAN LIRA 1 MONTH LIBOR RATE",
"IBA JAPANESE YEN INTERBANK LIBOR 1 MONTH", "SOUTH KOREAN WON 1 MONTH INTERBANK OFFERED RATE",
"MEXICAN PESO 28 DAY INTERBANK RATE (TIIE 28)", "MALAYSIAN RINGGIT 1 MONTH INTERBANK OFFERED RATE (KLIBOR)",
"NIGERIAN NAIRA 1 MONTH INTERBANK RATE (NIBOR)", "DUTCH GUILDER 1 MONTH LIBOR RATE",
"NORWEGIAN KRONE 1 MONTH OIBOR RATE", "NEW ZEALAND DOLLAR 90 DAY BANK BILL RATE",
"OMANI RIAL 1 MONTH INTERBANK RATE", "PERUVIAN SOL 1 MONTH INTERBANK RATE",
"PHILIPPINE PESO 1 MONTH SWAP MARKET RATE", "POLISH ZLOTY WARSAW 1 MONTH INTERBANK RATE",
"QATARI RIYAL 1 MONTH INTERBANK RATE", "ROMANIAN LEU 1 MONTH INTERBANK RATE",
"SERBIAN DINAR 1 MONTH DEPOSIT RATE", "RUSSIAN RUBLE MOSCOW PRIME RATE 1 MONTH",
"SAUDI RIYAL 1 MONTH INTERBANK OFFERED RATE", "SWEDISH KRONA 1 MONTH INTERBANK OFFERED RATE",
"SINGAPORE DOLLAR 1 MONTH INTERBANK RATE", "THAI BAHT 1 MONTH INTERBANK OFFERED RATE",
"TURKISH LIRA 1 MONTH INTERBANK OFFERED RATE", "TAIWANESE DOLLAR 1 YEAR INTEREST RATE SWAPS",
"US DOLLAR 1 MONTH SOFR OVERNIGHT INDEX SWAP", "VENEZUELAN BOLIVAR 30 DAY DEPOSIT RATE",
"SOUTH AFRICAN RAND 1 MONTH INTERBANK RATE"
]
}
# Creating the DataFrame
df = pd.DataFrame(data)
HTML(df.to_html(index=False))
Indicator | Country | Indicator of reference |
---|---|---|
AED_RIR_NSA | United Arab Emirates | UAE DIRHAM 1 MONTH INTERBANK OFFERED RATE |
AUD_RIR_NSA | Australia | AUSTRALIAN DOLLAR 1 MONTH BANK BILL |
BHD_RIR_NSA | Bahrain | BAHRAINI DINAR 1 MONTH INTERBANK OFFERED RATE |
BRL_RIR_NSA | Brazil | BRAZILIAN REAL 1 DAY INTERBANK DEPOSIT CERTIFICATE RATE |
CAD_RIR_NSA | Canada | CANADIAN DOLLAR 1 MONTH TERM SPOT FORWARD RATE |
CHF_RIR_NSA | Switzerland | SWISS FRANC 1 MONTH LIBOR RATE |
CLP_RIR_NSA | Chile | CHILEAN PESO 3 MONTH SWAP MARKET RATE |
CNY_RIR_NSA | China | CHINESE YUAN 1 MONTH SHIBOR RATE |
COP_RIR_NSA | Colombia | COLOMBIAN PESO 30 DAY INTERBANK RATE |
CZK_RIR_NSA | Czech Republic | CZECH KORUNA 2 WEEK REPO RATE |
DEM_RIR_NSA | Germany | DEUTSCHE MARK 1 MONTH LIBOR RATE |
EGP_RIR_NSA | Egypt | EGYPTIAN POUND OVERNIGHT INTERBANK OFFERED RATE |
ESP_RIR_NSA | Spain | SPANISH PESETA 1 MONTH LIBOR RATE |
EUR_RIR_NSA | Eurozone | EURO 1 MONTH LIBOR RATE |
FRF_RIR_NSA | France | FRENCH FRANC 1 MONTH LIBOR RATE |
GBP_RIR_NSA | United Kingdom | BRITISH POUND 1 MONTH LIBOR RATE |
HKD_RIR_NSA | Hong Kong | HONG KONG DOLLAR 1 MONTH INTERBANK OFFERED RATE |
HUF_RIR_NSA | Hungary | HUNGARIAN FORINT 1 MONTH INTERBANK RATE |
IDR_RIR_NSA | Indonesia | INDONESIAN RUPIAH 1 MONTH INTERBANK RATE |
ILS_RIR_NSA | Israel | ISRAELI SHEKEL 1 MONTH INTERBANK OFFERED RATE |
INR_RIR_NSA | India | INDIAN RUPEE 1 MONTH MIBOR AVERAGE FIX-FBIL |
ITL_RIR_NSA | Italy | ITALIAN LIRA 1 MONTH LIBOR RATE |
JPY_RIR_NSA | Japan | IBA JAPANESE YEN INTERBANK LIBOR 1 MONTH |
KRW_RIR_NSA | South Korea | SOUTH KOREAN WON 1 MONTH INTERBANK OFFERED RATE |
MXN_RIR_NSA | Mexico | MEXICAN PESO 28 DAY INTERBANK RATE (TIIE 28) |
MYR_RIR_NSA | Malaysia | MALAYSIAN RINGGIT 1 MONTH INTERBANK OFFERED RATE (KLIBOR) |
NGN_RIR_NSA | Nigeria | NIGERIAN NAIRA 1 MONTH INTERBANK RATE (NIBOR) |
NLG_RIR_NSA | Netherlands | DUTCH GUILDER 1 MONTH LIBOR RATE |
NOK_RIR_NSA | Norway | NORWEGIAN KRONE 1 MONTH OIBOR RATE |
NZD_RIR_NSA | New Zealand | NEW ZEALAND DOLLAR 90 DAY BANK BILL RATE |
OMR_RIR_NSA | Oman | OMANI RIAL 1 MONTH INTERBANK RATE |
PEN_RIR_NSA | Peru | PERUVIAN SOL 1 MONTH INTERBANK RATE |
PHP_RIR_NSA | Philippines | PHILIPPINE PESO 1 MONTH SWAP MARKET RATE |
PLN_RIR_NSA | Poland | POLISH ZLOTY WARSAW 1 MONTH INTERBANK RATE |
QAR_RIR_NSA | Qatar | QATARI RIYAL 1 MONTH INTERBANK RATE |
RON_RIR_NSA | Romania | ROMANIAN LEU 1 MONTH INTERBANK RATE |
RSD_RIR_NSA | Serbia | SERBIAN DINAR 1 MONTH DEPOSIT RATE |
RUB_RIR_NSA | Russia | RUSSIAN RUBLE MOSCOW PRIME RATE 1 MONTH |
SAR_RIR_NSA | Saudi Arabia | SAUDI RIYAL 1 MONTH INTERBANK OFFERED RATE |
SEK_RIR_NSA | Sweden | SWEDISH KRONA 1 MONTH INTERBANK OFFERED RATE |
SGD_RIR_NSA | Singapore | SINGAPORE DOLLAR 1 MONTH INTERBANK RATE |
THB_RIR_NSA | Thailand | THAI BAHT 1 MONTH INTERBANK OFFERED RATE |
TRY_RIR_NSA | Turkey | TURKISH LIRA 1 MONTH INTERBANK OFFERED RATE |
TWD_RIR_NSA | Taiwan | TAIWANESE DOLLAR 1 YEAR INTEREST RATE SWAPS |
USD_RIR_NSA | United States | US DOLLAR 1 MONTH SOFR OVERNIGHT INDEX SWAP |
VEF_RIR_NSA | Venezuela | VENEZUELAN BOLIVAR 30 DAY DEPOSIT RATE |
ZAR_RIR_NSA | South Africa | SOUTH AFRICAN RAND 1 MONTH INTERBANK RATE |
Appendix 3: Reference indicators for policy-driven interest rates #
# Defining the data for the new table
data_new = {
"Indicator": [
"AUD_RPIR_NSA", "BRL_RPIR_NSA", "CAD_RPIR_NSA", "CHF_RPIR_NSA", "CLP_RPIR_NSA",
"CNY_RPIR_NSA", "COP_RPIR_NSA", "CZK_RPIR_NSA", "EUR_RPIR_NSA", "GBP_RPIR_NSA",
"HKD_RPIR_NSA", "HUF_RPIR_NSA", "IDR_RPIR_NSA", "ILS_RPIR_NSA", "INR_RPIR_NSA",
"JPY_RPIR_NSA", "KRW_RPIR_NSA", "MXN_RPIR_NSA", "MYR_RPIR_NSA", "NOK_RPIR_NSA",
"NZD_RPIR_NSA", "PEN_RPIR_NSA", "PHP_RPIR_NSA", "PLN_RPIR_NSA", "RON_RPIR_NSA",
"RUB_RPIR_NSA", "SEK_RPIR_NSA", "SGD_RPIR_NSA", "THB_RPIR_NSA", "TRY_RPIR_NSA",
"TWD_RPIR_NSA", "USD_RPIR_NSA", "ZAR_RPIR_NSA"
],
"Country": [
"Australia", "Brazil", "Canada", "Switzerland", "Chile",
"China", "Colombia", "Czech Republic", "Eurozone", "United Kingdom",
"Hong Kong", "Hungary", "Indonesia", "Israel", "India",
"Japan", "South Korea", "Mexico", "Malaysia", "Norway",
"New Zealand", "Peru", "Philippines", "Poland", "Romania",
"Russia", "Sweden", "Singapore", "Thailand", "Turkey",
"Taiwan", "United States", "South Africa"
],
"Indicator of reference": [
"AUSTRALIAN DOLLAR 1 MONTH OVERNIGHT INDEX SWAP", "BRAZILIAN REAL OVERNIGHT SELIC RATE",
"CANADIAN DOLLAR 1 MONTH INTERBANK RATE FIXING", "SWISS FRANC 1 MONTH OVERNIGHT INDEX SWAP",
"CHILEAN PESO 3 MONTH SWAP MARKET RATE", "CHINESE YUAN 1 MONTH SHIBOR RATE",
"COLOMBIAN PESO 30 DAY INTERBANK RATE", "CZECH KORUNA 2 WEEK REPO RATE",
"EURO 1 MONTH OVERNIGHT INDEX SWAP", "BRITISH POUND 1 MONTH LIBOR RATE",
"HONG KONG DOLLAR 1 MONTH INTERBANK OFFERED RATE", "HUNGARIAN FORINT 1 MONTH INTERBANK RATE",
"INDONESIAN RUPIAH 1 MONTH INTERBANK RATE", "ISRAELI SHEKEL 1 MONTH INTERBANK OFFERED RATE",
"INDIAN RUPEE 1 MONTH MIBOR AVERAGE FIX-FBIL", "JAPANESE YEN 1 MONTH OVERNIGHT INDEX SWAP",
"SOUTH KOREAN WON 1 MONTH INTERBANK OFFERED RATE", "MEXICAN PESO 28 DAY INTERBANK RATE (TIIE 28)",
"MALAYSIAN RINGGIT 1 MONTH INTERBANK OFFERED RATE (KLIBOR)", "NORWEGIAN KRONE 1 MONTH OIBOR RATE",
"NEW ZEALAND DOLLAR 1 MONTH OVERNIGHT INDEX SWAP", "PERUVIAN SOL 1 MONTH INTERBANK RATE",
"PHILIPPINE PESO 1 MONTH SWAP MARKET RATE", "POLISH ZLOTY 1 WARSAW MONTH INTERBANK RATE",
"ROMANIAN LEU 1 MONTH INTERBANK RATE", "RUSSIAN RUBLE MOSCOW PRIME RATE 1 MONTH",
"SWEDISH KRONA 1 MONTH INTEREST RATE SWAP", "SINGAPORE DOLLAR 1 MONTH OVERNIGHT INDEX SWAP",
"THAI BAHT 1 MONTH INTERBANK OFFERED RATE", "TURKISH LIRA 1 MONTH INTERBANK OFFERED RATE",
"TAIWANESE DOLLAR 1 MONTH INTERBANK SWAP", "US DOLLAR 1 MONTH OVERNIGHT INDEX SWAP",
"SOUTH AFRICAN RAND 1 MONTH INTERBANK RATE"
]
}
# Creating the DataFrame for the new data
df_new = pd.DataFrame(data_new)
HTML(df_new.to_html(index=False))
Indicator | Country | Indicator of reference |
---|---|---|
AUD_RPIR_NSA | Australia | AUSTRALIAN DOLLAR 1 MONTH OVERNIGHT INDEX SWAP |
BRL_RPIR_NSA | Brazil | BRAZILIAN REAL OVERNIGHT SELIC RATE |
CAD_RPIR_NSA | Canada | CANADIAN DOLLAR 1 MONTH INTERBANK RATE FIXING |
CHF_RPIR_NSA | Switzerland | SWISS FRANC 1 MONTH OVERNIGHT INDEX SWAP |
CLP_RPIR_NSA | Chile | CHILEAN PESO 3 MONTH SWAP MARKET RATE |
CNY_RPIR_NSA | China | CHINESE YUAN 1 MONTH SHIBOR RATE |
COP_RPIR_NSA | Colombia | COLOMBIAN PESO 30 DAY INTERBANK RATE |
CZK_RPIR_NSA | Czech Republic | CZECH KORUNA 2 WEEK REPO RATE |
EUR_RPIR_NSA | Eurozone | EURO 1 MONTH OVERNIGHT INDEX SWAP |
GBP_RPIR_NSA | United Kingdom | BRITISH POUND 1 MONTH LIBOR RATE |
HKD_RPIR_NSA | Hong Kong | HONG KONG DOLLAR 1 MONTH INTERBANK OFFERED RATE |
HUF_RPIR_NSA | Hungary | HUNGARIAN FORINT 1 MONTH INTERBANK RATE |
IDR_RPIR_NSA | Indonesia | INDONESIAN RUPIAH 1 MONTH INTERBANK RATE |
ILS_RPIR_NSA | Israel | ISRAELI SHEKEL 1 MONTH INTERBANK OFFERED RATE |
INR_RPIR_NSA | India | INDIAN RUPEE 1 MONTH MIBOR AVERAGE FIX-FBIL |
JPY_RPIR_NSA | Japan | JAPANESE YEN 1 MONTH OVERNIGHT INDEX SWAP |
KRW_RPIR_NSA | South Korea | SOUTH KOREAN WON 1 MONTH INTERBANK OFFERED RATE |
MXN_RPIR_NSA | Mexico | MEXICAN PESO 28 DAY INTERBANK RATE (TIIE 28) |
MYR_RPIR_NSA | Malaysia | MALAYSIAN RINGGIT 1 MONTH INTERBANK OFFERED RATE (KLIBOR) |
NOK_RPIR_NSA | Norway | NORWEGIAN KRONE 1 MONTH OIBOR RATE |
NZD_RPIR_NSA | New Zealand | NEW ZEALAND DOLLAR 1 MONTH OVERNIGHT INDEX SWAP |
PEN_RPIR_NSA | Peru | PERUVIAN SOL 1 MONTH INTERBANK RATE |
PHP_RPIR_NSA | Philippines | PHILIPPINE PESO 1 MONTH SWAP MARKET RATE |
PLN_RPIR_NSA | Poland | POLISH ZLOTY 1 WARSAW MONTH INTERBANK RATE |
RON_RPIR_NSA | Romania | ROMANIAN LEU 1 MONTH INTERBANK RATE |
RUB_RPIR_NSA | Russia | RUSSIAN RUBLE MOSCOW PRIME RATE 1 MONTH |
SEK_RPIR_NSA | Sweden | SWEDISH KRONA 1 MONTH INTEREST RATE SWAP |
SGD_RPIR_NSA | Singapore | SINGAPORE DOLLAR 1 MONTH OVERNIGHT INDEX SWAP |
THB_RPIR_NSA | Thailand | THAI BAHT 1 MONTH INTERBANK OFFERED RATE |
TRY_RPIR_NSA | Turkey | TURKISH LIRA 1 MONTH INTERBANK OFFERED RATE |
TWD_RPIR_NSA | Taiwan | TAIWANESE DOLLAR 1 MONTH INTERBANK SWAP |
USD_RPIR_NSA | United States | US DOLLAR 1 MONTH OVERNIGHT INDEX SWAP |
ZAR_RPIR_NSA | South Africa | SOUTH AFRICAN RAND 1 MONTH INTERBANK RATE |