title: Data source registry (MF data first) status: seeded 19 Oct by MMDEP-PM from the API repo's docs/architecture/MF-DATA-MAP.md and AMFI's site; owner: API/MM-Cron agent (keeps it current); every planning item that needs external data cites a row here date: 2026-10-19
Data source registry¶
Rule (Atul, 19 Oct): no data feature is planned until its source is a row here, with a verified URL, format, cadence, collector and destination. Unknowns are written as UNKNOWN or UNVERIFIED, never guessed.
| ID | Source | URL | Gives | Format / access | Cadence | Collector (repo:path) | Destination | Status |
|---|---|---|---|---|---|---|---|---|
| S1 | AMFI factsheet index | https://www.amfiindia.com/online-center/download-factsheets | List of every AMC ("Download Monthly MF Factsheets"), each leading to that AMC's monthly factsheet | Client-rendered web page; the link targets per AMC are UNVERIFIED (could be AMC sites or AMFI-hosted files) | Monthly | none yet | Factsheet parsers (plan: docs/plans/local-harness-parallel.md §3) | Found 19 Oct: 51 AMCs; links open only on click (no hrefs in the HTML); task #64 |
| S2 | AMFI NAV history | https://portal.amfiindia.com/DownloadNAVHistoryReport_Po.aspx (date range built by code); UI https://www.amfiindia.com/net-asset-value/nav-history | Historical scheme NAVs | Portal download | Daily | mm-crons:lambda/navdata | API /save-nav → mm_data.funds_nav | In use; deployed writer UNKNOWN |
| S3 | AMFI NAV history (original format) | https://portal.amfiindia.com/DownloadNavHistoryOriginal_Po.aspx | Legacy NAV format | Portal download | — | mm-crons:lambda/navdata | — | Active use UNKNOWN |
| S4 | AMFI current NAV snapshot | https://www.amfiindia.com/spages/NAVAll.txt | Today's NAVs and scheme labels | Text file | Daily | referenced in mftoolsutils/const.json | — | Consumer UNKNOWN |
| S5 | AMFI scheme master | https://portal.amfiindia.com/DownloadSchemeData_Po.aspx?mf=0 | Scheme code, name, AMC/category fields | Portal download | Periodic | mm-crons:lambda/parsedata/cliAum.py -m scheme | mm_data.scheme_data; moneymarche_www.mm_product, mm_product_fund_details | In use |
| S6 | AMFI average AUM | https://www.amfiindia.com/aum-data/average-aum; API https://www.amfiindia.com/api/average-aum-fundwise and average-aum-schemewise | AMC-wise and scheme-wise average AUM | JSON / Excel API | Quarterly | cliAum.py -m aum → AUMData.py | mm_data.mm_funds_aum | In use; period IDs are response-driven |
| S7 | AMFI TER | https://www.amfiindia.com/ter-of-mf-schemes; API https://www.amfiindia.com/api/populate-te-rdata-revised | Total expense ratio by scheme | Excel API | Monthly | cliAum.py -m ter → TERParse.py (two parser generations) | to verify | Destination to verify |
| S8 | AMFI scheme performance | https://www.amfiindia.com/research-information/other-data/mf-scheme-performance-details | Published returns and benchmark fields | Web/API | Periodic | cliAum.py -m fund-performance | mm_data.mm_funds_performance | In use |
| S9 | AMFI NFO | https://www.amfiindia.com/new-fund-offer | NFO announcements | Web | Daily | NFO scraper reads AMC sites; direct AMFI use UNKNOWN | mm_data.mm_nfo_list | Partly known |
| S10 | AMFI category taxonomy | (dated snapshot) lambda/parsedata/files/master/category_codes.csv | Category names and IDs | CSV snapshot | On change | — | catalogue | Legacy; not the full current tree |
| S11 | Portfolio holdings (AdvisorKhoj) | UNKNOWN | Scheme portfolios | UNKNOWN | Monthly | MM-Cron portfolio ingestion | mm_data.mm_portfolio, mm_portfolio_items | Per API README; to document |
| S12 | Index NAVs (NSE indices) | UNKNOWN | Index values for benchmarks | UNKNOWN | Daily | MM-Cron | mm_data.nifty_index | To document |
Next (API/MM-Cron agent, sprint 1):
1. Verify S1's link target for every AMC: AMC name, link, whether it's a direct PDF, and file naming. Commit the list as data/amfi-factsheet-links-YYYY-MM.csv in the factsheet parsers repo, or in mm-crons until that repo exists.
2. Fill in S11 and S12, and every UNKNOWN above.
3. Add each new source here before planning work on it.