---
title: "Tracking difference"
description: "Tracking difference is the gap between a fund's return and its benchmark's return over a period; for index funds it is the real cost of ownership after fees and frictions."
canonical: https://fundfactsapi.com/glossary/tracking-difference
published: 2026-09-04
updated: 2026-09-04
publisher: FundFacts API
---

# Tracking difference (TD, Return difference vs index, Index underperformance)

> Tracking difference is the gap between a fund's return and its benchmark's return over a period; for index funds it is the real cost of ownership after fees and frictions.

**Tracking difference** is simply the fund's return minus the [benchmark](https://fundfactsapi.com/glossary/benchmark)'s return over a given period, usually a calendar year. A fund that returned 9.7% while its index returned 10.0% has a tracking difference of -0.3 percentage points. For an [index fund](https://fundfactsapi.com/glossary/index-fund) or [ETF](https://fundfactsapi.com/glossary/etf) the figure is usually negative and close to the [TER](https://fundfactsapi.com/glossary/ter), but it can be better or worse than the fee alone because of securities lending income, withholding tax treatment, sampling, cash drag and index rebalancing costs.

It is distinct from [tracking error](https://fundfactsapi.com/glossary/tracking-error), which measures how variable that gap is rather than its size.

## Why it matters

For a passive investor, tracking difference is the true all-in cost of holding a fund; a product with a slightly higher TER but a smaller tracking difference is cheaper in practice. Comparing several years of tracking difference across funds following the same index is one of the most useful things an [ETF comparison site](https://fundfactsapi.com/use-cases/etf-comparison-website) can show, because it uses only published data and requires no assumptions.

## In the API

Calendar-year returns for the fund and its benchmark are returned as parallel arrays, so tracking difference per year is a one-line subtraction.

```json
{
  "benchmarkName": "MSCI World Net Total Return USD Index",
  "calendarReturns": {
    "years": [2023, 2024, 2025],
    "fund": [23.6, 18.4, 12.1],
    "benchmark": [23.8, 18.7, 12.3]
  }
}
```

Example values. `fund[i] - benchmark[i]` gives the tracking difference for `years[i]`. Cumulative figures for both series are in `cumulativePerformance`.

## Common pitfalls

- Make sure the benchmark is the net total return version of the index; comparing against a price index overstates the fund's shortfall.
- Currency matters: compare fund and index in the same currency, and note that hedged share classes track a hedged index.

## In the FundFacts API payload

- `benchmarkName`
- `calendarReturns.years`
- `calendarReturns.fund`
- `calendarReturns.benchmark`
- `cumulativePerformance`

## About FundFacts API

FundFacts turns any fund or ETF ISIN into one dated factsheet (fees and KID costs, the 1–7 risk indicator, holdings, sector and country exposure, returns) read from the fund house's own documents: as a client-ready PDF under your firm's name for advisers and wealth managers, as JSON through its API for developers, or inside ChatGPT and Claude through its MCP server.

FundFacts works inside ChatGPT and Claude as a connector (a remote MCP server): ask about any fund or ETF by ISIN, ticker or name and the assistant answers from FundFacts' dated figures, fees, risk, holdings, exposure and returns, with fund cards, side-by-side comparisons, holdings overlap and portfolio look-through.

- Free API key, no card: https://fundfactsapi.com/signup
- Documentation: https://fundfactsapi.com/docs (OpenAPI: https://fundfactsapi.com/openapi.json)
- MCP server: https://fundfactsapi.com/api/mcp (set-up for every client: https://fundfactsapi.com/mcp-server)
- Pricing: https://fundfactsapi.com/pricing
- Site index for AI assistants: https://fundfactsapi.com/llms.txt
- Informational data, not investment advice.
