# Fund analytics

## `GET /v1/funds/{fund_id}/analytics` (key required)

Performance analytics **computed server-side from the fund's full daily NAV history**, so you don't have to do the maths yourself.

```bash
curl -H "X-API-Key: pk_live_xxx" "https://api.pakdatahub.com/v1/funds/12843/analytics"
```

```json
{
  "success": true,
  "fund_id": 12843,
  "trailing_returns": { "1m": -3.38, "3m": -3.35, "6m": 9.44, "ytd": -6.3, "1y": -0.11,
                        "3y": 160.7, "5y": 130.68, "since_inception": 126.04 },
  "annualized_returns": { "3y": 37.66, "5y": 18.21 },
  "cagr_since_inception": 8.14,
  "volatility_annualized": 21.96,
  "max_drawdown": -57.0,
  "first_date": "2016-04-18",
  "last_date": "2026-09-18",
  "observations": 3379
}
```

| Field | Meaning |
|---|---|
| `trailing_returns.*` | Total % change in NAV over the period, ending at `last_date`. `ytd` runs from the calendar year start |
| `annualized_returns.3y/5y` | CAGR-style annualized % over 3 and 5 years |
| `cagr_since_inception` | Annualized % from the first NAV |
| `volatility_annualized` | Standard deviation of month-end returns, annualized, in % |
| `max_drawdown` | Largest peak-to-trough fall, in % (negative) |
| `observations` | NAV points used |

**Notes**
- Returns are computed from NAV, so dividend payouts show up as NAV drops on the ex-date. For income funds that distribute heavily, compare with MUFAP's published returns ([`/returns`](https://pakdatahub.com/docs/api-funds.md)), which account for payouts.
- A period longer than the fund's history returns `null`. On Free and Developer plans, NAVs older than your history window aren't used, so long-horizon fields may be `null`.
- Results are cached for about an hour; NAVs update daily.

---
Source: https://pakdatahub.com/docs/api-fund-analytics - PakDataHub docs index: https://pakdatahub.com/docs/llms.txt
