MFPro NAV Master: Data Dictionary

Every field, what it means, what it covers, and where it is imperfect.

Source data: AMFI official NAV files - Over 37 million, growing daily, Over 38,000 (about 8,700 active, the rest matured or merged), 2006-04-01 to present · Last updated: 2026-10-24
Live tool

Analyze any Indian mutual fund or portfolio across 30+ return, risk and benchmark metrics in the live MFPRO tool.

What this dataset is

Daily NAVs for every Indian mutual fund scheme in AMFI's public records: all scheme types (open-ended, closed-ended, interval), April 2006 onward, including matured schemes. Source: AMFI official files (daily NAVAll.txt plus the historical NAV archives). Updated 3x daily.

Coverage

ItemValue
NAV rowsOver 37 million, growing daily
SchemesOver 38,000 (about 8,700 active, the rest matured or merged)
Date span2006-04-01 to present
Scheme typesOpen Ended, Close Ended, Interval
AMCsAbout 75, including defunct houses (ABN AMRO, Fortis, Standard Chartered, Benchmark)
Update cadence3x daily from AMFI, with a 7-day lookback across all scheme types

Table: nav_master

NAV history (one row per scheme per day)

Grain: One row per (scheme_code, date), with no duplicates (checked at every build). The SQLite download has indexes on scheme_code and on date, and no primary key.
FieldTypeDescription
scheme_codeINTEGERNumeric scheme identifier: AMFI's scheme code for mutual funds (100027 and above); for SIF rows (source = SIF) the number in AMFI's SIF code, e.g. SIF-120 is 120 (always below 100000). Stable for the life of a scheme plan+option. Join key to scheme_meta.
dateVARCHARNAV declaration date as text in ISO form, YYYY-MM-DD, in every download format. Text in this form sorts and compares correctly as a date.
navDECIMAL(18,4)Net Asset Value per unit in rupees, as published by AMFI, stored to 4 decimals. Type by format: DECIMAL(18,4) in parquet, REAL in SQLite (since 2026-10-03; earlier SQLite files held text), plain numbers in CSV and TSV.
scheme_nameVARCHARScheme name as it appeared in AMFI's file on that date. Names can change over a scheme's life; use the scheme master's scheme_name for the current canonical name.
isinVARCHARISIN (Div Payout / Growth variant) as published on that date. Empty when AMFI publishes none, mostly on older rows. For lookups use the scheme master's isin; the NAV API resolves any of a scheme's ISINs, including the reinvestment ISIN and prior ISINs.
sourceVARCHARMF or SIF. Since 21 Oct 2026 the NAV downloads also include Specialized Investment Funds (SIF), after the mutual funds. SIF scheme_code is the number in AMFI's SIF code (SIF-120 is 120), so filter on source before treating a code as a mutual fund.

Table: scheme_master

Table: scheme_master

