Finance Python RandomCharts Visualisations

UK Inflation Projection

The chart of this week is a fan chart of inflation showing the historical data as well as projections. The data was published by the Bank of England (BoE) in the Monetary Policy Report – February 2022.

All the plots in this post were produced using my Python libraries:

How inflation is measured?

Each month, the Office for National Statistics (ONS) collects around 180,000 prices of about 700 items. They use this shopping basket to calculate the Consumer Prices Index (CPI). CPI is the measure of inflation that the Bank of England targets. 

Consumer Price Inflation (CPI) is the speed at which the prices of the goods and services bought by households rise or fall. Consumer price inflation is estimated by using price indices. One way to understand a price index is to think of a very large shopping basket containing all the goods and services bought by households. The price index estimates changes to the total cost of this basket. Most of our price indices are published monthly.”

Office for National Statistics (ONS)

Fan Charts for Inflation Projection

The BoE introduced the fan charts in 1996 to communicate their medium term inflation forecasts.

CPI projections and historical values since 2018 to observe the pandemic period.
Note: The projections published by the BoE are conditioned on a market‐implied path for Bank Rate that rises to around 1.5% by the middle of 2023. Besides, wholesale energy prices are assumed to follow their respective futures curves for the first six months of the projections and remain constant beyond that, in contrast to futures curves, which are downward sloping over coming years.

🔷Fan charts convey the uncertainty in their forecasts. They allow us to focus attention on the the forecast distribution, rather than only on small changes to the central projection.

🔷Fan charts promote discussion of the risks to the economic outlook, and thus contribute to a wider debate about economic policy. Fan charts help to make it clear that monetary policy is about making decisions instead of knowing the exact rate of inflation in two years time.

CPI projections and historical values from 2007. In this plot we can observe that the projections for spring 2022 are considerable higher than the inflation values observed values during the 2008 crisis period.

🔷CPI inflation rose from 5.1% in November to 5.4% in December 2021. Inflation is expected to increase further in coming months, to close to 6% in February and March, before peaking at around 7.25% in April.

🔷According to the BoE, the projected overshoot of inflation relative to the 2% target mainly reflects global energy and tradable goods prices, the latter due to global supply chain disruptions.

🔷However, CPI inflation is expected to decrease over time, as global energy prices are assumed to remain constant after 6 months, as global bottlenecks ease and tradable goods prices fall back. Moreover, the BoE projects that CPI inflation will fall back to the 2% target in around 2 years.

Bonus 3D Plot

The Bank of England uses the two-piece normal distribution to model CPI inflation forecasts. Each quarter the bank publishes the parameters for each projection in its Monetary Policy Report. Using these parameters and the twopiece Python package, we can plot the projected density functions to visualise the entire distribution for each forecasted quarter.

CPI Inflation Projection Distributions as of February 2022.

Python Code

# Author: @Quant_Girl
# Title: Fan Chart Inflation Forecast
# Source: Bank of England
# Type: Fanchart

from fanchart.plot import *
import numpy as np

parameters = load_boe_parameters()
history = load_boe_history()

probs = np.arange(0.10, 1, 0.05)
fan(data=parameters, p=probs, historic=history[history.Date >= '2007'], figsize=(12, 8), grid=True,
    title= "CPI Inflation Projection")

A weekly series of quick random charts made with Python 🐍