Performance, Risk, and Diagnostic Metrics

40 pages, grouped into performance ratios, risk and drawdown measures, beta variants, and higher-moment diagnostics. Each page covers the mathematical definition of one metric, its interpretation, and its primary academic citation.

39 of these pages document a value a run returns. GARCH Beta is the exception: it is documented as related work, and no run computes it. Read the two counts separately. A further 18 fields ship without a page of their own, and the last section lists them.

Benchmark-relative values carry a basis

Alpha, the beta variants, the information ratio, tracking error, M-squared, the capture ratios, the V2 ratio, coskewness and cokurtosis all read the benchmark of the run. The portfolio returns include dividends. A price-return index does not, so it understates the benchmark return by approximately the index dividend yield.

  • Against a price-return index, Jensen's alpha and the numerator of the information ratio are biased upward by approximately the index dividend yield. Beta, tracking error and M-squared are largely unaffected, because they read the movement and the volatility of the benchmark and not its average return.
  • A retail run on an Indian benchmark uses the price index unless it chooses the Total Return Index. A fund-manager run that names no benchmark uses the NIFTY 500 Total Return Index, and one that names a benchmark uses its Total Return Index where one exists, unless it chooses the price index. BSE SENSEX has no Total Return Index. The US benchmarks are total-return ETFs.
  • Each run states the series it used in its benchmark_basis block, and on a price-return basis that block names the biased metrics.

The benchmarks guide explains the two series and gives a measured example.

Three of these values are conditional

Most fields are present on every successful run. Three are not. Each one needs a minimum sample, and it is absent from the result when the condition fails.

  • Rolling Beta needs at least 252 daily portfolio returns (about one trading year), or the map is empty. A single year also needs at least 20 aligned observations, or that year is left out.
  • Deflated Sharpe Ratio needs more than one candidate in the trial family and a positive trial variance. It is null otherwise.
  • Sharpe Stability Ratio needs at least 60 rolling-Sharpe observations. A shorter history produces no value.

The six optional beta and co-moment fields (Welch beta, semi-beta, coskewness, cokurtosis, Vasicek beta and James-Stein beta) can also be null, because each needs a minimum sample and a non-degenerate benchmark variance. Their pages give the exact rules.

Performance Ratios

Risk-adjusted return measures, ranging from the classical Sharpe and Sortino ratios to drawdown-adjusted variants (Calmar, Sterling, V2), information-ratio style active measures, and Modigliani-style benchmark-rescaled returns.

Risk & Drawdown Metrics

Tail-loss and dispersion measures, including coherent risk measures (CVaR, EVaR), drawdown-based measures (DaR, CDaR, Ulcer Index), and the third- and fourth-moment shape statistics of the return distribution.

Beta Variants

Different lenses on systematic exposure to a benchmark, including the classical CAPM beta, time-varying rolling beta, mean-reverting Blume adjustment, slope-bounded Welch beta, and the asymmetric semi-beta.

Higher-Moment & Diagnostic Metrics

Higher-order co-moments with the benchmark, concentration and diversification diagnostics on the weight vector, and capture ratios that summarise asymmetric performance in up- and down-benchmark periods.

Reported Without a Dedicated Page

These fields reach every customer in the performance block of a run result, and no page above covers them. The table gives the field name, what the value is, and the path to it in the API response.

FieldWhat it isWhere it appears
expected_returnThe annualised return of the portfolio, measured on every method: the arithmetic mean of the realised daily returns over the fitted window, times 252. The Sharpe Ratio page describes the calculation.results.<method>.performance.expected_return
volatilityThe annualised volatility of the portfolio, measured on every method: the sample standard deviation of the realised daily returns, times the square root of 252.results.<method>.performance.volatility
realized_expected_return, realized_volatility, realized_sharpeThe same three measured values as expected_return, volatility and sharpe, under names that state they are realised. They are always equal to those three fields.results.<method>.performance.realized_*
model_expected_return, model_volatility, model_sharpeThe estimate of the method itself, from its expected-return and covariance inputs at the solved weights, present only when the method returns one. It is not a measurement of the portfolio, and the reports label it so. The Sharpe Ratio page describes the inputs.results.<method>.performance.model_*
cagrThe compound annual growth rate of the cumulative return curve of the run. It is the numerator of both the Calmar ratio and romad.results.<method>.performance.cagr
r_squaredThe squared correlation between the portfolio excess returns and the benchmark excess returns. It is a proxy for the R-squared of the market-model regression, and the code says so: it is not read off a fitted regression.results.<method>.performance.r_squared
beta_pvalueThe two-sided p-value of the t-test on the CAPM beta slope. It is evidence about the market exposure of the portfolio, not about its alpha. The Jensen's Alpha page gives the test and the fallback rules.results.<method>.performance.beta_pvalue
alpha_pvalueThe two-sided p-value of the t-test on the intercept of the same regression. A value above 0.05 means the regression cannot separate the alpha from zero at the 5% level.results.<method>.performance.alpha_pvalue
alpha_stderr, beta_stderrThe classical OLS standard errors of the alpha and the beta. The alpha standard error is multiplied by 252, so it sits beside the annualised alpha.results.<method>.performance.alpha_stderr
residual_volatilityThe standard deviation of the regression residual, annualised by the square root of 252. It is the volatility the benchmark does not explain.results.<method>.performance.residual_volatility
regression_observationsThe count of daily observations in the regression. A value of 0 means the regression did not run, so its p-values read 1.0 and its standard errors read 0.0.results.<method>.performance.regression_observations
var_90The 90% member of the Value at Risk pair, from the 10% empirical quantile of the daily return series. The Value at Risk page documents the 95% member and describes both levels.results.<method>.performance.var_90
cvar_90The 90% member of the Conditional VaR pair, averaging the daily returns at or below the 10% empirical quantile. The Conditional VaR page documents the 95% member and describes both levels.results.<method>.performance.cvar_90

Two notes a reader needs

romad and calmar_ratio are the same expression. Both are the CAGR divided by the absolute maximum drawdown, and both come from the same two inputs of the same run. The two fields always carry the same number. Do not read them as two independent measurements.

r_squared is not a regression output. It is the squared correlation between the portfolio excess returns and the benchmark excess returns, used as a proxy for the R-squared of the market model. The two agree for a single-regressor OLS fit with an intercept, so the proxy is a close one, but the value is never read off a fitted regression. The field falls back to 0.0 when the correlation cannot be computed.

Not investment advice. Past performance is not indicative of future results.