# Derived indicators

Every other series on PakDataHub is a figure a publisher printed. The **derived layer** is the exception, and it's labelled as one. These are indicators no publisher prints, computed by PakDataHub from official series with a published formula: long spliced histories, real interest rates, spreads, import cover, rolling totals, city-level essentials inflation and fund-category yields.

- **Labelled.** `source` is `PakDataHub`, and the catalog record and every series response carry a `derived` object with the method and the input series:

```json
"derived": {
  "method": "Ex-post real policy rate = SBP policy rate at month-end - national CPI inflation (YoY) for the month ...",
  "inputs": ["rates.reverse_repo", "rates.policy_target", "rates.policy", "inflation.cpi.national.yoy", "..."],
  "version": 1
}
```

- **Reproducible.** Each formula uses only official series you can fetch yourself, and each one is unit-tested against hand-computed values.
- **Kept current.** The layer is recomputed twice a day, after its inputs land. If an input is revised, the derived value is revised too, and the revision is recorded like any other ([vintages](https://pakdatahub.com/docs/api-vintages.md)).
- **On every plan**, with the usual history window per plan.

Official series are never modelled. A derived series sits next to them; it doesn't replace any of them.

## Rates

| Series | What it is | Method |
|---|---|---|
| `rates.policy.history` | SBP policy rate at each month-end, since 1956 | The reverse repo rate (then the policy rate) until the interest-rate corridor of 25 May 2015, the policy (target) rate since |
| `rates.real.policy` | Real policy rate | Policy rate at month-end - national CPI inflation (YoY) |
| `rates.real.kibor_3m` | Real 3-month KIBOR | Monthly average of the daily 3-month KIBOR offer (months with >=10 fixings) - CPI inflation (YoY) |
| `rates.spread.kibor_3m_policy` | 3-month KIBOR minus the policy rate, daily since 2005 | KIBOR 3M offer - the policy rate in effect that day |
| `rates.spread.tbill_3m_policy` | 3-month T-bill cut-off minus the policy rate, per auction since 2004 | Cut-off yield - the policy rate in effect on the auction date |
| `rates.spread.pkrv_10y_3m`, `rates.spread.pkrv_10y_1y` | Yield-curve slope, daily since 2022 | PKRV 10Y - PKRV 3M (or 1Y). Negative = inverted curve |

## Prices

| Series | What it is | Method |
|---|---|---|
| `inflation.cpi.national.yoy.long` | National CPI inflation (YoY) in one series from 1965 | PBS's CPI YoY where published (Jul 2017 ->), else SBP's base-2015-16 national CPI YoY (Jul 2016 ->), else SBP's historical general CPI YoY (1965 -> Apr 2020). Base years differ across the splice points |
| `prices.essentials_inflation.<city>` | Weekly essential-goods inflation (YoY), national and 17 cities, from July 2024 | The geometric mean, over the PBS SPI essential items priced in both weeks (at least 15), of each item's price against 52 weeks earlier: a Jevons index of 52-week price changes, so it doesn't depend on any base week |

## External

| Series | What it is | Method |
|---|---|---|
| `external.import_cover_months` | Months of imports SBP's reserves pay for | SBP's total reserves (gold and foreign exchange) at month-end  the average monthly import bill (goods and services, BOP) of the latest three months |
| `remittances.total.12m` | Workers' remittances, 12-month rolling total (US$ mn) | Sum of the latest 12 consecutive months. It's free of Ramadan/Eid seasonality |
| `fx.spread.interbank.usd` | USD/PKR interbank bid-offer spread (rupees), daily | SBP weighted-average interbank offer - bid |

## Funds and payments

| Series | What it is | Method |
|---|---|---|
| `funds.category.money_market.yield_30d`, `funds.category.shariah_money_market.yield_30d`, `funds.category.income.yield_30d` | What a typical fund in the category is earning, weekly | Median across the category's funds of each fund's latest MUFAP 30-day return (annualised, as MUFAP publishes it) in the week. Weeks with fewer than 5 funds are skipped |
| `funds.category.equity.return_1y`, `funds.category.shariah_equity.return_1y` | Typical 1-year equity-fund return, weekly | Median of each fund's latest MUFAP 365-day return in the week |
| `payments.raast.share_of_retail_value` | Raast's share of retail payments value, quarterly | Raast transaction value  total retail payments value (SBP Payment Systems Review) |

## Fetch one

```bash
curl -H "X-API-Key: pk_live_xxx" \
  "https://api.pakdatahub.com/v1/series/rates.real.policy?from=2015-01-01&sort=asc"
```

Discover the whole layer through the catalog: `GET /v1/catalog?source=PakDataHub`.

## Also computed, not stored as series

- [Server-side transforms](https://pakdatahub.com/docs/api-transforms.md) (`yoy`, `mom`, `pct_change`, `3ma`, `index`) on any series.
- [Fund analytics](https://pakdatahub.com/docs/api-fund-analytics.md): CAGR, volatility, drawdown per fund.
- The weekly [cost-of-living index](https://pakdatahub.com/docs/data-inflation.md) (`cost_of_living.<city>`) and the SPI national averages.

---
Source: https://pakdatahub.com/docs/data-derived - PakDataHub docs index: https://pakdatahub.com/docs/llms.txt
