Selling Mutual Funds at a Loss: How Basis Works
Daily tracking difference against SPY: broad US equity funds, first half of 2026ranking ·
2026-08-01 · 4×3
The same monthly lots ranked by per share result at the December 2022 priceranking ·
2026-08-01 · 18×3
Distribution cadence: index and income funds, twelve months to June 30, 2026ranking ·
2026-08-01 · 9×4
A monthly buyer's lot prices and running average cost: VTI, July 2021 to December 2022series ·
2026-08-01 · 18×4
Daily tracking difference against SPY: broad US equity funds, first half of 2026
Daily tracking difference against SPY: broad US equity funds, first half of 2026
| ticker | avg_daily_gap_bps | max_daily_gap_bps |
|---|---|---|
| VOO | 1.44 | 32 |
| IVV | 1.57 | 27 |
| VTI | 6.48 | 35 |
| RSP | 40.88 | 138 |
the exact SQL behind every number
WITH daily AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
argMax(close, window_start) AS close_price
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'VOO', 'IVV', 'SPLG', 'VTI', 'RSP')
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-02')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, session_date
),
with_prior AS (
SELECT ticker,
session_date,
close_price,
lagInFrame(close_price) OVER (PARTITION BY ticker ORDER BY session_date) AS prior_close
FROM daily
),
moves AS (
SELECT ticker, session_date, close_price / prior_close - 1 AS daily_move
FROM with_prior
WHERE prior_close > 0
),
benchmark AS (
SELECT session_date, daily_move
FROM moves
WHERE ticker = 'SPY'
)
SELECT m.ticker AS ticker,
round(avg(abs(m.daily_move - b.daily_move)) * 10000, 2) AS avg_daily_gap_bps,
round(max(abs(m.daily_move - b.daily_move)) * 10000, 2) AS max_daily_gap_bps
FROM moves AS m
INNER JOIN benchmark AS b ON m.session_date = b.session_date
WHERE m.ticker != 'SPY'
GROUP BY m.ticker
ORDER BY avg_daily_gap_bps ASC
More from this analysisSelling Mutual Funds at a Loss: How Basis Works
The same monthly lots ranked by per share result at the December 2022 price
ranking 18×3
→
Distribution cadence: index and income funds, twelve months to June 30, 2026
ranking 9×4
→
A monthly buyer's lot prices and running average cost: VTI, July 2021 to December 2022
series 18×4
→
Average call and put delta by strike distance, AAPL, 20 to 45 days to expiry, June 2026
ranking 5×4
→
See all 2,173 queries →