Data to 5 October 2026

Methods

The index table and the market dashboard

What the front page’s market blocks and the /indices/ table show, and how each number is computed. Built by pipeline/tipsheet/compute/density_indices.py and published as markets/density/index_snapshot and markets/density/sector_rotation.

Source and licence

Each column

Sector rotation

Each sector index’s return minus the Nifty 500’s, over six months and over one month, in percentage points. Leading means ahead on both; weakening, ahead over six months but behind over the last month; improving, behind over six months but ahead over the month; lagging, behind on both. It is a description of where leadership sits, not a signal. The groups overlap (Bank, Private Bank and PSU Bank share stocks), so the lists are not independent.

Calendar years and the falls within them

From markets/indices/calendar_years_* (see indices.md): the calendar-year total return and the largest fall from a running peak within the year, counting the previous year’s close as the first peak. The year-against-fall chart is the “Guide to the Markets” chart for Indian indices. The front page’s sentence counts full years only; the current year is shown but marked YTD.

Checks

No look-ahead

Every value uses closes up to the as-of date. Trend and momentum use the last completed month. The table lists indices that exist today, which is right for a description of today; it is not used to rank or backtest anything.

Flows: who bought and who sold (flows/density/*)

Mutual funds: the industry (funds/density/*)

India against its peers (macro/global/density/country_comparison)

Validating the daily investor-category data (added 2026-10-02)

Two problems in IndiaDataHub’s exchange series, both handled in compute/density_flows.py:

The front page’s “today” board and index chart (markets/density/{today,movers,index_curves_daily})

India macro detail (macro/india/density/*)

Coming up (markets/density/calendar)

Market value and concentration (markets/density/mcap_*, size_breadth)

Commodities, daily (markets/density/commodities)

Fund category ownership and current source detail (5 October 2026)

compute/fund_ownership.py reads AMFI’s investor-classification report. Only investor-class rows enter sums; group, scheme and grand-total rows are not added. Domestic fund-of-funds are excluded from the industry denominator, as in AMFI’s grand total, while their ownership is retained as a separate group. The previous industry chart included these assets and folios; this correction also updates the legacy funds/density/investor_mix bundle.

Detail must reconcile to each acquired grand total: AUM within ₹0.5 crore for source rounding, and folios exactly. Unknown categories/classes, negative or non-finite amounts, missing total dates and incomplete investor classes fail the step. AUM and folio shares use separate within-group/category denominators. Folios are accounts, not unique people, and ownership AUM is not monthly AAUM.

Before September 2024, blank group names are classified from the report’s broad scheme labels. Thus earlier equity ownership is retained rather than lost to a group-name-only filter. Historical broad groups reflect changing classifications and membership. The ownership report provides substantially more category detail from September 2024; no detailed history is inferred before it. Identical source category labels within a group are combined across scheme sections because the promoted ownership source does not retain a separate section identifier.

The full current monthly-report table is separate: source categories and open-ended/close-ended/interval sections are preserved, with gross inflows, redemptions, net flows, AUM, average AUM, folios and scheme counts. It exposes detailed debt categories without splicing their historical renamings. This table and quarterly ownership are independently dated and never joined to fabricate current-month ownership. The canonical 24-row category history remains alongside.

Bundles: funds/density/ownership/*, ownership_groups_latest, ownership_categories_latest, reported_categories_latest (under the same funds/density/ prefix). Raw investor amounts stay derived locally; the page publishes shares, group/category totals and source-level monthly industry fields.

Industry-first funds page and flow ratios (5 October 2026)

The funds page opens with industry AUM, year-on-year growth, monthly and trailing 12-month net flows, folios, subscription growth relative to opening AUM, redemptions relative to gross inflows, and passive share. SIPs, broad groups and comparable category flows follow. Ownership and fund-house concentration precede the specialist balanced-advantage and liquidity-stress cuts.

The monthly industry panel is reindexed to a calendar-month grid, without filling missing observations. Twelve-month net flows require all 12 monthly observations. AUM growth uses the actual calendar-year starting AUM; a missing month must not turn twelve observations into a thirteen-month comparison. The comparable category table uses the same calendar-window rule. Current source categories retain their original scheme sections and do not inherit a fabricated year of history after a rename. All comparable categories now appear in the flow heatmaps, including overseas FoFs, solution/life-cycle and close-ended/interval schemes.

Definitions:

Growth and flow ratios with missing or non-positive opening denominators are blank. Source tables use ₹ crore; displayed units may scale to lakh crore.

Specialised investment funds (SIFs)

SIF flows and assets are published separately at /funds/sif/ and linked from the Mutual Funds page. Source: AMFI SIF Monthly archive, via Data bank dataset amfi_sif_monthly. Eleven source-listed Excel reports cover October 2025 through August 2026 at initial release. Seven investment strategy categories sit within equity, debt and hybrid. Each category has its own published monthly history, selected on the SIF page; absent months remain gaps and categories are not merged by similar names. The count of schemes within a category is distinct from the count of strategy categories. Category and group subtotals reconcile to each workbook’s printed grand total; counts must match exactly and money within ₹0.03 crore. All raw workbooks, including new-scheme-report sheets, remain in the Data bank with fetch lineage.

The first workbook describes a full October period in its title; the parser also checks the dated scheme/AUM headers against the discovered report month. Source numeric dashes mean zero. Absent columns, including SIP fields before they were introduced, remain null; missing reporting months are never filled. Unknown headers, inconsistent dates, duplicate rows, invalid counts, nonfinite values and broken flow/total identities fail parsing rather than publishing partial data. Retrieval revisions use the latest fetched observation per key.

Monthly net flow = gross subscriptions − redemptions. Month-end AUM differs from average AUM during the month. Monthly growth = 100 × (AUM at month end / AUM at the end of the preceding calendar month − 1); flow intensity uses that same opening AUM. A zero or absent denominator leaves the ratio blank. Redemptions/gross inflows = 100 × withdrawals/subscriptions, with a positive gross-inflow denominator. Category share uses total SIF month-end AUM.

AUM change − net flows is labelled valuation and other changes. It is an accounting residual, not a time-weighted strategy return, an investor return, or a causal explanation. The first reporting month has no opening observation and therefore no growth/residual reading. Missing months interrupt these comparisons. No twelve-month growth is inferred from the initial eleven-month history. SIP contributions are gross flows already included in subscriptions; folios count accounts rather than unique investors.

The independent Total industry AUM API (dataset amfi_total_industry_aum) supplies conventional MF, SIF and combined totals. Every overlapping SIF month is cross-checked against the workbook for schemes, folios, subscriptions, redemptions, net flows, AUM and AAUM. The MF/SIF perimeters remain separate. August matches within the API’s printed precision.

Individual scheme flows, category ownership, strategy return comparisons and NFO contributions are not inferred from these industry-category data. The NSR sheet can support a subsequent launch-versus-existing-subscription breakdown.

SIF collections in newly allotted schemes

The amfi_sif_launches Data bank dataset parses the NSR sheet already present in SIF monthly workbooks. Its two layouts put numeric category totals and names either together or in separate sections. Grouped names remain grouped; no issuer mapping or individual scheme amount is inferred. Rows identify category, source group, schemes launched and collections for schemes completing allotment in the report month. Missing reports remain blank rather than zero launches.

Counts reconcile exactly. Some workbooks print whole-crore subtotals alongside more precise category rows. The ₹1.01-crore monetary allowance covers this reported rounding; the printed totals and detail are retained without repair. A legacy single-group report has only a group subtotal: it is also exposed as the whole disclosed launch universe with total_basis=sole_group_subtotal. Other industry totals have total_basis=reported_industry_total.

Launch collections divided by same-month gross subscriptions is an indicative scale comparison. Allotment and subscription timing can differ, so neither this ratio nor gross subscriptions less launch collections identifies exact flows into existing schemes. Do not compare launch collections with net flows as a share decomposition: net flows also deduct redemptions. The SIF page dates launch tables separately and uses the latest common month for the ratio.

Age of currently held fund assets

Source: amfi_aum_holding_period, AMFI’s age-wise AUM report. Initial coverage is 58 half-yearly/quarterly dates from September 2009 to June 2026. Six buckets are 0–1, 1–3, 3–6, 6–12, 12–24 and over 24 months. Each bucket’s AUM is divided by its own asset/investor row’s reported total. Shares are blank for zero totals. Bucket sums, investor-class sums and equity/non-equity sums must reconcile to the printed totals within ₹1 crore; duplicate rows, incomplete buckets/classes and invalid values fail the compute step.

Equity and non-equity follow the source’s broad asset classes. Non-equity is not renamed debt. Retail, HNI, corporate, bank/FI and FII labels remain as reported; no fixed historical investor threshold or category bridge is assumed. Totals are separate from investor rows and are never added to them. Charts use only disclosed dates, with no interpolation or substituted quarterly values.

This is the age distribution of assets still held, weighted by their current value. Price movements, subscriptions and redemptions all change it. It cannot establish the typical investor’s holding duration, a cohort survival curve, redemption likelihood or an investor return. The over-24-month bucket is open ended, so no mean holding duration is computed. Quarterly age data is kept separate from monthly flows and separately dated on the Funds page.

This note is the repository file docs/methods/density.md, rendered as-is.