Strasmore Research
Learn Matt ConnorBy Matt Connor · data as of September 28, 2026 · refreshed weekly

How Often Mutual Funds Change Holdings

How often do mutual funds change holdings? What the portfolio turnover ratio measures, and how many days old the holdings list on a fund page usually is.

Mutual funds change holdings continuously, while the holdings list you are allowed to see updates only a handful of times a year. Two different answers hide inside the same question: the portfolio turnover ratio measures how much of a portfolio gets replaced over a year, and the disclosure calendar sets how long you wait to find out what changed. The panels below measure both, and the gap between them is wider than a fund page suggests.

How often do mutual funds change holdings?

Portfolio turnover ratio is the standard measure. Take the fund's purchases of securities over the year and its sales over the same year, keep the lesser of the two, and divide by the fund's average net assets. Keeping the lesser number is what makes the ratio honest about growth: new money arriving buys securities without selling anything, and that inflow is not the manager turning the portfolio over.

A turnover ratio of 100% means the fund traded an amount equal to its entire portfolio during the year. Invert the ratio for a rough average holding period: 100% is about one year, 25% is about four years, 8% is about twelve. Funds disclose the figure in the prospectus and again in the annual report, so a specific fund's own documents are the authority on its own number.

The ranges reported in those documents cluster in two places. Broad index funds tracking a large-cap benchmark commonly disclose single-digit turnover, frequently under 5%. Actively managed US equity funds commonly disclose something in the tens of percent, and strategies built around short holding periods disclose figures above 100%. Turnover describes a mandate rather than a grade. A low figure and a high figure are both ordinary for the strategies that produce them.

What makes an index fund trade at all?

An index fund holds no opinion about any position, and its trading is still never zero. Four mechanical sources account for nearly all of it.

  • Index reconstitution, when the index provider adds and drops names on its published schedule.
  • Corporate actions: splits, mergers, spin-offs, delistings, and new listings that enter the benchmark.
  • Shareholder cash flows, which the fund invests or raises by trading around the close. Our guide to when mutual funds trade covers that timing, and how mutual fund NAV is calculated covers the price it happens at.
  • Float and weight revisions from the index provider, which change how much of a name the fund needs to hold.

The second source leaves a countable footprint. The panel below counts two of those corporate events across the whole US market, month by month: split executions and newly listed tickers.

QuerySplits and new listings per month across the US market
monthstock_splitsnew_listings
2025-0811527
2025-0915032
2025-1012041
2025-119924
2025-1217731
2026-019036
2026-0211347
2026-0319117
2026-0412930
2026-0514240
2026-0616235
2026-0716434
2026-0812424
The exact SQL behind every number
SELECT
    month,
    sumIf(events, kind = 'split')       AS stock_splits,
    sumIf(events, kind = 'new_listing') AS new_listings
FROM
(
    SELECT
        formatDateTime(execution_date, '%Y-%m') AS month,
        'split'                                 AS kind,
        countDistinct(ticker)                   AS events
    FROM global_markets.stocks_splits
    WHERE execution_date >= toStartOfMonth(today() - 400)
      AND execution_date <  toStartOfMonth(today())
    GROUP BY month

    UNION ALL

    SELECT
        formatDateTime(listing_date, '%Y-%m') AS month,
        'new_listing'                         AS kind,
        countDistinct(ticker)                 AS events
    FROM global_markets.stocks_ipos
    WHERE listing_date >= toStartOfMonth(today() - 400)
      AND listing_date <  toStartOfMonth(today())
    GROUP BY month
)
GROUP BY month
ORDER BY month
Run this yourself

In 2026-08, the tape carried 124 split executions and 24 new listings, against 115 splits and 27 listings in 2025-08. Not every event touches every fund, and the monthly cadence is the point: a portfolio that tracks an index processes this stream all year. A split changes a position's share count while leaving its market value alone, so the fund's books move and its exposure does not. A name entering a benchmark is the expensive kind of event. The fund has to buy it, and the cash has to come from somewhere.

