STRASMORE/EXPLORE 2,648 QUERIES

Symbols that printed a final daily bar, by year

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-20, from Survivorship Bias in Stock Data, Explained.

as of ranking 10×3read in context →
Symbols that printed a final daily bar, by year — 10 rows by 3 columns, computed from US exchange, SIP and OPRA data.
yeargone_dark_countavg_bars_on_tape
2016847270
2017838428
2018818560
2019907656
2020929781
20211309705
20221470675
20231857712
20241484854
202512761003
Rows × columns
10 × 3
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 Symbols that printed a final daily bar, by year, derived from the stored result.
ColumnTypeRangeNotes
year text 10 distinct values (2016, 2017, 2018…)
gone_dark_count number 818 to 1,857 count
avg_bars_on_tape number 270 to 1,003

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.

SELECT
    toString(toYear(last_bar))  AS year,
    count()                     AS gone_dark_count,
    round(avg(bars_on_tape))    AS avg_bars_on_tape
FROM
(
    SELECT
        ticker,
        max(date) AS last_bar,
        count()   AS bars_on_tape
    FROM global_markets.stocks_daily_aggs
    WHERE date >= '2015-01-01'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    HAVING max(date) >= toDate('2016-01-01')
       AND max(date) <  toDate('2026-01-01')
)
GROUP BY year
ORDER BY year
⌘/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 analysisSurvivorship Bias in Stock Data, Explained
The January 2019 universe, grouped by what happened to each name ranking 9×4 → Symbols relisted under a new issuer after a long silence ranking 5×4 → Survivors-only average vs whole-cohort average, by starting year table 7×6 → Trading sessions per year under FB and META ranking 15×3 → New listings landing on a symbol that already had history ranking 11×3 → Split multiples for large US stock splits since 2020 ranking 10×3 → See all 2,648 queries →