Alpha is not the same thing as beating the index. Beating the index is Excess Return. Alpha is what remains after you subtract the return your benchmark exposure was always going to deliver.
The distinction matters because market exposure is cheap. If your strategy moves 1.4 times as hard as the Nifty 50, you should beat the Nifty 50 in an up year. That is leverage on a risk anyone can buy, not evidence of a signal.
How it is computed
saral.money reports annualised CAPM alpha against the benchmark you selected in the backtest config, with the risk-free rate assumed to be zero:
alpha_period = mean(r_strategy) - beta * mean(r_benchmark)
alpha_annual = (1 + alpha_period)^N - 1
Both return series are aligned on their common dates first, so a benchmark with missing history silently shortens the comparison window.
A worked example
Illustrative arithmetic, not a backtest result.
| Input | Value |
|---|---|
| Benchmark annual return | 12.0% |
| Strategy annual return | 18.0% |
| Measured beta | 1.4 |
| Return explained by market exposure | 1.4 x 12.0 = 16.8% |
| Alpha | roughly 1.2 points |
The raw gap was 6 points. Only about 1.2 of them are unexplained by market exposure. That is the entire reason the alpha tile exists next to the excess-return tile.
Caveats
The zero risk-free assumption biases the number. Strict CAPM alpha is (Rp - beta * Rb) - Rf * (1 - beta). With a 6% risk-free rate and a beta of 0.7, the reported alpha runs about 1.8 points high. For a beta above 1 it runs low.
Alpha is a statement about one benchmark. A small-cap strategy measured against the Nifty 50 will show alpha that is mostly a size premium. Measure it against the Nifty Smallcap 250 and much of it disappears.
Alpha discovered on the fortieth variation of a strategy is not evidence of skill. Test enough parameter sets and one will look brilliant by construction. Note how many variations you ran before you believed the number.