How often can you see a mutual fund's holdings?

Funds report portfolio holdings to the SEC on Form N-PORT, which we cover separately in our guide to Form N-PORT. The cadence is what matters here, and it is a reporting rule rather than a choice each fund makes.

Rule amendments adopted in 2024 moved funds to a monthly report, filed within 30 days of month end, with each report made public 60 days after the month it describes. The largest fund groups came under that schedule in November 2025 and smaller groups follow in November 2026. Under the earlier schedule a fund filed once a quarter, covering each month of the quarter, within 60 days of quarter end, and only the quarter-end month was made public. That is why so many fund pages still show a quarter-end list. Either way, the public list is at least 60 days behind the positions it names, and a quarter-end list runs months behind.

The panel below puts a clock on it. It takes the last trading session of each completed calendar quarter and measures how old that snapshot is as of today, alongside the date a report covering it is required to be public.

QueryHow old each quarter-end holdings snapshot is today
snapshot_period_endpublic_by_datedays_old_todaydays_until_public
Jun 30, 2026Aug 29, 2026900
Mar 31, 2026May 30, 20261810
Dec 31, 2025Mar 1, 20262710
Sep 30, 2025Nov 29, 20253630
Jun 30, 2025Aug 29, 20254550
Mar 31, 2025May 30, 20255460
The exact SQL behind every number
SELECT
    formatDateTime(q_end, '%b %e, %Y')             AS snapshot_period_end,
    formatDateTime(q_end + 60, '%b %e, %Y')       AS public_by_date,
    dateDiff('day', q_end, today())               AS days_old_today,
    greatest(dateDiff('day', today(), q_end + 60), 0) AS days_until_public
FROM
(
    SELECT max(date) AS q_end
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= today() - 560
      AND date <  toStartOfQuarter(today())
    GROUP BY toStartOfQuarter(date)
)
ORDER BY q_end DESC
Run this yourself

The most recently completed quarter ended Jun 30, 2026, 90 days before today, and a report covering it is required to be public by Aug 29, 2026. The oldest snapshot still in view, Mar 31, 2025, is 546 days old. Read down the age column and the shape of the problem is plain. A quarter-end holdings list arrives around two months stale, then serves as the newest available list until the following quarter clears its own 60-day window, by which time it describes positions roughly five months old.

How stale is a holdings list in practice?

Nothing tells you in advance when a particular fund's next report lands. A neighbouring filing does show how managers use a filing window. Form 13F is the quarterly holdings report filed by large institutional managers, and its deadline is 45 days after quarter end rather than 60. It is a different form covering different filers, which makes it a useful measurement of filing behaviour under the same snapshot-plus-lag design.

QueryDays from quarter end to 13F filing date, by reporting quarter
monthfilingsmedian_days_to_filep90_days_to_file
2024-0664129171
2024-0974423845
2024-1281214145
2025-0381013845
2025-0681443845
2025-0981513845
2025-1288644048
2026-0388903745
2026-0688983745
The exact SQL behind every number
SELECT
    formatDateTime(period_end, '%Y-%m')                         AS month,
    count()                                                     AS filings,
    round(quantileDeterministic(0.5)(days_to_file, hash_id), 0) AS median_days_to_file,
    round(quantileDeterministic(0.9)(days_to_file, hash_id), 0) AS p90_days_to_file
FROM
(
    SELECT
        cityHash64(accession_number)                                          AS hash_id,
        toDateOrNull(toString(any(period)))                                   AS period_end,
        dateDiff('day', toDateOrNull(toString(any(period))), any(filing_date)) AS days_to_file
    FROM global_markets.stocks_13f_filings
    WHERE form_type LIKE '13F-HR%'
      AND form_type NOT LIKE '%/A'
      AND filing_date >= today() - 730
    GROUP BY accession_number
)
WHERE period_end IS NOT NULL
  AND days_to_file BETWEEN 0 AND 200
