How WhoHolds collects and checks its data
Every number on WhoHolds comes from documents Indian fund houses are required to publish. This page explains how we turn them into a lookup by stock, what we check, and where the data is still incomplete.
By Meet Shah · Published
Sources
| Data | Source | Updated |
|---|---|---|
| Every scheme's full portfolio: each holding's ISIN, quantity, market value and weight | Each fund house's monthly portfolio disclosure, published on its own website under SEBI rules | Monthly |
| Scheme names, ISINs and NAVs | AMFI's public scheme master (NAVAll) | Monthly refresh |
| Assets under management | AMFI's average AUM disclosure | Monthly |
| Expense ratios and fund managers | A public feed of AMFI-reported figures (direct plans where they exist) | Quarterly |
| Promoter, FII, DII and public shareholding | Screener.in, from the shareholding pattern each company files every quarter | Quarterly |
We do not use estimates, models or data bought from a vendor for holdings. A number on a stock or fund page is either taken from one of these disclosures or computed from them in a way described below.
From a fund house's spreadsheet to a stock page
- Collect. Each month an automated job downloads every fund house's latest portfolio workbook. Fund houses publish in their own layouts, usually one spreadsheet tab per scheme, so the job also checks it has the portfolio file and not another disclosure from the same page.
- Find the holdings table. In each tab we look for the header row that names an ISIN column together with a value or weight column, then read the rows under it. Headers vary from house to house (“% to Net Assets”, “% to NAV”, “Mkt Value Rs. in Lacs”), so matching is by meaning, not by position.
- Keep equity only. A row counts as a holding only if it sits in the equity section and carries a valid Indian equity ISIN (INE followed by nine characters). Bonds, treasury bills, cash, derivatives, totals and sub-totals are left out.
- Normalise. Some houses report weights as fractions (0.0758) and others as percentages (7.58); each scheme's weights are scaled to percentages. Every file is dated from its own “as on” header, so each month lands as a separate snapshot.
- Invert. Holdings are grouped by ISIN, giving one record per company with every scheme that holds it. That reverse view is what a stock page shows.
The rules behind the counts
- Current holders only. A scheme counts as holding a stock only if it appears in its fund house's latest disclosure. When a scheme is renamed or merged, its old record stops counting instead of being counted twice.
- One company, one page. When a company's ISIN changes, for example after a share split, the old address redirects to the new one so the company's history is not split across two pages.
- Month-over-month change. Trend arrows compare each scheme's latest portfolio with its own previous one, never two different fund houses' months with each other.
- Look-alike index funds. Passive schemes whose portfolios overlap by 90% or more are grouped and shown side by side with their costs; see same portfolio, different price.
- Names. Scheme and company names are shown as the fund house writes them, with filing artefacts removed (sheet codes, footnote markers, legal suffixes such as “An open ended scheme investing in…”).
What we check
More than 250 automated tests, many of them run against real fund house files, check the parser every time its code changes. Each monthly refresh is also checked for the failures that do not raise an error by themselves:
- a catalogue that shrank compared with the previous month, which stops the refresh;
- a scheme whose “name” is really a page link or the fund house's own name, which is labelled as unnamed and kept out of search;
- a fund house whose positions arrived with a whole column empty, which is flagged in the refresh log with the header that caused it.
Known gaps
Being specific about what is missing matters as much as the data itself. As of October 2026:
- Coverage. 21 fund houses are in the latest refresh. Several are not yet covered, including PPFAS (Parag Parikh), Bandhan, Canara Robeco, HSBC and Invesco, and HDFC and Mirae Asset are only partly covered. A stock page therefore lists every covered scheme that holds the stock, not every scheme in India.
- September 2026 refresh. Axis and ITI positions arrived without weights, and Tata and Sundaram positions without market values, because their files label those columns in ways the parser did not recognise. The parser has been fixed; the October refresh carries them.
- Categories. A scheme's category is read from its name. When the name does not say, the scheme is filed as “Equity (Diversified)”, which makes that group less precise than SEBI's own categories.
- Expense ratios. They can lag a fund house's latest change by weeks, and ETFs are not yet covered.
- Equity only. A fund's debt, cash and derivative positions are not shown, so for hybrid funds the equity weights add up to well under 100%.
Corrections and independence
If a number looks wrong, email contact@whoholds.com with the page and what you expected; we check it against the fund house's own file and fix the parser, not just the number. WhoHolds is built and run independently by Meet Shah in Ahmedabad, Gujarat, and is not affiliated with any fund house, broker or index provider. It is free to use and may earn from advertising and from clearly marked broker links, neither of which affects the data. WhoHolds is not registered with SEBI as an adviser or research analyst; everything here is information, not investment advice. See the disclaimer and about page.