Sources & methodology
Where each number comes from on this server (live data), and how it's calculated. Naming a source here is attribution only. It doesn't mean the data may be copied, scraped or republished: each provider's own terms apply.
| Data | Supplied by | Notes and limitations |
|---|---|---|
| Mutual funds | ||
| Latest NAV and its date Official source | AMFI (Association of Mutual Funds in India) | From AMFI's daily NAV file (NAVAll.txt). |
| Fund search, scheme name, plan, option, category, fund house Official source | AMFI (Association of Mutual Funds in India) | From AMFI's daily NAV file. |
| Minimum investment, launch date Official source | AMFI (Association of Mutual Funds in India) | From AMFI's scheme master file, when the scheme is listed there. |
| NAV history (before the latest day) Third-party | mfapi.in (free mirror of AMFI NAV history) | A free mirror of AMFI's data, not AMFI itself. The latest NAV always comes from AMFI, and any mismatch is flagged on the fund's page. |
| Exit load Estimate | Fundalyzer | The typical load for the fund's category, labelled "estimated". Not the scheme's actual rule. |
| Expense ratio, AUM, fund manager, riskometer, objective, scheme documents Not available | – | No free source whose terms permit this use has been found, so it isn't shown. |
| Stocks & ETFs | ||
| Symbol search and company name Third-party | Twelve Data | Twelve Data's symbol search. Not configured on this server, so stock pages are unavailable. |
| Daily closing prices (adjusted for splits and dividends) Third-party | Twelve Data | Requested with adjust=all. Not configured on this server, so stock pages are unavailable. |
| 52-week high / low Calculated | Fundalyzer | Calculated from the adjusted daily closes, so it can differ from intraday highs and lows. |
| Sector, industry, fundamentals Not available | – | No free source whose terms permit this use has been found, so it isn't shown. |
| Benchmarks | ||
| Nifty 50 proxy (UTI index fund) Proxy | mfapi.in (free mirror of AMFI NAV history) | Not the official Nifty 50 TRI. This is the NAV of the UTI Nifty 50 Index Fund (Direct, Growth), which tracks the Nifty 50 with dividends reinvested, minus its small fee and tracking error. Data starts in 2013. History from mfapi.in, latest NAV from AMFI. |
| S&P 500 proxy (SPY ETF) Proxy | Twelve Data | Not the official S&P 500 Total Return Index. This is the SPDR S&P 500 ETF (SPY), with prices adjusted for dividends, so it includes the ETF's small fee and tracking error. |
| Calculated by Fundalyzer | ||
| Returns, rolling returns, risk ratios, drawdowns, capture ratios, risk score, calculator Calculated | Fundalyzer | Calculated by this app from the prices above. See the methodology below. |
| Risk-free rate Assumption | Fundalyzer | A fixed assumption, not live data: 6.5% a year for rupee assets and 4% for dollar assets. Editable on each page. |
Providers
Official source. Terms allow personal, non-commercial use; republishing publicly needs AMFI's written approval.
- Status
- Active
- Latest data
- Not fetched yet on this server
- Last fetched
- Not since this server started
Publishes no terms of its own. The data is AMFI's, so AMFI's personal, non-commercial terms apply.
- Status
- Active
- Latest data
- Varies by fund or stock; shown on each page
- Last fetched
- Not since this server started
Free plan is for internal, non-display use: fine for personal use, not for showing to other people.
- Status
- Not configured on this server
- Latest data
- Varies by fund or stock; shown on each page
- Last fetched
- Not since this server started
How it's calculated
Returns
- Each return compares the last available value on or before the start date with the last value on or before the end date.
- Periods up to 1 year are total (absolute) returns; longer periods are annualised: (end ÷ start)^(1 ÷ years) − 1.
- Benchmark returns are measured to the asset's own latest date, so both cover exactly the same window.
- Calendar-year returns run from 31 Dec to 31 Dec. The first year starts on the asset's first date (both asset and benchmark), and the current year runs to date.
Rolling returns
- For each date with a full window behind it (1, 3, 5, 7 or 10 years), the return over that window is calculated; windows over 1 year are annualised.
- Sampled weekly. Statistics (average, median, best, worst, % positive, % above 12%) are over all sampled windows.
- '% beat benchmark' compares the asset's and benchmark's rolling returns ending on the same date.
Volatility, Sharpe, Sortino and VaR
- Window: the trailing 3 years, or the full history if shorter.
- Volatility is the standard deviation of daily returns × √(observations per year). Observations per year come from the data itself, so liquid funds that publish a NAV every calendar day (~365) aren't treated like stocks (~250).
- Sharpe ratio = (annualised return over the window − risk-free rate) ÷ volatility. The return used is the window's CAGR.
- Sortino ratio = (annualised return − risk-free rate) ÷ downside deviation, where downside deviation only counts returns below the risk-free rate's daily equivalent.
- 1-day VaR (95%) is the 5th percentile of daily returns in the window; CVaR is the average of the returns at or below it.
Beta, alpha and R²
- Daily returns are paired on dates where both the asset and the benchmark have a value; a gap (holiday) becomes one return over the longer span for both.
- Beta = covariance(asset, benchmark) ÷ variance(benchmark). R² is the squared correlation.
- Alpha is Jensen's alpha: the regression intercept on excess returns (returns minus the risk-free return for each pair's span), annualised.
- Tracking error is the annualised standard deviation of (asset − benchmark) daily returns; information ratio = (asset CAGR − benchmark CAGR) ÷ tracking error.
- All of these are measured against a benchmark proxy, not the official index. See the proxy limitations above.
Up and down capture
- Monthly returns are calculated from each month's last value and paired with the benchmark by calendar month, so a different last trading day doesn't drop the month. Only consecutive months are used.
- Up capture = geometric average of the asset's returns in months the benchmark rose ÷ the benchmark's geometric average in those months × 100. Down capture is the same for months the benchmark fell.
- Uses the same trailing 3-year window as the other risk ratios, and needs at least 3 up (or down) months.
Drawdowns
- Drawdown on each date = value ÷ highest value so far − 1.
- Max drawdown is the deepest drawdown across the full history, with its peak and trough dates.
- Recovery time is the days from that trough until the value first got back to the old peak ('Not yet recovered' if it hasn't).
SIP and one-time calculator
- SIP: one instalment a month on the same day of the month (moved to month-end for short months), starting the chosen number of years before the latest date. The last instalment is a month before the latest date, and everything is valued on the latest date.
- Each instalment buys units at the first available NAV/price on or after its date. Value today = total units × the latest NAV/price.
- SIP return is XIRR: the yearly rate at which all instalments, compounded from their own dates, equal today's value (solved numerically).
- One-time return is CAGR from the purchase date to the latest date.
- When comparing, every row uses the same end date (the earliest latest-date among them), so the plans are identical.
- No taxes, stamp duty or exit loads are deducted.
Risk score
- Each factor is scaled to 0-1 between a benign and a severe level, then weighted: volatility 30%, max drawdown 25%, downside capture 15%, beta 10%, VaR 10%, worst 3-year rolling return 10%. Missing factors are left out and the weights rescaled.
- Bands: under 2.5 Low, under 4.5 Moderate, under 6.5 High, otherwise Very High.
- The verdict says the risk was 'paid for' when the Sharpe ratio is at least 0.5, or alpha is at least 2% with a positive Sharpe ratio.
- This is Fundalyzer's own scale, not SEBI's riskometer.
Data cleaning and assumptions
- NAV histories: a one-day move beyond ±25% is treated as a data error. An isolated spike is dropped; a lasting jump (e.g. a unit/face-value change) rescales earlier history. Every correction is listed on the fund's page, because a lasting drop can be a real loss.
- The risk-free rate is a fixed assumption for the whole period (one rate per currency), not a historical series. You can change it on each page.
- Today's stock price is left out while the market is still open.
Past performance does not guarantee future returns. This is analysis for personal use, not investment advice.