GROUP BY month
HAVING count() >= 50
ORDER BY month
Run this yourself

Across 9 reporting quarters, the 2026-06 quarter drew 8898 filings, the median one arriving 37 days after the quarter ended, with the slowest tenth at 45 days. The line barely moves from quarter to quarter. Filings bunch against the deadline rather than ahead of it, which is the sensible planning assumption for any holdings report: the deadline is the schedule.

Staleness costs accuracy in a second way, since prices move while the list sits. The panel below takes the closing price of a few household names on the last session of the most recent completed quarter and compares it with the latest close on the tape.

QueryPrice change since the last quarter-end snapshot date
tickerclose_at_quarter_endlatest_closechange_pct
MSFT373.02512.4937.4
AAPL289.36339.5517.3
NVDA200.09227.5313.7
KO81.2787.998.3
JNJ253.97270.746.6
SPY746.77767.642.8
The exact SQL behind every number
WITH
    (
        SELECT max(date)
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date < toStartOfQuarter(today())
    ) AS snapshot_date,
    (
        SELECT max(date)
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
    ) AS latest_date
SELECT
    ticker,
    round(toFloat64(anyIf(close, date = snapshot_date)), 2) AS close_at_quarter_end,
    round(toFloat64(anyIf(close, date = latest_date)), 2)   AS latest_close,
    round(100 * (toFloat64(anyIf(close, date = latest_date))
               / toFloat64(anyIf(close, date = snapshot_date)) - 1), 1) AS change_pct
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'KO', 'JNJ', 'SPY')
  AND date IN (snapshot_date, latest_date)
GROUP BY ticker
HAVING countIf(date = snapshot_date) > 0
   AND countIf(date = latest_date) > 0
ORDER BY abs(change_pct) DESC
Run this yourself

Among the 6 names, MSFT shows the widest gap between the two dates, moving 37.4% from a close of $373.02 to $512.49. Weights inside a fund drift the same way. A holdings list that was exactly right on its as-of date describes different position sizes by the time a reader opens it, even where the manager has not traded a single share.

Do ETFs show holdings more often?

Yes, and the reason is mechanical. An ETF publishes a basket file every business day, since authorized participants create and redeem ETF shares in large blocks against a named list of securities, and that list has to be current for the day's trading. ETF creation and redemption walks through that exchange step by step, and mutual funds versus ETFs sets the two structures side by side.

Keep the two questions apart. Disclosure frequency is not turnover. A daily-disclosing ETF can sit on the same portfolio for years, and a fund that reports monthly can trade every session.

FAQ

How often do mutual funds report their holdings?

Funds report portfolio holdings to the SEC on Form N-PORT. Under the schedule phased in from November 2025 through November 2026, each monthly report is filed within 30 days of month end and made public 60 days after the month it covers. Funds also publish holdings in their annual and semiannual shareholder reports.

Why is a mutual fund's holdings list out of date?

The reporting rules set a lag between the as-of date of a holdings snapshot and the date it becomes public, and that lag is at least 60 days. A quarter-end list stays the newest public one until the next quarter's report clears its own window, so the list a reader sees is commonly two to five months old.

What does a turnover ratio of 100% mean?

It means the fund bought or sold an amount equal to its whole portfolio over the year, whichever of purchases or sales was smaller. As a rough average holding period, that is about one year. A 25% ratio works out to about four years.

Do mutual funds have to disclose a trade before they make it?

No. Portfolio disclosure is after the fact, through N-PORT reports and shareholder reports. A fund's prospectus describes what kinds of securities it may hold and how actively it intends to trade, and nothing in the regime announces individual trades in advance.


Every panel above ships with the exact SQL beneath it, so expand one to see how each figure was counted. To time your own filing window or measure a price gap between two dates, ask the question in plain English on the Strasmore terminal.

#mutual funds#portfolio turnover#n-port#disclosure#index funds