# Tracking error vs tracking difference: definitions, formula, example

Canonical URL: https://marketheist.io/portfolio/learn/tracking-error
By Jeffrey Lin · Published 2026-10-30 · Updated 2026-10-30 · Data through Sep 2026
Category: Data

## Key takeaways

- Tracking error measures how far a fund's returns wander from its benchmark's month to month, quoted as a yearly figure: the volatility of the gap between the two.
- Tracking difference is the gap in yearly growth between a fund and its benchmark over the same months. A fund can track closely month to month yet trail steadily because of its fees, or wander widely yet end up with almost the same growth.
- Correlation, tracking error and tracking difference answer three different questions: did they move together, how far apart did they wander, and did one systematically earn more.
- Index funds are judged on all three; active managers are judged mostly on tracking error, also called active risk, the risk figure in the information ratio.
- MarketHeist uses tracking error to grade every proxy that extends a fund's history, measured on monthly returns over the months both existed.

## Definition

Tracking error is the annualized standard deviation of the difference between a fund's returns and a benchmark's returns: it measures how much the two wander apart from period to period. It says nothing about which one grew faster; that is the tracking difference, the gap between their annual growth rates.

Also known as: TE, active risk, tracking error volatility, tracking difference, tracking error vs tracking difference, ex-post tracking error.

## How it works

Take two return series over the same months: a fund and the benchmark it is meant to follow, or, in a proxy-extended backtest, an ETF and the older fund standing in for it. Subtract one from the other month by month. If the two were identical, every difference would be zero.

Tracking error is the standard deviation of those differences. It ignores their average: a fund that lags its index by the same small amount every month has a tracking error near zero, because the gap never varies. What raises tracking error is a gap that swings, one month ahead and the next behind, as happens when the two hold different securities, weight them differently, or value them at different times.

Tracking difference looks at the average instead. It compares how much each grew over the whole period, annualized. For an index fund it is usually close to minus the expense ratio; for two different indexes it can be anything, and it says nothing about the month-to-month fit.

Tracking error is how far a dog on a leash strays from its owner's side; tracking difference is whether the dog ends the walk ahead of the owner or behind.

Correlation is a third, separate view: it measures whether the two moved in the same direction, not by how much. Two funds can correlate highly while one swings twice as hard as the other, which creates tracking error, or while one carries a cost the other does not, which creates tracking difference.

## Formula

**Monthly return difference**

```
d_t = r_t^P - r_t^B, \bar{d} = \frac{1}{n} \sum_{t = 1}^n d_t
```

where:

