Skip to main content
By Fruit Stand Team · November 9, 2026 · Comparisons For daily NAV history of US mutual funds in SQL, the main options are Fruit Stand’s Historical Stock Prices listing on the Snowflake Marketplace, with 25,721 funds and 93.8 million daily NAVs back to 1973, and the CRSP mutual fund database, which adds delisted funds but is licensed by request. APIs such as Tiingo and yfinance work if you load the data yourself. Below is how each option compares, what’s in the listing, and the SQL to get a fund’s NAV history, month-end NAVs and total returns.
Fruit Stand publishes the Historical Stock Prices listing, one of the options below. Counts were checked in Snowflake on November 9, 2026, and other providers’ details on their own pages or filings the same week.

The options at a glance

Snowflake’s free public data share has no mutual funds: its stock price table returns nothing for VFINX, FXAIX or AGTHX.

Which source fits which job

  • Every US fund’s daily NAV in SQL, kept current: the Historical Stock Prices listing. Mutual funds sit in the same table as stocks and ETFs, so one query compares a fund with its ETF twin or a stock.
  • Academic research that needs dead funds: CRSP. It’s the standard survivor-bias-free source, with tens of thousands of funds that merged or closed.
  • Global funds or ratings and analytics too: Morningstar or LSEG Lipper.
  • A few funds in a Python project: Tiingo’s API, or yfinance for personal use.
  • Monthly returns from filings, free: SEC N-PORT. It has no daily NAVs, and the data starts in late 2019.

What’s in the Historical Stock Prices listing

Mutual fund NAVs are in security_price_history_vw, one row per fund per day: A mutual fund prices once a day, at its net asset value, so for funds open, high, low and close all hold the NAV, and volume is 0. History starts at the earliest NAV in the data, which can be later than the fund’s launch: Vanguard 500 Index Investor Shares (VFINX) starts on December 26, 1979. adjusted_close is the NAV adjusted for distributions and share splits, for total returns. The listing includes funds that still report a NAV, plus 80 marked inactive; it doesn’t include the history of funds that closed or merged before they were added, so long backtests across all funds carry survivorship bias.

Get a fund’s NAV history

close is the NAV as reported each day:
On November 9, 2026 the latest row was November 6, with VFINX at $681.28. Each day’s NAV usually arrives with the next morning’s refresh, since funds publish NAVs after the market closes. To find a fund’s ticker by name, filter security_vw on asset_class:
That returns six funds, from Vanguard Wellington Investor Shares (VWELX), with NAVs from 1979, to Vanguard Global Wellington and a 529 plan option, both from 2017.

Month-end NAVs

Many reports need one NAV per month. Take the last NAV in each month with max_by:
Each row is labeled with the month’s last calendar day, and the current month’s row holds the latest NAV so far. A fund’s NAV drops every time it pays out a distribution, and some funds split their shares, so the raw NAV understates what an investor earned. Over the 20 years to November 6, 2026: Contrafund’s NAV fell after a 10-for-1 split in August 2018, and Dodge & Cox Stock’s after a 16-for-1 split in October 2025. Neither shareholder lost anything. Growth Fund of America pays out capital gains most Decembers, and its NAV fell 6% or more on its December distribution day in eight of the last ten years, so most of its return never shows up in the NAV. VFINX’s total return of 665% matches SPY’s 668% over the same 20 years, less the difference in fees. The table comes from one query:
For ready-made trailing returns (1-day to 20-year) for every fund, the Fund Returns listing has them calculated; Where to Get Trailing Returns for Every US Fund and ETF in Bulk compares it with other sources. For why the adjusted column differs from the raw one, see Adjusted Close vs. Close.

F.A.Q.

For a few funds, yes: yfinance (personal use) and Tiingo’s free tier. The SEC’s N-PORT files are free but have monthly returns, not daily NAVs. For every fund in SQL, the Historical Stock Prices listing has a 30-day free trial.
In the Historical Stock Prices listing, to May 1973 for the oldest funds; 650 funds have NAVs from before 1990. Each fund’s history starts at its earliest NAV in the data.
Not their full history. The listing covers funds that still report a NAV, plus 80 marked inactive. For research that needs every dead fund, use CRSP’s survivor-bias-free database.
Usually a distribution or a share split. Dodge & Cox Stock’s NAV went from $282.70 to $17.78 on October 27, 2025, its 16-for-1 split. Use adjusted_close for returns across those dates.
Yes. Stocks, ETFs and mutual funds share security_price_history_vw. Filter security_vw on asset_class (stock, etf or fund).
To query daily NAVs for every US mutual fund in SQL, start a free 30-day trial of the Historical Stock Prices listing on the Snowflake Marketplace. The schema is in the dataset docs. Questions? Reach out at contact@fruitstand.dev.