% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/boe_mpr_forecasts.R
\name{boe_mpr_forecasts}
\alias{boe_mpr_forecasts}
\title{Monetary Policy Report forecast data}
\source{
\url{https://www.bankofengland.co.uk/monetary-policy}
}
\usage{
boe_mpr_forecasts(
  series = c("cpi_inflation", "gdp_growth", "gdp_level", "unemployment", "bank_rate"),
  month = NULL,
  year = NULL,
  cache = TRUE
)
}
\arguments{
\item{series}{Character vector. One or more of:
\code{"cpi_inflation"}, \code{"gdp_growth"}, \code{"gdp_level"},
\code{"unemployment"}, \code{"bank_rate"}. Defaults to all five.}

\item{month}{Character. Publication month of the report, e.g.
\code{"february"} or \code{"may"}. The report is published roughly quarterly,
but the exact month drifts between years (for example, the second
2026 report appeared in April, not May), so any month name is
accepted and its existence is verified against the Bank's website.
Supply with \code{year}. If both are \code{NULL}, the most recent compatible
release is selected automatically.}

\item{year}{Integer. MPR year, 2019 or later. Supply with \code{month}.
If both are \code{NULL}, the most recent compatible release is selected
automatically.}

\item{cache}{Logical. Use cached download if available (default
\code{TRUE}). Older releases never change so the cache never expires;
the latest release is refreshed if older than 24 hours.}
}
\value{
A \code{boe_tbl} data frame with columns:
\describe{
\item{date}{Date. Publication date of the MPR (start of quarter
the report covers).}
\item{horizon}{Character. Forecast horizon label (e.g. \code{"2026 Q1"}).}
\item{horizon_date}{Date. Start of the forecast quarter.}
\item{series}{Character. Series identifier (e.g. \code{"cpi_inflation"}).}
\item{value}{Numeric. Forecast value (percent for rates and
growth; index for \code{gdp_level}).}
}
}
\description{
Downloads the Bank of England's Monetary Policy Report (MPR) and
parses headline projections from the Projections Databank workbook.
Returns a long-format data frame where each row is one (publication
date, forecast horizon, series) triple.
}
\details{
Coverage runs quarterly from November 2019 (when the report was
renamed from Inflation Report) to the latest published release.

Requires the \pkg{readxl} package. The MPR is published as a zip
archive containing a Projections Databank workbook plus chart data
and slides; this function only reads the projection sheets.

Each row of a projection sheet is one MPR publication; columns are
forecast quarters. The same publication therefore contributes
multiple rows here, one per forecast horizon.
}
\section{Release format and automatic fallback}{

From the April 2026 report the Bank moved to a scenario-based
"Scenario Projections Databank" with a transposed layout (following
the Bernanke review of forecasting). That format is not parsed by
this function yet. When automatic selection encounters such a
release it skips it, falls back to the most recent compatible release
(the classic "Projections Databank" workbook), and warns. Requesting
a scenario-format release explicitly via \code{month}/\code{year} raises a
clear error. Pre-2020 MPRs that predate the single "Projections
Databank" workbook may also error.
}

\examples{
\donttest{
if (requireNamespace("readxl", quietly = TRUE)) {
  op <- options(boe.cache_dir = tempdir())

  # Latest CPI inflation projections
  cpi <- boe_mpr_forecasts(series = "cpi_inflation")
  head(cpi)

  options(op)
}
}

}
\seealso{
\code{\link[=boe_mpc_decisions]{boe_mpc_decisions()}}, \code{\link[=boe_mpc_votes]{boe_mpc_votes()}}

Other monetary policy: 
\code{\link{boe_mpc_decisions}()},
\code{\link{boe_mpc_votes}()}
}
\concept{monetary policy}
