Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
Back to tool/Back to issues
#514·quantstats

qs.stats.information_ratio() uses arithmetic mean instead of geometric

Author: atharvajoshi01Created Apr 15, 2026Updated Apr 15, 2026

The information_ratio function computes excess return using arithmetic mean:

python
active_return = returns.mean() - benchmark.mean()

For longer backtests this overstates the ratio compared to using geometric (compounded) returns. The geometric version would be:

python
active_return = (1 + returns).prod() ** (1/len(returns)) - (1 + benchmark).prod() ** (1/len(benchmark))

This matters for crypto strategies where daily returns can be large enough that the arithmetic/geometric gap is meaningful over multi-year backtests.

Would a compounded flag similar to the one added for calmar() and rar() in #512 be welcome here?

Source: ranaroussi/quantstats

View original on GitHubView discussion on GitHub