Strasmore Research
Learn Matt ConnorBy Matt Connor

What Is Dark Pool Trading? Off-Exchange Volume

What dark pool trading is, why big orders go off-exchange, and how every dark-pool trade still prints to the public tape through FINRA reporting.

Dark pool trading is the buying and selling of stocks on private venues — alternative trading systems (ATSs) that accept orders and match trades without publishing any quotes beforehand. The name describes the missing quotes, not hidden trades: every dark-pool execution in a US stock must be reported through a FINRA trade-reporting facility (TRF) and printed on the consolidated tape, where anyone can count it. This page does the counting on one verified session — July 2, 2026 — with the exact SQL behind every number one click away.

What is a dark pool?

A dark pool is a private stock-trading venue registered with the SEC as an alternative trading system. It runs a matching engine much like an exchange's, with a single defining difference: it displays no pre-trade quotes. On a lit exchange the order book advertises the best bid and offer to everyone; in a dark pool, resting orders stay invisible until the moment they execute. Most dark pools price matches off the public market's own quotes — commonly at the midpoint of the national best bid and offer (NBBO), the reference behind the bid-ask spread on a lit screen.

Dozens of these venues operate; none sets a public price of its own. The lit market supplies the reference price, and the dark pool supplies a place to trade at it without displaying the order first.

Why do dark pools exist?

The founding problem is order impact. As a hypothetical: an institution needs to sell 500,000 shares of a stock whose displayed bid carries 800 shares. Post the full order on a lit book and every participant sees it at once. Rest it in a dark pool and the size stays undisplayed while fills accumulate — the classic home of the block trade, the market's rule-of-thumb term for a print of 10,000 shares or more.

The same off-exchange plumbing also carries a very different business: wholesale market makers execute retail orders directly against their own inventory — a practice called internalization — and report those fills through the same facilities. How market makers make money walks through that machinery; here, the point is that both kinds of trades land in the same reporting bucket on the tape.

One neutral note: the venue label on a print records where a trade matched, nothing more — a structural fact, not a bullish or bearish reading on any stock.

How do dark pool trades reach the public tape?

FINRA requires its member firms to report an off-exchange trade in a listed stock to a trade-reporting facility within 10 seconds of execution during market hours. The facility forwards it to the consolidated tape, where it prints alongside exchange trades — carrying FINRA's venue code instead of an exchange's, plus a TRF timestamp recording when the facility processed it.

That description is checkable. The panel below takes every trade report on AAPL's tape for July 2, 2026, groups it by reporting venue, and counts how many carry a TRF timestamp.

QueryWhere AAPL's trade reports came from on July 2, 2026 — and which carry a TRF timestamp
The exact SQL behind every number
SELECT
    x.name AS venue,
    x.type AS venue_type,
    t.trade_reports AS trade_reports,
    t.pct_with_trf_stamp AS pct_with_trf_stamp
FROM
(
    SELECT
        exchange,
        count() AS trade_reports,
        round(100 * countIf(trf_timestamp > toDateTime64('1970-01-02 00:00:00', 9)) / count(), 1) AS pct_with_trf_stamp
    FROM global_markets.stocks_trades
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
    GROUP BY exchange
    ORDER BY trade_reports DESC
    LIMIT 6
) AS t
INNER JOIN global_markets.stocks_exchanges AS x
    ON x.id = t.exchange AND x.asset_class = 'stocks'
ORDER BY t.trade_reports DESC

Read the top row: the busiest reporting venue on AAPL's tape that day was not an exchange at all. The exchange dictionary types it "TRF", and 100% of its reports carry a TRF timestamp. Every lit exchange below it — Nasdaq, NYSE Arca, Inc., Cboe BZX, and the rest — shows 0%. The feed groups every FINRA-reported print under that one venue code — the off-exchange bucket is measurable with a single filter.

A second receipt closes the loop across the entire day — and verifies the session itself:

QueryThe receipt: TRF timestamps and the FINRA venue code agree on every AAPL report
The exact SQL behind every number
WITH
    (
        SELECT countIf(window_start >= toDateTime('2026-07-02 09:30:00', 'America/New_York') AND window_start < toDateTime('2026-07-02 16:00:00', 'America/New_York'))
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-07-02 00:00:00', 'America/New_York') AND window_start < toDateTime('2026-07-03 00:00:00', 'America/New_York')
    ) AS bars_jul02
