{"slug":"selling-mutual-funds-at-a-loss","qid":"tracking_gap","label":"Daily tracking difference against SPY: broad US equity funds, first half of 2026","post_title":"Selling Mutual Funds at a Loss: How Basis Works","post_url":"/blog/selling-mutual-funds-at-a-loss#q-tracking_gap","columns":["ticker","avg_daily_gap_bps","max_daily_gap_bps"],"rows":[{"ticker":"VOO","avg_daily_gap_bps":1.44,"max_daily_gap_bps":32},{"ticker":"IVV","avg_daily_gap_bps":1.57,"max_daily_gap_bps":27},{"ticker":"VTI","avg_daily_gap_bps":6.48,"max_daily_gap_bps":35},{"ticker":"RSP","avg_daily_gap_bps":40.88,"max_daily_gap_bps":138}],"shape":"ranking","sql":"WITH daily AS (\n    SELECT ticker,\n           toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,\n           argMax(close, window_start) AS close_price\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('SPY', 'VOO', 'IVV', 'SPLG', 'VTI', 'RSP')\n      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-02')\n      AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959\n    GROUP BY ticker, session_date\n),\nwith_prior AS (\n    SELECT ticker,\n           session_date,\n           close_price,\n           lagInFrame(close_price) OVER (PARTITION BY ticker ORDER BY session_date) AS prior_close\n    FROM daily\n),\nmoves AS (\n    SELECT ticker, session_date, close_price / prior_close - 1 AS daily_move\n    FROM with_prior\n    WHERE prior_close > 0\n),\nbenchmark AS (\n    SELECT session_date, daily_move\n    FROM moves\n    WHERE ticker = 'SPY'\n)\nSELECT m.ticker AS ticker,\n       round(avg(abs(m.daily_move - b.daily_move)) * 10000, 2) AS avg_daily_gap_bps,\n       round(max(abs(m.daily_move - b.daily_move)) * 10000, 2) AS max_daily_gap_bps\nFROM moves AS m\nINNER JOIN benchmark AS b ON m.session_date = b.session_date\nWHERE m.ticker != 'SPY'\nGROUP BY m.ticker\nORDER BY avg_daily_gap_bps ASC","computed_at":"2026-08-01T08:03:25.008769+00:00","elapsed":0.003791071}