# For macro researchers

If you study the Pakistani economy, PakDataHub is your primary-source layer. It gives you official series, cleaned and dated, through one API, instead of a dozen government sites and PDFs.

## The core macro series

| Area | Ids |
|---|---|
| Growth & activity | `gdp.growth_rate_real_gross_domestic_product_4` (quarterly), `gdp.gross_domestic_product_total_gross_value_add_3` (1950-2000), `industry.lsm.qim`, `auto.sales_cars`, `power.electricity_generation_hydel` |
| Prices | `inflation.cpi.national.yoy`, `inflation.urban_nfne_core_inflation_inflation_measure`, `inflation.wpi`, CPI by group (`inflation.cpi.urban.<group>`), long-run `industry.general_cpi_inflation_measure_year_year_2` (1964 ->) |
| External | `bop.current_account_balance_3`, `reserves.total_sbp_reserves` (1948 ->), `remittances.total_inflow_workers_remittances` (1972 ->), `debt.external.total_external_debt_liabilities` |
| Money & rates | `banking.m2`, `rates.policy_target`, `rates.reverse_repo` (1956 ->), deep KIBOR `banking.<tenor>_karachi_interbank_offer` |
| Exchange rates | `fx.rate.avg.usd` (1947 ->), `fx.effective.reer`, `fx.effective.neer` |

## A typical workflow

```python
import pandas as pd

KEY = "pk_live_xxx"
def series(sid, **p):
    q = "&".join(f"{k}={v}" for k, v in {"format": "csv", "sort": "asc", "limit": 10000, **p}.items())
    return (pd.read_csv(f"https://api.pakdatahub.com/v1/series/{sid}?{q}&api_key={KEY}",
                        parse_dates=["date"]).set_index("date")["value"].rename(sid))

df = pd.concat([series("inflation.cpi.national.yoy"),
                series("fx.rate.avg.usd", transform="yoy"),
                series("remittances.total", transform="yoy")], axis=1)
```

Every series has the same shape, so joining inflation, the exchange rate and remittances into one frame is a few lines.

## Reproducibility

- **Primary sources:** every value is a primary release, dated and sourced (`meta.source`, and `source_url` in the catalog).
- **[Revision vintages](https://pakdatahub.com/docs/api-vintages.md)** (Pro): request data **as it stood** on a past date, for real-time analysis and revision studies.
- **[Transforms](https://pakdatahub.com/docs/api-transforms.md):** YoY, MoM, index and moving averages are computed server-side, so your numbers match the API's.
- **Freshness:** the [status endpoint](https://pakdatahub.com/docs/api-status.md) shows how current each module is.

---
Source: https://pakdatahub.com/docs/for-macro-researchers - PakDataHub docs index: https://pakdatahub.com/docs/llms.txt