Grain: One row per scheme. The scheme-level master: identifiers, names, categories, plan and option, dates, flags, TXIC, plus each scheme's latest quarterly AAUM and latest NAV. Downloadable as a single small file from the Data & API tab (Download Scheme Master) or GET /mf/v1/download?format=latest. Naming note: the download file is amfi_nav_master_latest.csv / .parquet, and the underlying table appears as scheme_meta in the API's schema; all of these are one and the same dataset.
FieldTypeDescription
scheme_codeINTEGERNumeric scheme identifier: AMFI's scheme code for mutual funds (100027 and above); for SIF rows (source = SIF) the number in AMFI's SIF code, e.g. SIF-120 is 120 (always below 100000). Primary key.
scheme_nameVARCHARCurrent scheme name, following the latest AMFI filing. Fund houses are renaming schemes to match the SEBI Feb-2026 true-to-label rule, and this field updates with each filing; nav_master.scheme_name keeps the name as it appeared on each date.
amcVARCHARAsset Management Company name, as listed by AMFI. 70+ AMCs including defunct houses.
scheme_typeVARCHAROne of exactly three values: 'Open Ended Schemes', 'Close Ended Schemes', 'Interval Fund Schemes'. From the AMFI header prefix.
categoryVARCHARFull raw category text from the AMFI header (audit field). Modern: 'Equity Scheme - Large Cap Fund'. Old-style: single words like 'Income'. Prefer the clean fields below.
category_groupVARCHARRaw group text before mapping (audit field). About 26 distinct values. AMFI re-filed schemes under new group headers in the SEBI Feb-2026 recategorization, so old and new group names coexist. For analysis use category_group_clean.
category_subVARCHARSEBI sub-category (e.g. 'Large Cap Fund', 'Liquid Fund'). About 75 distinct values. Old 2017 names and new SEBI Feb-2026 names (e.g. 'Short Duration Fund' and 'Short Term Fund') coexist, stored as filed. BLANK for ambiguous old-style schemes by design; those rows will not appear in sub-category filters.
category_group_cleanVARCHARRECOMMENDED category field. Exactly 4 values: Equity Scheme, Debt Scheme, Hybrid Scheme, Other Scheme. Every raw group name, old or new, maps in deterministically (Income -> Debt, Growth -> Equity, Balanced -> Hybrid, the new Income/Debt Oriented Schemes -> Debt, etc.). Solution Oriented (discontinued by SEBI in Feb 2026) and Fund of Funds map to Other Scheme; their schemes stay fully findable via category_group and category_sub.
isinVARCHARISIN of the Div Payout / Growth variant. Usually one scheme_code per ISIN, but about 800 ISINs appear on two scheme codes: an old matured scheme and its successor, for example after a fund house takeover. The NAV API returns the active scheme for such an ISIN. Can be blank for old matured schemes. All of a scheme's ISINs resolve on the NAV API: this one, the reinvestment ISIN (isin2), and prior ISINs of schemes whose ISIN changed - each returns the same full NAV series.
isin2VARCHARDiv Reinvestment ISIN, present only where the IDCW plan has a distinct reinvestment unit class (about 7,000 schemes). AMFI files it as a second ISIN column and writes '-' when absent. Same scheme_code and same NAV series as isin - payout and reinvestment are sub-options of the same IDCW plan and belong to the same fund. Blank for most schemes.
first_dateVARCHARFirst NAV date on record for this scheme (this plan's own start), text in ISO form, YYYY-MM-DD. For schemes older than AMFI's archive this is the archive start in April 2006, not the launch date.
last_dateVARCHARMost recent NAV date on record. For matured schemes this is their final NAV date. Text in ISO form, YYYY-MM-DD.
is_trackedBOOLEANTRUE for the 104 funds with additional analytics in the MFPro app. App-internal convenience flag; not included in the download file.
is_staleBOOLEANTRUE only for the ~50 schemes that have only 1-2 NAV rows in all of AMFI's records (data orphans). Everything else is FALSE, including matured schemes with real history.
txic_codeVARCHARTigZig scheme identifier: a short human-readable code (AMC + type + category + keyword + plan + option, e.g. AX.O.MC.D.G displayed with dots). Deterministic and unique. See the TXIC docs section.
scheme_planVARCHAR'Direct', 'Regular', or 'Other' (classified from the scheme name; pre-2013 schemes predate the Direct/Regular split and classify as Other).
scheme_optionVARCHAR'Growth', 'IDCW', 'Bonus', or 'Other' (classified from the scheme name). AMFI names carry traps the classifier handles: 'Growth Plan - Bonus Option' is a Bonus option, a Dividend Yield fund's Growth variant is Growth, and 'Unclaimed IDCW Plan - Growth' (an unclaimed-amounts pool) is Growth. A fund can have several active variants at one scheme code each, so one fund may appear as separate Growth, IDCW and Bonus rows; the rarely held Bonus variants have near-zero AAUM. For fund-level counts, count funds by name.
is_activeBOOLEANTRUE if the scheme published a NAV within the last 45 days. Recomputed on every sync. Use this to filter live vs matured/merged schemes.
aaum_cr_quarterly_avgDOUBLELatest available quarterly Average AUM in Rupees Crore for this scheme. Renamed from `aaum_cr` on 2026-08-12 (manifest schema_version 2). It is an AVERAGE of daily net assets across the quarter, for this plan and option only. The AUM figure in the MFPro app is a different number: the whole fund's AUM on one date, which is not in this file. What AAUM is and is not (the daily-average definition, new-fund understatement, per-variant grain) is explained in full on the How the Data Is Built page, Scheme AUM section.
aaum_quarterVARCHARThe AMFI quarter label the AAUM comes from, as filed, e.g. 'June-2026'. Schemes can be on different latest quarters while AMFI publishes a new quarter progressively.
aaum_quarter_endVARCHARThe same quarter as an ISO date (June-2026 becomes 2026-06-30). Sort and filter on this and display the label; the label alone sorts alphabetically and puts March after June. Text in ISO form, YYYY-MM-DD.
nav_dateVARCHARDate of the scheme's latest NAV. For matured schemes this is their final NAV date. Text in ISO form, YYYY-MM-DD.
navDECIMAL(18,4)The scheme's latest NAV. For matured schemes this is the final NAV, frozen; check nav_date before treating it as current. In the parquet download nav is a DECIMAL type.
sourceVARCHARMF or SIF. Since 21 Oct 2026 the scheme master download also includes Specialized Investment Funds (SIF), after the mutual funds, with source = SIF. SIF scheme_code is the number in AMFI's SIF code (SIF-120 is 120).

Table: scheme_details_latest

scheme_details_latest: one row per scheme, with daily AUM, scheme document details and TER (download and /details endpoint)

Grain: One row per AMFI scheme code in the scheme universe that has been linked to at least one of: a daily AUM figure from AMFI, a Scheme Summary Document, or a TER. About 50 rows keep only their identifiers and category, because the link no longer carries any of the three; /mf/v1/schemes/{code}/details returns NO_DETAILS for them. Latest values only. Fund-level values (daily AUM, scheme document, TER) repeat on each plan and option row of the same fund. To add up AUM, keep only rows where fund_dedup_flag is true, or group by amfi_ssd_fund_id first. Each block has its own date column, because each source is refreshed on its own schedule. Blank means the source has no value for this scheme. Columns without a prefix describe the scheme. Every column with a prefix (amfi_daily_, ssd_, ter_) describes the fund and names its source.
FieldTypeDescription
scheme_codeINTEGERNumeric scheme identifier: AMFI's scheme code for mutual funds (100027 and above); for SIF rows (source = SIF) the number in AMFI's SIF code, e.g. SIF-120 is 120 (always below 100000). The primary key, and the same key used by every other MF file and endpoint.
isinVARCHARISIN for the growth or payout option, as AMFI lists it. Blank where AMFI lists none.
isin2VARCHARISIN for the reinvestment option, as AMFI lists it. Blank where AMFI lists none.
scheme_nameVARCHARScheme name from AMFI's NAV file, the same as in scheme_master.
fund_name_latestVARCHARThe fund's current name, from AMFI's daily NAV file. The same name the MFPro Fund page shows. ssd_fund_name is the name as filed in the scheme document and can be older. Blank only where the scheme has no NAV in the last 30 days.
amcVARCHARFund house, the same as in scheme_master.
category_group_cleanVARCHARCategory group, one of Equity Scheme, Debt Scheme, Hybrid Scheme or Other Scheme, the same as in scheme_master.
category_subVARCHARSEBI sub-category, the same as in scheme_master.
scheme_planVARCHARDirect, Regular or Other, the same as in scheme_master.
is_activeBOOLEANTrue if the scheme published a NAV within the last 45 days, the same as in scheme_master.
amfi_ssd_fund_idVARCHARAMFI's identifier for the fund's Scheme Summary Document. One document covers all plans and options of a fund, so this groups the rows of one fund. Where a fund with a daily AUM has no linked document, this holds amfi: and the fund's lowest scheme code (for example amfi:124172), grouping its plans by AMFI's fund name in the daily NAV file. Blank where the scheme has neither.
fund_dedup_flagBOOLEANTrue on exactly one row per fund among rows with a daily AUM: the fund's lowest scheme_code. Added by us so fund-level values are counted once. To total AUM, add amfi_daily_fund_aum_cr_all_plans only where this is true. It does not mark a main plan. Blank where the row has no daily AUM.
amfi_daily_fund_nameVARCHARFund name under which AMFI's daily fund performance data publishes the AUM. It usually matches fund_name_latest, with small differences in spelling or notes.
amfi_daily_fund_aum_cr_all_plansDOUBLEAssets under management of the whole fund on amfi_daily_aum_date, all plans and options together, in Rs crore. From AMFI's daily fund performance data. The same figure appears on every plan row of the fund. Each AMFI fund is linked to our schemes by its NAVs, never by name. Blank where the fund is not in AMFI's daily data or could not be linked. Blank on every SIF row, because AMFI's daily data has no SIFs; the quarterly average AUM for SIFs is in the scheme master, aaum_cr_quarterly_avg.
amfi_daily_aum_dateDATEThe AMFI report date the AUM comes from.
amfi_daily_aum_flagVARCHARAMFI's mark beside the AUM, as published. '^' means the figure is the latest one the fund house shared, and it can be a few days older than amfi_daily_aum_date. '**' appears on some funds, mostly overnight and liquid funds, and AMFI does not state its meaning. Blank when AMFI shows no mark.
amfi_daily_riskometerVARCHARThe fund's riskometer level in AMFI's daily data, on SEBI's six-level scale. Blank on every SIF row.
amfi_daily_riskometer_benchmarkVARCHARThe riskometer level of the fund's benchmark in AMFI's daily data.
amfi_daily_benchmarkVARCHARThe fund's benchmark from AMFI's daily data, written in one standard spelling. Fund houses and AMFI write the same index in many ways, for example 'Nifty 500 TRI', 'NIFTY 500 Total Return Index' and 'Nifty500 (TRI)'. All of these become one name, using AMFI's own spelling of that index where AMFI has one. Only spelling is changed, never the index. Where the name matches no known index, it is the filed name with spacing and notes tidied. amfi_daily_benchmark_filed always has the name exactly as filed.
amfi_daily_benchmark_filedVARCHARThe fund's benchmark exactly as AMFI's daily data shows it.
ssd_doc_dateTIMESTAMPDate of the Scheme Summary Document on AMFI's server (its last modified time). The ssd_ fields are as of this date. Documents are checked daily.
ssd_fund_nameVARCHARFund name as filed in the Scheme Summary Document.
ssd_fund_typeVARCHAROpen ended, close ended or interval, as filed.
ssd_sebi_categoryVARCHARSEBI category as filed in the document. It can use older wording than category_sub.
ssd_option_namesVARCHARPlans and options as listed in the document.
ssd_fund_managersVARCHARFund managers as filed, in the form 'Name (since YYYY-MM-DD); Name (since YYYY-MM-DD)'. The /details endpoint returns them as a list with each manager's role.
ssd_allotment_dateDATEThe FUND's allotment (launch) date as filed in its scheme document, the same for every plan of the fund. A plan can start later: Direct plans of older funds started from January 2013. For a plan's own start, use its first NAV date (first_date in the NAV files, first_available_date on /nav). Blank where absent or not a readable date.
ssd_nfo_open_dateDATENew fund offer opening date as filed. Blank where absent or not a readable date.
ssd_nfo_close_dateDATENew fund offer closing date as filed. Blank where absent or not a readable date.
ssd_reopen_dateDATEDate the fund reopened for continuous sale, as filed. Blank where absent or not a readable date.
ssd_maturity_dateDATEMaturity date as filed. Usually blank for open-ended funds; a few open-ended documents file a date here, shown as filed.
ssd_benchmark_tier1_filedVARCHARTier 1 benchmark exactly as filed.
ssd_benchmark_tier1_stdVARCHARTier 1 benchmark in the same standard spelling as amfi_daily_benchmark, with the same rule for names that match no known index.
ssd_benchmark_tier2_filedVARCHARTier 2 benchmark exactly as filed. Optional; most funds do not file one.
ssd_benchmark_tier2_stdVARCHARTier 2 benchmark in the same standard spelling. Blank where none is filed or it is filed as not applicable.
ssd_riskometerVARCHARCurrent riskometer as filed in the document. A document on SEBI's older five-level scale is shown as filed.
ssd_riskometer_levelVARCHARThe riskometer level read from ssd_riskometer. Blank where the filed text is not a recognisable level. On SIF rows this is the risk band SIFs file, Risk Band 1 (lowest) to Risk Band 5, in place of a riskometer.
ssd_potential_risk_classVARCHARPotential Risk Class (debt funds), as filed.
ssd_objectiveVARCHARInvestment objective, as filed.
ssd_asset_allocationVARCHARPermitted asset allocation, as filed.
ssd_exit_loadVARCHARExit load, as filed.
ssd_min_application_amountVARCHARMinimum application amount, as filed.
ssd_min_additional_amountVARCHARMinimum additional purchase amount, as filed.
ssd_terms_sipVARCHARSIP terms as filed, in the form 'Label: value | Label: value'.
ssd_terms_redemptionVARCHARRedemption terms as filed, in the same form.
ssd_terms_otherVARCHAROther filed terms such as swing pricing, in the same form.
ssd_face_valueVARCHARFace value per unit, as filed.
ssd_expense_actualVARCHARExpense ratio text as filed in the document, with the month it refers to. The current TER is in the ter_ columns.
ssd_side_pocketingVARCHARSide pocketing details, as filed.
ssd_custodianVARCHARCustodian, as filed.
ssd_auditorVARCHARAuditor, as filed.
ssd_registrarVARCHARRegistrar and transfer agent, as filed.
ssd_listing_detailsVARCHARStock exchange listing details, as filed.
ssd_statusVARCHARStatus of the document at AMFI.
ssd_withheld_fieldsVARCHARNames of ssd_ fields left blank for this fund because the filed document places values against the wrong labels. The Data Quality page lists these documents.
ter_dateDATEEffective date of the TER values below, as filed in AMFI's TER data. This is the latest filing dated on or before today. A change filed for a future date appears once that date arrives. The TER fields are left blank, with a data_quality row, when this date is more than 90 days old.
ter_regularDOUBLETotal expense ratio of the Regular plan, percent. Found only by the exact SEBI scheme code in the fund's Scheme Summary Document. Blank where the fund does not offer a Regular plan, or where no exact match exists. SEBI revised the expense rules in April 2026, so TER from before and after that date is defined differently. From April 2026 TER is the base expense ratio plus brokerage, transaction costs and statutory levies. AMFI defines the brokerage, transaction and statutory parts as an annualised daily average of actual costs from 1 April of the financial year to the end of the previous month, updated monthly (in April, the whole previous financial year). So these parts stay the same for a whole month. Statutory levies include STT, stamp duty and GST on trades, so a new fund buying heavily, or an arbitrage fund, can show a total far above its base expense ratio. Many websites show only the base expense ratio, which is in the ter_ber_ columns here.
ter_directDOUBLETotal expense ratio of the Direct plan, percent. Same matching. Blank where the fund does not offer a Direct plan, or where no exact match exists.
ter_ber_regularDOUBLEBase expense ratio (the fund house's fee) of the Regular plan, percent. From April 2026 this is the BER filed under SEBI's revised expense rules; on older filings it is the base TER as then filed. Check ter_date. Blank where the plan is not offered.
ter_ber_directDOUBLEBase expense ratio of the Direct plan, percent. Same rules as ter_ber_regular.
sourceVARCHARWhich universe the row belongs to: MF (mutual fund) or SIF (Specialized Investment Fund). SIF rows come after the mutual funds. Filter source = 'MF' before totals across schemes.

Table: data_quality

data_quality: the exception lists behind the Data Quality page (download only)

Grain: One row per exception: an AMFI daily fund performance row that is not linked or is flagged, or a scheme with no usable Scheme Summary Document. Refreshed with scheme_details_latest. The same lists appear on the MFPro Data Quality page.
FieldTypeDescription
sourceVARCHARWhich link the row is about: amfi_daily_aum_link (AMFI's daily fund performance data to our schemes) or scheme_document_link (our schemes to Scheme Summary Documents).
as_ofDATEDate of the AMFI report or the scheme document check the row comes from.
scheme_codeINTEGERAMFI scheme code, where the row is about one scheme. Blank for AMFI fund rows that are not linked to a scheme.
nameVARCHARFund name from AMFI's daily data, or scheme name for scheme document rows.
categoryVARCHARSub-category from AMFI's daily data, where present.
issue_codeVARCHARShort code for the kind of exception, for filtering.
issueVARCHARThe exception in words.
statusVARCHARheld: the AMFI row is not linked to any scheme. conflict: linked, and two sources disagree (benchmark or riskometer). review: linked, flagged for a check. documented: a known case with a recorded reason.
detailVARCHARThe specifics, such as both benchmark names or both riskometers.

Caveats and known quirks

The honest edges of this dataset. Read these before you draw conclusions from a gap or an outlier.

How to access this data