SELECT
    bars_jul02 AS spy_session_bars_jul02,
    round(count() / 1e3) AS trade_reports_thousands,
    round(countIf(exchange = 4) / 1e3) AS venue4_reports_thousands,
    round(countIf(trf_timestamp > toDateTime64('1970-01-02 00:00:00', 9)) / 1e3) AS trf_stamped_thousands,
    countIf((exchange = 4) != (trf_timestamp > toDateTime64('1970-01-02 00:00:00', 9))) AS stamp_venue_disagreements
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL'
  AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'

AAPL's tape carried 1148 thousand trade reports that day. 552 thousand printed under the FINRA venue code, 552 thousand carried a TRF timestamp, and the count of reports where the two labels disagree is 0. The same row checks the calendar: SPY printed 390 regular-session minute bars on July 2 — a complete 9:30-to-4:00 session, verified rather than assumed.

How much stock trading happens off-exchange?

With the label verified, the share is one aggregation away: five liquid names on the same session, total matched volume against volume printed under the FINRA code, administrative bookkeeping messages excluded from every total.

QueryOff-exchange share of matched volume — five liquid names, July 2, 2026
The exact SQL behind every number
SELECT
    ticker,
    round(toFloat64(sumIf(size, exchange = 4 AND NOT hasAny(conditions, [15, 16, 38]))) / 1e6, 1) AS off_exchange_shares_m,
    round(toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))) / 1e6, 1) AS total_shares_m,
    round(100 * toFloat64(sumIf(size, exchange = 4 AND NOT hasAny(conditions, [15, 16, 38]))) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))), 1) AS off_exchange_pct
FROM global_markets.stocks_trades
WHERE ticker IN ('SPY', 'AAPL', 'NVDA', 'TSLA', 'KO')
  AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA', 'TSLA', 'KO'], ticker)

On July 2, 2026, SPY matched 57.5 million shares, and 27.3 million of them — 47.4% — printed off-exchange. AAPL's off-exchange share measured 39%, NVDA's 45.7%, TSLA's 49.6%, and KO's 41.1%.

Now the honest part: the tape cannot tell you which of those shares matched in a dark pool. The FINRA bucket contains dark-pool executions, retail trades internalized by wholesalers, and other over-the-counter prints — all reported through the same facilities under the same venue code. The measured number is the off-exchange share: an upper envelope that contains dark-pool volume, never a dark-pool figure by itself. FINRA separately publishes each ATS's weekly volume by security, on a multi-week delay; the real-time tape only ever says "off-exchange." The same facilities' reports also feed FINRA's daily short-volume files — the numbers unpacked in short interest vs. short volume.

What does an off-exchange print look like?

If dark pools exist for size, off-exchange prints should be big — mostly they are not, and the mix is the lesson. The panel below compares the anatomy of TSLA's off-exchange and on-exchange prints on the same session.

QueryAnatomy of TSLA's prints on July 2, 2026: off-exchange vs. on-exchange
The exact SQL behind every number
SELECT
    if(exchange = 4, 'Off-exchange (TRF)', 'On-exchange') AS where_it_printed,
    round(count() / 1e3) AS prints_thousands,
    round(toFloat64(sum(size)) / 1e6, 1) AS shares_m,
    round(quantileDeterministic(0.5)(toFloat64(size), toUInt64(sip_timestamp))) AS median_print_shares,
    countIf(size >= 10000) AS prints_10k_plus,
    round(toFloat64(max(size)) / 1e3) AS largest_print_k_shares,
    if(maxIf(size, has(conditions, 8)) = max(size), 1, 0) AS largest_is_closing_auction
FROM global_markets.stocks_trades
WHERE ticker = 'TSLA'
  AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
  AND NOT hasAny(conditions, [15, 16, 38])
GROUP BY where_it_printed
ORDER BY where_it_printed

