What mutual funds own: reading the portfolio files
Page: /funds/holdings/. Code: pipeline/tipsheet/compute/fund_holdings.py, publish/fund_holdings.py, step steps/fund_holdings.py. Bundles: funds/holdings/*.
Source
SEBI requires every mutual fund scheme to publish its full portfolio each month. The Data bank fetches these files from each fund house’s website (the list of fund houses and their disclosure pages comes from AMFI’s portfolio-disclosure directory), parses every holding line, and checks each scheme-month before keeping it:
- % of NAV adds up to the file’s stated total, and market values to the stated net assets;
- ISINs are valid;
- implied share prices (value / quantity) are checked against NSE’s closing price, which catches lakh, crore and rupee unit errors.
August 2026: 99.4% of scheme-months passed or passed with warnings. This is the fund houses’ own data, not a vendor feed. The Data bank’s guide is its docs/MF_PORTFOLIOS.md.
Coverage
Not every fund house can be read:
- Nippon India, Axis, Canara Robeco, Bajaj Finserv, Trust and The Wealth Company forbid automated fetching in their websites’ robots.txt, so their files are not fetched;
- UTI’s files are fetched but not yet parsed;
- HDFC’s files before 2025 are incomplete (per-scheme files beyond the raw-storage budget).
In August 2026 the files read held ₹69.6 lakh crore, 80% of AMFI’s month-end industry AUM, across 45 fund houses. Coverage is shown on the page month by month.
The fixed panel
Coverage has grown as more files became readable, so a total across all files would rise for reasons that have nothing to do with funds. Every trend on the page (cash, market-cap mix over time, sector weights a year apart, net buying) uses a fixed panel: the fund houses present in every month of the last 48 months. Snapshots of a single month (the most-held companies, the market-cap mix of each category now, concentration) use every fund house in the files that month.
Definitions
- Active equity: SEBI’s equity categories (large, mid, small, large and mid, flexi, multi, focused, value and contra, dividend yield, ELSS, sectoral and thematic), mapped from the category text in the files. Index funds and ETFs are passive and left out of the active measures. Schemes the Data bank could not match to AMFI’s scheme list (mostly liquid, gold, silver and fund-of-funds schemes) are unclassified and left out of category measures.
- Sector: the industry most fund houses print for a company’s ISIN that month (AMFI’s industry classification, spelled differently by different fund houses).
- Market-cap class: AMFI’s half-yearly list (large = top 100, mid = 101-250, small = the rest by average market cap). Each month uses the latest list published by then: a list dated June is usable from ten days into July. No look-ahead.
- Cash: TREPS, reverse repo, cash, margin, net receivables, Treasury bills, certificates of deposit and commercial paper, as a share of net assets. Derivative notionals are left out of net assets.
Net buying
For each stock, over active equity schemes in the panel fund houses present in both months:
net buying = value held this month − value held last month × (1 + the stock’s price return over the month)
- The return comes from NSE prices adjusted for splits, bonuses and other corporate actions, so a split or bonus is not counted as buying.
- A company’s ISINs are added up by issuer code (the first seven characters of an Indian ISIN), because a face-value change issues a new number.
- A stock no scheme held last month (an IPO) counts in full.
- A stock with no price at month-end (delisted, merged, suspended, or swapped into a new ISIN) is valued flat. When a company swaps its ISIN, the old number then reads as a sale and the new one as a purchase of about the same value, so the swap nets out.
Check. Summed over all stocks, net buying should move with AMFI’s net inflows into equity funds. Month to month they differ, because funds also move cash and the panel is part of the industry. The build fails unless, over the last 24 months:
- the quarterly correlation is above 0.5 (October 2026 build: 0.79);
- net buying is between 30% and 100% of AMFI’s figure (0.63).
The first version of this measure correlated at only 0.07, because ISIN swaps from demergers showed as heavy buying. The issuer grouping and flat valuation fixed that, and the check is kept so a future change cannot quietly break it.
Caveats
- Month-end snapshots: trading within a month is invisible, and a stock bought and sold within the month does not appear.
- A new listing shows as buying even when funds got shares in a pre-IPO round or an anchor allotment; that is still money put in during the month.
- Demerged companies’ shares arrive without being bought. The parent’s adjusted return absorbs the demerger, but the new company’s shares count as buying in the month they first appear.
- Sector labels are the fund houses’ own; a company can sit in different sectors at different fund houses, and the most common label is used.
Debt funds: credit quality and yield (added 2026-10-08)
-
Categories use AMFI’s 2026 names. AMFI renamed the debt categories in August 2026, and the files carry each scheme’s current label: about half the schemes have the new names, half the old SEBI names. The old names fold into the new:
- low duration = ultra short to short term;
- ultra short duration = ultra short term;
- short, medium, medium to long and long duration = short, medium, medium to long and long term;
- dynamic bond = dynamic term;
- floater = floating rate.
Evidence for the one non-obvious pair: no scheme carries the old “low duration” label in August 2026, while 18 carry “ultra short to short term”, and the funds themselves were renamed (for example, Mirae Asset’s and Kotak’s “Ultra Short to Short Term Fund”).
-
Rating buckets, from the rating printed beside each holding, with the agency name and punctuation stripped:
- sovereign: G-secs, state development loans, T-bills, or a SOV rating;
- AAA and A1+ (A1+ is the top short-term rating);
- AA (AA+, AA, AA-);
- A and below;
- cash and repo: TREPS, reverse repo, cash, net receivables;
- unrated or other: corporate paper with no readable rating, REIT and InvIT units, and fund units.
Shares are of net assets, with derivative notionals left out. Credit-structured ratings, (SO) and (CE), count at their letter grade.
-
Notch-level grades (the heat table) use the same reading at full detail: sovereign, AAA, A1+, AA+, AA, AA-, A+, A, A-, BBB and below (including default), A1 to A4 (lower short-term grades), unrated or other, cash and repo. Grades no category holds at 0.05% or more are left out of the table (in August 2026: BBB and below, A1 to A4).
- The agency name and the punctuation around it are stripped before the grade is read, keeping a trailing minus. A first version stripped every hyphen, so AA- read as AA and A- as A. The broad buckets were unaffected (AA- and AA share one), but the notch table would have undercounted the minus grades. Tests:
pipeline/tests/test_fund_holdings.py. - In credit-risk and medium-term funds, “unrated or other” is almost all InvIT and REIT units, plus a little in AIF units. Unrated bonds come to about ₹50 crore.
- The agency name and the punctuation around it are stripped before the grade is read, keeping a trailing minus. A first version stripped every hyphen, so AA- read as AA and A- as A. The broad buckets were unaffected (AA- and AA share one), but the notch table would have undercounted the minus grades. Tests:
-
SEBI’s credit-risk rule (at least 65% in AA and below) excludes AA+; the page’s AA bucket includes it, so its line runs slightly above the regulatory measure, and the page says so.
-
Yield to maturity is weighted by market value over government and corporate debt instruments, as each fund house prints it, before expenses. Fund houses print it either as a percentage (7.53) or as a fraction (0.0753): values under 1 are read as fractions, and values above 30% are dropped as errors.
-
Snapshots use every fund house in the files; the yield lines, the credit-risk line and the rating mix over time (one chart per category, with a picker) use the fixed panel. Cash and repo is net of payables, so it can nearly vanish at quarter-ends, when redemptions are due.
-
August 2026:
- credit-risk funds held 65% at AA and below, yielding 8.67% against 7.65% for corporate bond funds;
- liquid funds held 80% at A1+ and 17% sovereign, yielding 6.24%;
- gilt funds held 89% sovereign.