STRASMORE/EXPLORE 2,549 QUERIES

quote_staleness

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-24, from latency-models-in-hft-backtests.

as of ranking 9×2read in context →
quote_staleness — 9 rows by 2 columns, computed from US exchange, SIP and OPRA data.
latency_budgetpct_replaced_within
1 ms73.67
2 ms75.13
5 ms77.45
10 ms79.91
25 ms83.36
50 ms88.13
100 ms92.07
250 ms96.87
1000 ms99.93
Rows × columns
9 × 2
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 quote_staleness, derived from the stored result.
ColumnTypeRangeNotes
latency_budget text 9 distinct values (1 ms, 10 ms, 100 ms…)
pct_replaced_within number 73.67 to 99.93 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 gaps AS
(
    SELECT
        dateDiff('millisecond',
                 lagInFrame(sip_timestamp) OVER (ORDER BY sip_timestamp, sequence_number
                     ROWS BETWEEN 1 PRECEDING AND CURRENT ROW),
                 sip_timestamp) AS gap_ms
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= '2026-09-15 14:00:00'
      AND sip_timestamp <  '2026-09-15 15:00:00'
      AND bid_price > 0
      AND ask_price > bid_price
)
SELECT
    concat(toString(budget_ms), ' ms')                              AS latency_budget,
    round(100 * countIf(gap_ms BETWEEN 0 AND budget_ms) / count(), 2) AS pct_replaced_within
FROM gaps
ARRAY JOIN [1, 2, 5, 10, 25, 50, 100, 250, 1000] AS budget_ms
GROUP BY budget_ms
ORDER BY budget_ms
⌘/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 analysislatency-models-in-hft-backtests
book_speed ranking 5×3 → mid_drift ranking 4×2 → session_speed series 78×2 → 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,549 queries →