Methodology & Data Sources
Every number in the SIP/FD calculator comes from a free, public source. Here is what we fetch, how often, and how we compute derived values. If the data ever becomes stale you will see a coloured badge in the calculator UI.
India Market Mood Index (composite)
Score from 0 (Extreme Fear) to 100 (Extreme Greed), weighted as a simple linear combination of three signals:
- NIFTY 50 P/E (50%) — z-score of today's P/E vs the 10-year mean and standard deviation. High P/E → high score (greed / expensive). Source: NSE archives daily index summary CSV (
ind_close_all_DDMMYYYY.csv). - India VIX (30%) — piecewise linear: VIX < 12 maps to 80 (greed), VIX > 25 maps to 20 (fear), linear in between. Source: Yahoo Finance v8 chart endpoint.
- Advance/Decline ratio (20%) — count of NIFTY 50 stocks rising vs falling today. Source: NSE
equity-stockIndicesindicator endpoint.
We chose 50 / 30 / 20 because valuation moves slowest (anchors the score against speculative noise), volatility captures short-term sentiment, and breadth is the noisiest signal so it gets the smallest weight.
The 10-year P/E mean (24) and standard deviation (4) used for the z-score are stored as quarterly assumptions, not refetched daily. They change slowly enough that this is honest; we revise them when meaningful drift accumulates.
Regime score
A 0–100 risk-on / risk-off composite, updated daily. Each input is scored 0–100 (higher = more risk-on), then combined with fixed weights. If an input is unavailable that day, the remaining weights are scaled up; with fewer than 3 inputs the score is not published.
| Input | Source | Scoring | Weight |
|---|---|---|---|
| India VIX | Yahoo Finance | 25 → 0, 12 → 100; −17 if up >20% in 5 days | 25% |
| FII net flow (5 sessions) | NSE (provisional), or NSDL (settled, previous trading day) when NSE is unreachable | −₹5,000 cr → 0, +₹5,000 cr → 100 for NSE; ±₹15,000 cr for NSDL; +10 after 3 straight buying days | 25% |
| Breadth (Nifty 100 above 50-day EMA) | NSE + Yahoo Finance | 30% → 0, 65% → 100 | 20% |
| US dollar index, 20-day change | Yahoo Finance | +2% → 0, −2% → 100 | 15% |
| US 10y–2y yield spread | FRED (T10Y2Y) | Inverted: 30 − 20×|spread| (min 0); else 50 + 25×(spread − 1y avg)/0.5 | 15% |
Labels: above 65 Risk-on, below 35 Risk-off, otherwise Neutral. To avoid flip-flopping, entering Risk-on or Risk-off needs the score to clear the threshold by 5 points on 2 consecutive trading sessions (weekends and market holidays do not count). Returning to Neutral needs no 5-point band, only the same 2 consecutive trading sessions.
Check my mix reference ranges
| Regime score | Large | Mid | Small |
|---|---|---|---|
| 65+ | 35% | 30% | 35% |
| 50–64 | 45% | 30% | 25% |
| 35–49 | 60% | 30% | 10% |
| 20–34 | 80% | 20% | 0% |
| below 20 | 100% | 0% | 0% |
The typical range shown is each reference ±10 percentage points. Small-cap is capped at 35%. This covers equity only and is educational, not investment advice.
SIP vs FD comparison — why we compare against a Recurring Deposit
The “Monthly investing” comparison mode pits a monthly SIP against a Recurring Deposit (RD), not a Fixed Deposit. An earlier version of this tool compared the SIP against the entire SIP contribution deposited into an FD as a lump sum on day one — that overstated the FD side by roughly 35% at default inputs, because a lump sum earns compound interest for the full term while a monthly contribution earns it only for its own, shrinking remaining term. An RD is the honest peer: both sides receive the same monthly amount.
We model the RD with the same quarterly-compounding convention Indian banks use for FDs: the nominal annual rate is converted to an equivalent monthly effective rate ((1 + quarterlyRate)^(1/3) − 1), then each monthly installment compounds at that rate for its own remaining tenure via the standard annuity future-value formula. A zero percent rate is handled as a plain linear sum instead of dividing by zero.
The separate “Lump sum” mode answers a different question — a one-time mutual fund investment (growing at its CAGR, compounded annually) against a one-time FD deposited on day one — and is not affected by this distinction, since both sides are already lump sums.
Tax assumptions
- Equity LTCG: 12.5% on gains above ₹1,25,000 per year of redemption (post Budget 2024). We model a single redemption at maturity — this is conservative because an actual SWP-style staggered redemption would distribute the exemption across multiple years, lowering effective tax further.
- FD interest: taxed at the user's slab annually. Modelled as a reduced effective compounding rate:
effective = nominal × (1 − slab). - Inflation: default 6.0% CPI. Real returns computed via the Fisher equation:
(1 + nominal) / (1 + inflation) − 1, not naive subtraction. Compounded over 20 years, the difference matters.
NIFTY CAGR
Trailing 1y / 3y / 5y / 10y / 15y CAGR computed from Yahoo Finance daily close prices for ^NSEI. We pick the close on (or just before) the date N years ago, then apply (end / start)^(1/N) − 1. Yahoo's ^NSEI history starts ~September 2007, so a 20-year bucket would be empty and is intentionally omitted.
Money Pulse also shows these returns in US dollars and after inflation. The dollar figure takes the rupee's annualised change against the dollar over the same period, from Yahoo Finance's INR=X daily series (close on or just before the date N years ago), and applies (1 + INR CAGR) / (1 + rupee depreciation) − 1. The after-inflation figure uses (1 + INR CAGR) / (1 + inflation) − 1 with the CPI assumption above.
FD rates
Scraped weekly (Mondays) from each bank's official rates page on the .bank.in domain (RBI mandate, October 2025). General + senior-citizen rates for 2–3 year tenure. If a bank's page changes layout, the parser logs a partial failure and we keep showing the previous rate with a stale badge until the parser is updated.
Today's coverage: SBI is the seed bank scraped end-to-end. The remaining 11 banks are being added incrementally; the orchestrator gracefully tolerates partial failures.
Mutual fund category returns
Categories sourced from the AMFI scheme master CSV. For each scheme we fetch daily NAV history from mfapi.in (a community wrapper around AMFI's own daily file), compute trailing 5y and 10y CAGR, then average per category. The “Top 5” list is the highest 10y CAGR within each category — shown so you can sanity-check the average against real funds, not as a recommendation. We deliberately do not run any kind of fund-screening or rating algorithm.
Small savings
PPF, NSC, KVP, SCSS, SSY, and Post Office TD rates are set quarterly by the Ministry of Finance via the Department of Economic Affairs press release. We seed these manually each quarter from the official notification PDF.
Update cadence
| Dataset | Cadence | Last successful update |
|---|---|---|
| nifty-cagr | daily | Tue, 27 Oct 2026 00:01:19 GMT |
| mmi | daily | Tue, 27 Oct 2026 00:01:27 GMT |
| fd-rates | weekly (Mondays) | Sat, 10 Oct 2026 09:27:17 GMT |
| category-returns | daily | Tue, 27 Oct 2026 00:06:39 GMT |
| small-savings | quarterly | Tue, 27 Oct 2026 00:06:39 GMT |
| regime | on demand | Tue, 27 Oct 2026 00:06:52 GMT |
| history | on demand | Tue, 27 Oct 2026 00:06:52 GMT |
Known limitations
- LTCG modelled as single redemption — real returns may differ if you stagger withdrawals.
- Inflation is a single CPI estimate; lifestyle-specific inflation (healthcare, education) runs higher.
- FD scrapers are HTML-based and may briefly drift if a bank redesigns its rates page.
- Small-savings rates are seeded manually each quarter from the GoI press release.
- The Top 5 fund list currently includes IDCW / Growth / Bonus variants of the same scheme as separate rows; we plan to dedupe by base scheme name.
- Past performance does not predict future returns. Mutual funds are subject to market risk.