# SBP policy rate history

The State Bank of Pakistan's policy rate sets the price of money in Pakistan. PakDataHub records every change, and the SBP reverse-repo rate that preceded it back to **1956**.

## The last cycle, in numbers

From `rates.policy_target`:

| Period | Move |
|---|---|
| May 2015 | 6.50%, then down to **5.75%** (May 2016) |
| 2018-2019 | Hikes from 6.00% to **13.25%** (July 2019) |
| Mar-Jun 2020 | COVID cuts to **7.00%** |
| Sep 2021 - Jun 2023 | Tightening to a record **22.00%** (27 June 2023) |
| Jun 2024 - Dec 2025 | Cuts: 20.5 -> 19.5 -> 17.5 -> 15 -> 13 -> 12 -> 11 -> **10.50%** |
| 28 Apr 2026 | Raised to **11.50%** |

The current corridor has an overnight repo floor of **10.50%** (`rates.policy.floor`) and a reverse-repo ceiling of **12.50%** (`rates.policy.ceiling`).

## Get it

```bash
# Every decision (the series only changes on decision dates)
curl -H "X-API-Key: pk_live_xxx" \
  "https://api.pakdatahub.com/v1/series/rates.policy_target?sort=asc"

# The long view: SBP reverse repo since 1956
curl -H "X-API-Key: pk_live_xxx" \
  "https://api.pakdatahub.com/v1/series/rates.reverse_repo?sort=asc"
```

## Compare it with inflation

The real policy rate (policy rate minus inflation) is what the SBP actually steers:

```python
import pandas as pd
k = "pk_live_xxx"
u = lambda s: f"https://api.pakdatahub.com/v1/series/{s}?format=csv&sort=asc&limit=10000&api_key={k}"
rate = pd.read_csv(u("rates.policy_target"), parse_dates=["date"]).set_index("date")["value"]
cpi = pd.read_csv(u("inflation.cpi.national.yoy"), parse_dates=["date"]).set_index("date")["value"]
real = (rate.resample("ME").ffill() - cpi).dropna()
print(real.tail(12).round(2))
```

Market rates track the policy rate closely. See [KIBOR since 2005](https://pakdatahub.com/blog/kibor-history-api) and [T-Bill auction yields](https://pakdatahub.com/blog/tbill-pib-auction-yields-history).

---
Published 2026-09-25 - https://pakdatahub.com/blog/sbp-policy-rate-history
