What is Beta?
Beta measures how sensitive a fund is to market movements (Nifty 50). A beta of 1.0 means the fund moves in lockstep with the market. Beta > 1 means the fund amplifies market moves (goes up more in bull markets, down more in bear markets). Beta < 1 means it dampens them.
How We Compute It
Run OLS regression: fund_daily_return = α + β × benchmark_daily_return
Beta = slope of this regression line (REGR_SLOPE in DuckDB)
We use daily returns (day-over-day NAV change), not rolling or monthly returns. Daily returns are independent observations with no overlap, which gives correct statistical properties (valid p-values, no autocorrelation bias).
R² (R-Squared)
R² tells you what fraction of the fund's daily variance is explained by the market. R² = 0.85 means 85% of the fund's movement is explained by Nifty 50, and 15% comes from stock selection or other factors.
In the table: black text for R² ≥ 0.70 (strong fit), amber for R² 0.40-0.70 (moderate), red for R² < 0.40 (weak - beta is unreliable).
SQL (simplified)
-- Daily returns for fund and benchmark
WITH fund_daily AS (
SELECT scheme_code, date,
(nav / LAG(nav) OVER (ORDER BY date) - 1) * 100 AS ret
FROM nav_master WHERE nav > 0
),
bench_daily AS (
SELECT date,
(nav / LAG(nav) OVER (ORDER BY date) - 1) * 100 AS ret
FROM index_nav WHERE index_name = 'INDEX_NIFTY50'
)
SELECT
REGR_SLOPE(f.ret, b.ret) AS beta,
REGR_R2(f.ret, b.ret) AS r_squared
FROM fund_daily f
JOIN bench_daily b ON f.date = b.date
WHERE f.ret IS NOT NULL AND b.ret IS NOT NULL
Worked Example
HDFC Flexi Cap - Full History
Beta = 0.92, R² = 0.88
The fund captures 92% of Nifty 50's moves (slightly defensive). 88% of its variance is explained by the market - this is a strong fit, so the beta is reliable.
Axis Focused 25 - Last 3Y
Beta = 0.78, R² = 0.71
More defensive (only 78% of market moves), and 71% fit. The concentrated portfolio (25 stocks) means more stock-specific risk, hence lower R².
Edge Cases
- Low R²: When R² is below 0.40, the beta becomes unreliable - the fund's returns aren't driven by the benchmark, so the regression is a poor fit. We still show beta but in grey italic to flag this.
- Minimum observations: We require at least 60 daily returns. With fewer, the regression is statistically meaningless.
- Benchmark choice matters: The default benchmark is Nifty 50, but you can select a different one via the Benchmark dropdown. A midcap fund benchmarked against Nifty 50 may show lower R² than if benchmarked against Nifty Midcap 150. This doesn't mean the fund is bad - it means the benchmark isn't ideal for that fund. Try switching to a more appropriate benchmark for better insight.
Beta Confidence Intervals
The beta value from the regression is a point estimate. Confidence intervals tell you the range within which the true beta is likely to fall. A narrow CI means the beta is precisely estimated; a wide CI means there is more uncertainty.
CI = Beta ± tcritical × SE(Beta)
tcritical values:
90% CI → 1.645
95% CI → 1.960
99% CI → 2.576
We derive the standard error directly from the beta and t-statistic that are already computed. No additional regression is needed. The t-critical values assume a large sample (250+ daily observations), where the t-distribution closely approximates the normal.
Beta CI - Worked Example
Beta = 0.92, t-stat = 28.4
SE = |0.92 / 28.4| = 0.0324
95% CI = 0.92 ± 1.960 × 0.0324 = [0.856, 0.984]
We are 95% confident the true beta lies between 0.856 and 0.984. The interval is narrow because we have many observations and a high t-stat.
When the t-stat is low (e.g., below 2), the CI becomes wide and may include zero - meaning we cannot be confident the fund has any systematic relationship with the benchmark. This aligns with the R² color coding: low t-stat typically accompanies low R².
Related metrics
More Risk Metrics methodology from the MFPRO analytics tool: