CAGR tells you the steady annual rate at which your portfolio would have had to grow to get from its starting value to its ending value. It smooths out year-to-year volatility into a single comparable number.
// years = number of unique calendar years in the backtest period
A strategy that starts at ₹100 and ends at ₹200 over 5 years has a CAGR of roughly 14.9% per year, regardless of how bumpy the ride was in between.
The total percentage gain or loss over the entire backtest period, without annualisation. Useful when comparing strategies run over the same fixed window.
A 300% absolute return over 10 years is less impressive than 300% over 3 years. Always read it alongside CAGR and the backtest duration.
The Sharpe Ratio measures how much excess return you earn for each unit of total volatility. A higher Sharpe means more return per unit of risk.
// risk_free_rate = live India 10Y G-Sec yield (fetched daily)
// annual_std = daily_std × √252
Daily percentage returns are annualised by multiplying by 252 trading days. The standard deviation of those daily returns, also annualised, forms the denominator.
Like Sharpe, but penalises only downside volatility — days when the portfolio falls below the target return. Upside swings don't count against the score.
// target = 5.0% (annualised)
// daily_target = target / 252
// downside_diff = min(daily_return − daily_target, 0)
// downside_deviation = √( mean(downside_diff²) ) × √252
A strategy that earns 20% CAGR with few large down-days will have a much higher Sortino than one that earns 20% with frequent drawdowns, even if their Sharpe ratios are similar.
The Information Ratio measures how consistently the strategy outperforms a passive benchmark (here, a flat daily return equivalent to the live India 10Y G-Sec yield). The numerator is excess return; the denominator is tracking error — the volatility of those excess returns.
// benchmark = live India 10Y G-Sec yield (fetched daily)
// daily_benchmark = benchmark / 252
// excess_returns = daily_return − daily_benchmark
// tracking_error = std(excess_returns) × √252
An IR above 0.5 is generally considered skilled active management. Below zero means the strategy underperformed the risk-free rate on a risk-adjusted basis.
The largest peak-to-trough decline in portfolio value during the backtest. It answers: "what is the worst loss an investor would have experienced if they bought at the peak?"
// running_peak = cumulative maximum portfolio value up to that day
A drawdown of −40% means at some point the portfolio lost 40% of its value from a prior high. Investors must be able to stay invested during recovery.
The Calmar Ratio relates annual return to maximum drawdown. It tells you how much return you are getting for each unit of worst-case loss risk.
A strategy earning 20% CAGR with a −10% max drawdown has a Calmar of 2.0 — much better than one earning 20% CAGR with a −40% drawdown (Calmar 0.5).
Worst Possible Result At Risk
Across thousands of resampled return paths, the worst final outcome ftInvstr observed for this strategy. Helps you mentally rehearse the unlucky case — not just the expected case.
Worst Possible Drawdown
The deepest peak-to-trough drop seen across the Monte-Carlo set. Tells you how brutal the interim experience could have been, even if the final result was fine.
Probability of Positive Return
The share of simulated paths that ended above the starting capital. A measure of how robust the strategy is to reordering of returns — not just the single historical sequence.
See these metrics on a live strategy
Log in to run a backtest and view all metrics broken down year by year on the strategy results page.