- dₜ: difference between the two monthly returns in month t
- rₜᴾ: monthly total return of the series being judged (the proxy, or a fund)
- rₜᴮ: monthly total return of the reference (the ETF the proxy stands in for, or a fund's benchmark)
- d̄: average monthly difference
- n: number of months both series have

**Tracking error, annualized from monthly data**

```
TE = \sqrt{12} \cdot \sqrt{\frac{1}{n - 1} \sum_{t = 1}^n (d_t - \bar{d})^2}
```

where:

- TE: annualized tracking error, as a fraction (0.02 = 2% a year)
- √12: annualization factor for monthly data, which assumes the monthly gaps are independent
- n − 1: sample divisor

Subtracting d̄ makes tracking error blind to a steady gap. Some practitioners use the root mean square of dₜ instead, which also counts the average gap.

**Tracking difference, annualized and geometric**

```
TD = (\prod_{t = 1}^n (1 + r_t^P))^{12/n} - (\prod_{t = 1}^n (1 + r_t^B))^{12/n}
```

where:

- TD: annualized tracking difference: positive means the series being judged grew faster than the reference
- ∏: product over the overlapping months

**Information ratio, where tracking error is the risk**

```
IR = \frac{12 \cdot \bar{d}}{TE}
```

where:

- IR: information ratio: average active return per unit of tracking error, both annualized
- 12 · d̄: average monthly difference, annualized arithmetically

Used to judge active managers against their benchmark. MarketHeist does not report it; it is shown for context.

## Worked example

DBC, a broad commodity ETF, and the S&P GSCI commodity index (^SPGSCI) that MarketHeist uses to extend DBC's history back to Feb 1985, compared over the 247 months both existed.

The two moved together: the correlation of their monthly returns was 0.953. Yet the annualized tracking error was 7.41%, large for two series that follow the same asset class. DBC tracks a different commodity index, with a different mix of energy, metals and farm goods and a different way of rolling its futures, so in any given month one could be well ahead of the other.

Over the whole overlap those gaps nearly cancelled. The tracking difference, the gap between the two annual growth rates, was 0.02%: across the full overlap neither series systematically out-earned the other. A high tracking error with a near-zero tracking difference is the textbook case of the two measures disagreeing.

MarketHeist grades this proxy approximate. However well the two move together, a close proxy may have a tracking error of at most 3%, and this one's is well above that, which is why the early part of DBC's extended history, the years before Mar 2006, approximates the fund rather than reproduces it.

Switch the lab to SPY or VTI to see the other extreme: a proxy that is the same index's mutual fund, with a tracking error a small fraction of DBC's.

Data through Sep 2026. Reproduce id: 2c5497320f8a3d15 (this guide, its lab setup and the data month).

## How MarketHeist computes it

- **Data**: Monthly total returns (dividends reinvested). Funds younger than the period shown are extended backward with older funds, spliced on returns, not prices.
- **Window**: The worked example and the lab use the fund's whole extended history, Feb 1985 to Sep 2026 (500 months), ending at the data month of this page.
- **Splice**: The ETF's own returns wherever it has data; the earlier months come from the first proxy of its chain that has them, and so on down the chain. The splice is on returns, never on price levels. The tracking figures compare the first proxy with the ETF over the months both exist, and the grade is the one the fund-history pages use.
- **Overlap**: Statistics use only the months both the ETF and its first proxy have, from the ETF's own monthly total returns (dividends reinvested) and the proxy's. The extended series is never compared with itself. (`overlapStats` in packages/portfolio/engine/tracking.ts)
- **Tracking error**: Sample standard deviation (divides by n − 1) of the monthly differences proxy minus ETF, times √12. The average difference is removed first, so a constant gap adds nothing. (`overlapStats` in packages/portfolio/engine/tracking.ts)
- **Tracking difference**: The proxy's compound growth over the overlap raised to 12/n, minus the ETF's, so each is an annual growth rate. Positive means the proxy earned more. (`overlapStats` in packages/portfolio/engine/tracking.ts)
- **Correlation**: Pearson correlation of the two monthly return series over the overlap. (`pearson` in packages/portfolio/engine/correlation.ts)
- **Grade**: Close: correlation at least 0.95 and tracking error at most 3%. Approximate: tracking error at most 8% and either a cash-like ETF (annualized volatility at most 3%) or a correlation of at least 0.80 with a volatility ratio of at most 1.25. Anything else, including missing statistics, is a stand-in. (`proxyGrade` in packages/portfolio/engine/tracking.ts)
- **Minimum overlap**: A fund-history page needs at least 24 overlapping months between the ETF and each proxy before it publishes the proxy's statistics. (`MIN_OVERLAP_MONTHS` in content-engine/src/history.ts)
- **Engine functions**: `spliceChain` (packages/portfolio/engine/splice.ts), `overlapStats` (packages/portfolio/engine/tracking.ts), `proxyGrade` (packages/portfolio/engine/tracking.ts), `metricsFromReturns` (packages/portfolio/engine/portfolio.ts)

## Tracking error compared with its neighbours

Tracking error and the statistics beside it

| Statistic | Question it answers | Blind to | Typical use |
| --- | --- | --- | --- |
| Tracking error | How far apart do the two wander month to month? | A steady gap, such as a fee | Index fund quality; active risk of a manager |
| Tracking difference | Did one grow faster over the whole period? | How bumpy the path was | Cost of owning an index fund; proxy bias |
| Correlation | Do they move in the same direction? | Size of the moves and any steady gap | First screen for a proxy or a hedge |
| Beta | How much does one move per unit move of the other? | Moves the other does not explain | Matching the size of moves |
| Information ratio | Average outperformance per unit of tracking error | Nothing new; combines the two | Judging active managers |

## Limitations

- Annualizing with √12 assumes the monthly gaps are independent. When gaps persist for several months, as with a slowly diverging index, the true annual spread can be larger than the figure suggests.
- Tracking error measured after the fact describes the past fit. It is not a forecast of the fit in future months, and it can change when either side changes its holdings or method.
- For a proxy, the statistics describe the years after the ETF launched. The proxy's behaviour in its earlier, unchecked years can differ, for example if its own index or fees changed.
- A low tracking error does not make a proxy cheap or a fund efficient: a constant fee gap shows up only in the tracking difference.
- Monthly data hide day-to-day gaps. Daily tracking error of the same pair, annualized, can come out higher, partly because of timing differences in closing prices that wash out over a month.

## Frequently asked questions

**What is the difference between tracking error and tracking difference?**

Tracking error is the volatility of the gap between a fund and its benchmark: how much the gap moves around from period to period. Tracking difference is the average size of the gap over a whole period, usually as an annual growth rate. Index fund investors pay the tracking difference; tracking error tells them how reliably they get the index month by month.

**What is a good tracking error for an index fund?**

There is no universal cutoff. Funds that hold every security of a large, liquid index usually run a small fraction of a percent a year on monthly data, while funds that sample a broad bond or emerging-market index, or hold futures, run higher. Compare funds that track the same index, measured over the same months and frequency.

**How do you calculate tracking error from monthly returns?**

Subtract the benchmark's return from the fund's in each month, take the sample standard deviation of those differences, and multiply by √12 to annualize. Do not include months where either series is missing.

**Can two funds have high correlation and high tracking error?**

Yes. Correlation measures direction, not size. If one fund swings harder than the other, or holds a different mix inside the same asset class, they can move the same way almost every month and still drift apart by a sizable amount each time.

**How does MarketHeist use tracking error?**

To grade each older fund or index that extends an ETF's history. The grade combines correlation, tracking error and the volatility ratio, and each fund-history page shows them with the tracking difference.

## References

1. Roll, R. (1992) A Mean/Variance Analysis of Tracking Error. Journal of Portfolio Management 18(4).
2. Grinold, R. C. and Kahn, R. N. (2000) Active Portfolio Management. McGraw-Hill, second edition. Active risk and the information ratio.
3. Pope, P. F. and Yadav, P. K. (1994) Discovering Errors in Tracking Error. Journal of Portfolio Management 20(2). Serial correlation and the annualization of tracking error.
4. Frino, A. and Gallagher, D. R. (2001) Tracking S&P 500 Index Funds. Journal of Portfolio Management 28(1).

## Try it

App: https://marketheist.io/portfolio/history/dbc

MCP prompt (MarketHeist MCP server, https://marketheist.io/mcp):

```
Using MarketHeist.io, how closely did the older proxy for DBC track the ETF while both existed: what were the correlation, the tracking error and the tracking difference?
```

Historical simulation, not advice.
