All projects
DataFull-Stack

Fund Reality

Indian mutual funds, explained with 13 years of real data

Problem

Agent commissions quietly come out of mutual fund returns every year.

What I built

A Python data pipeline over 13 years of daily NAVs and a scroll-driven explainer site.

Result

Shows ₹10 lakh through an agent ended ₹9.9 lakh smaller on average.

Fund Reality preview
Role
Design, data pipeline and front-end
Year
2026
Stack
Next.js, TypeScript, Python, pandas, ECharts, Framer Motion, Supabase
21
funds analysed
13 yrs
of daily NAVs
459
5-year windows

Overview

A data-storytelling site that shows first-time investors what the Regular plan of a mutual fund really costs, what a typical investor actually earned, and how far funds can fall.

The problem

Most Indians buy mutual funds through an agent without knowing the commission is taken from their returns every year. Fund factsheets show one cherry-picked return figure, so the real cost and the real risk stay invisible.

What I built

  1. 1Downloaded daily NAV history for 21 well-known funds, both Direct and Regular plans, from January 2013 to October 2026, and cleaned it with Python and pandas.
  2. 2Computed rolling 5-year returns over every possible start date, worst drawdowns, and the rupee gap between Direct and Regular plans.
  3. 3Designed a scroll-driven home page where the Direct and Regular lines draw themselves and the gap grows, plus a calculator answering one question: what did the agent cost you?
  4. 4Added a SIP simulator that replays monthly investing on real historical prices and reports XIRR against an index fund.
  5. 5Built member features on Supabase with row-level security: a portfolio cost check, watchlist, saved SIP plans and a 3-fund compare.

Highlights

  • ₹10 lakh invested through an agent in 2013 ended ₹9.9 lakh smaller on average, and ₹21.2 lakh smaller in one small-cap fund.
  • Explains selection and survivorship bias openly, including in its own fund list.
  • Every chart is drawn from real data, not illustrations.

How it works

  1. mfapi.in (AMFI NAVs)
  2. Python + pandas cleaning
  3. Rolling returns, drawdowns, XIRR
  4. Static JSON in public/data
  5. Next.js + ECharts UI
  6. Supabase auth (members)

Key decisions and trade-offs

Precompute everything offline

The analysis runs once in Python and ships as static JSON, so public pages load fast and need no database.

Every 5-year window, not one return

A single 5-year return depends on its start date. Showing all 459 windows shows the range investors actually got.

State the bias openly

The fund list is well-known survivors, so the site explains selection and survivorship bias and compares with S&P's SPIVA scorecard.

What I'd improve next

  • Add closed and merged funds to remove survivorship bias.
  • Include taxes and exit loads, which returns currently ignore.
  • Compare mid and small caps with their own indices, not only the Nifty 50.

Live demo

mf-reality-check-ndx1.vercel.appOpen in new tab

Screens

Fund Reality home page with the agent-cost calculator
Home: the agent-cost calculator
Fund directory with sparkline cards
Every fund, with typical return, worst fall and Regular-plan cost
SIP simulator on real prices
SIP simulator replayed on real past prices
Insights page with a histogram of 5-year returns
Insights: when you check changes the answer
Next project
Razorpay Merchant Agent
Merchant operations workspace with a natural-language store agent