Best used with an AI agent

40+ live apps, open data APIs, MCP servers, and 200+ guides - more than anyone wants to click through. Point your AI here and it reads the whole map and does the work: finds the tool, pulls the data, runs the analysis, and hands you the links.

Here for the open-source code? Your agent finds the right repo for you - and can even clone and deploy it.

Prefer to explore on your own? Go right ahead.

Paste this to Claude Code, Codex, or any AI agent:
Go to tigzig.com and read tigzig.com/llms.txt. It is a practitioner toolkit - 40+ analytics apps, open no-auth data APIs, MCP servers, open-source repos (github.com/amararun), and 200+ build guides. Help me [your task]. Surface the exact links; where there is an API or MCP, call it directly; and if I want to self-host, find the repo and help me deploy it.

Beta and R-Squared

A fund’s market sensitivity, and how much the market explains it.

Source data: AMFI daily NAV (17,900+ schemes) + Nifty benchmark indices · Last updated: 2026-07-02 · Open the MFPRO tool

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

Daily return = (today's NAV / yesterday's NAV − 1) × 100

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.

R² = (correlation between fund and benchmark daily returns)²

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

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.

SE(Beta) = |Beta / t-stat|

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: