Central Bank Policy Rates - History vs. Forecast¶
© 2026 Jim Domeij
The chart shows quarterly policy rates from 2019 onward for the US (Fed), Eurozone (ECB), UK (BoE), and Japan (BoJ), extended with Bloomberg’s median economist forecasts through 2027. Solid line segments represent realized (actual) policy settings, while dashed segments show the current consensus expected path as of the data pull date. Comparing levels and slopes highlights where markets expect tightening, easing, or prolonged stability—and how the projected policy divergence/convergence evolves across regions.
Out[1]:
In [2]:
Copied!
# Get historical and forecast policy rates for FED and other central banks
from polars_bloomberg import BQuery
query = """
let(#policy_rate = policy_rate(pr=range(2019Q1, 2027Q4), pt=Q, act_est_data=AE);)
get(#policy_rate)
for(['US', 'EZ', 'GB', 'JP'])
preferences(
dropCols=[
'TICKER',
'REVISION_DATE',
'RATE_TYPE',
'REPORTED_DATE',
'CONCEPT',
'ECO_SOURCE',
'ACT_EST_SOURCE',
'PERIOD',
'PERIOD_END_DATE',
'SEASONALITY'
]
)
"""
with BQuery() as bq:
res = bq.bql(query)
df = res.combine()
df.head(3)
# Get historical and forecast policy rates for FED and other central banks
from polars_bloomberg import BQuery
query = """
let(#policy_rate = policy_rate(pr=range(2019Q1, 2027Q4), pt=Q, act_est_data=AE);)
get(#policy_rate)
for(['US', 'EZ', 'GB', 'JP'])
preferences(
dropCols=[
'TICKER',
'REVISION_DATE',
'RATE_TYPE',
'REPORTED_DATE',
'CONCEPT',
'ECO_SOURCE',
'ACT_EST_SOURCE',
'PERIOD',
'PERIOD_END_DATE',
'SEASONALITY'
]
)
"""
with BQuery() as bq:
res = bq.bql(query)
df = res.combine()
df.head(3)
Out[2]:
shape: (3, 5)
| ID | #policy_rate | PERIOD_REFERENCE_DATE | AS_OF_DATE | ACT_EST_DATA |
|---|---|---|---|---|
| str | f64 | date | date | str |
| "US" | 2.5 | 2019-03-31 | 2026-01-07 | "A" |
| "US" | 2.5 | 2019-06-30 | 2026-01-07 | "A" |
| "US" | 2.0 | 2019-09-30 | 2026-01-07 | "A" |