STRASMORE/EXPLORE 2,749 QUERIES

drift_since_snapshot

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-09-28, from how-often-mutual-funds-change-holdings.

as of ranking 6×4read in context →
drift_since_snapshot — 6 rows by 4 columns, computed from US exchange, SIP and OPRA data.
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
Rows × columns
6 × 4
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for drift_since_snapshot, derived from the stored result.
ColumnTypeRangeNotes
ticker text 6 distinct values (AAPL, JNJ, KO…)
close_at_quarter_end number 81.27 to 746.77 US dollars
latest_close number 87.99 to 767.64 US dollars
change_pct number 2.8 to 37.4 percent

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

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
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.

More from this analysishow-often-mutual-funds-change-holdings
corporate_actions series 13×3 → filing_lag_trend series 9×4 → disclosure_clock series 6×4 → Top 25 weekly-options underlyings by distinct contracts traded, with expiration weekdays ranking 25×4 → Annualized volatility vs total return, 25 large caps, calmest to wildest (~2 years) ranking 25×3 → SPY options median spread by expiration date, near-the-money strikes only ranking 25×4 → See all 2,749 queries →