The median off-exchange TSLA print that day was 2 shares, against 24 shares on-exchange — print sizes far below any block threshold. In the same bucket sit 34 prints of 10,000 shares or more, the largest a 592 thousand-share block. The biggest on-exchange print ran larger still, at 4491 thousand shares — the receipt column confirms it is the closing auction that ends the regular session. The off-exchange bucket holds the tape's smallest prints and some of its true blocks at once; the venue code alone does not say which business produced any given print.

When do off-exchange trades print during the day?

Off-exchange prints are not tucked into one corner of the session. The panel below buckets NVDA's July 2 tape by Eastern-time hour and measures each hour's off-exchange share.

QueryNVDA's off-exchange share of volume by Eastern-time hour, July 2, 2026
The exact SQL behind every number
SELECT
    formatDateTime(toStartOfHour(toTimeZone(sip_timestamp, 'America/New_York')), '%H:00') AS et_hour,
    round(toFloat64(sumIf(size, exchange = 4)) / 1e6, 2) AS off_exchange_shares_m,
    round(toFloat64(sumIf(size, exchange != 4)) / 1e6, 2) AS on_exchange_shares_m,
    round(100 * toFloat64(sumIf(size, exchange = 4)) / toFloat64(sum(size)), 1) AS off_exchange_pct
FROM global_markets.stocks_trades
WHERE ticker = 'NVDA'
  AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
  AND NOT hasAny(conditions, [15, 16, 38])
GROUP BY et_hour
ORDER BY et_hour

Every hour that sits fully inside regular trading prints a substantial off-exchange share: 49.7% in the 10:00 ET hour, 44.5% in the 12:00 hour, 39.1% in the 15:00 hour. The 16:00 bucket mixes the closing auction — one giant on-exchange print in its denominator — with the first hour of after-hours trading, and reads 39.7%. One hour deeper into the after-hours session the balance flips outright: in the 17:00 hour, 95.5% of NVDA's tape volume printed off-exchange — 1.88 million shares against 0.09 million on the exchanges — the thin tape covered in after-hours and premarket trading.

How are dark pools regulated?

Dark pools are regulated venues, not gray markets:

  • Registration. A dark pool operates as an alternative trading system under the SEC's Regulation ATS, adopted in 1998; its operator is a registered broker-dealer and FINRA member.
  • Public disclosure. An ATS trading listed stocks files Form ATS-N, a public document describing order types, matching logic, who may participate, and how the operator's own affiliates interact with customer flow.
  • Trade reporting. Every execution prints to the consolidated tape through a FINRA facility within 10 seconds during market hours — the mechanics measured above.
  • Volume transparency. FINRA publishes every ATS's weekly volume, security by security, on a delayed schedule.
  • Best execution. Off-exchange trades stay inside Regulation NMS, including the trade-through rule protecting displayed quotes; brokers owe customers best execution wherever an order routes.

The rules do not require pre-trade transparency: the defining feature of a dark pool is legal by design, and everything after the match is as public as an exchange trade.

Dark pool trading FAQ

Yes. A dark pool is an SEC-registered alternative trading system run by a registered broker-dealer, subject to Regulation ATS, Regulation NMS, FINRA trade reporting, and public Form ATS-N disclosure. The one thing it omits — displayed pre-trade quotes — is what the ATS category permits.

How much trading happens in dark pools?

The public tape reports an off-exchange total, not a dark-pool total. On July 2, 2026, the off-exchange share of matched volume printed 47.4% for SPY, 39% for AAPL, 45.7% for NVDA, 49.6% for TSLA, and 41.1% for KO. That bucket mixes dark pools, retail internalization, and other OTC prints; the tape does not distinguish among them.

Can retail investors use dark pools?

Not directly: access runs through broker-dealers, and most dark pools serve institutional flow. A retail order still frequently executes off-exchange — many brokers route marketable retail orders to wholesale market makers, whose fills report through the same FINRA facilities.

Do dark pool trades show up on the chart?

Yes. Off-exchange trades must be reported within 10 seconds during market hours, print on the consolidated tape, and count toward the volume bars on an ordinary chart. What never appears is the order beforehand — the trade is visible after it happens, never while it rests.


Every panel above is a stored query — expand the SQL under any table to audit it, then ask the same question about any ticker on the Strasmore terminal.