Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

How Much Volume Trades at the Close

How much volume trades at the close? We measure the closing auction's share of consolidated daily volume for NYSE and Nasdaq names, day type by day type.

How much volume trades at the close? On an ordinary Wednesday, Sep 23, the closing auction print carried 14.52% of consolidated daily volume across four NYSE listed large caps, and 21.6% across four Nasdaq listed ones. On the quarterly rebalance Friday, Sep 18, the same measurement over the same eight names read 26.6% and 35.5%. The closing auction share of daily volume is not one number. It is a number per day, and the kind of day moves it.

What share of daily volume prints in the closing auction?

The closing auction is the single-price trade that sets a stock's official closing price at 4:00 p.m. ET. Orders left for it are matched in one cross at one price, and that cross reaches the consolidated tape as one print. The matching mechanics live in what the closing auction is, and the order deadlines in MOC and MOO cutoff times. This page is the measurement.

Two numbers make the share. The numerator is the largest print the tape carried in the 16:00 ET minute for a symbol, which is the cross itself. The denominator is that symbol's consolidated volume for the whole day, every venue and every print included. The panel below sorts eight household names into a NYSE listed basket (KO, JNJ, XOM, WMT) and a Nasdaq listed basket (AAPL, MSFT, COST, CSCO), then runs the same arithmetic on four pinned sessions from August and September 2026.

  • A quiet summer session, Tuesday August 11
  • A monthly option expiration, Friday August 21
  • A quarterly index rebalance, Friday September 18
  • An ordinary autumn session, Wednesday September 23
QueryClosing auction share of consolidated daily volume, by day type
labelnyse_listed_pctnasdaq_listed_pct
quiet Tuesday, Aug 1119.1717.39
monthly opex Friday, Aug 2110.3512.62
quarterly rebalance Friday, Sep 1826.635.5
ordinary Wednesday, Sep 2314.5221.6
The exact SQL behind every number
WITH
    auction AS
    (
        SELECT
            toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session,
            ticker,
            max(size)                                             AS auction_shares
        FROM global_markets.stocks_trades
        WHERE ticker IN ('KO', 'JNJ', 'XOM', 'WMT', 'AAPL', 'MSFT', 'COST', 'CSCO')
          AND toDate(sip_timestamp) IN ('2026-08-11', '2026-08-21', '2026-09-18', '2026-09-23')
          AND toHour(toTimeZone(sip_timestamp, 'America/New_York')) = 16
          AND toMinute(toTimeZone(sip_timestamp, 'America/New_York')) = 0
        GROUP BY session, ticker
    ),
    day_volume AS
    (
        SELECT
            date        AS session,
            ticker,
            max(volume) AS day_shares
        FROM global_markets.stocks_daily_aggs
        WHERE ticker IN ('KO', 'JNJ', 'XOM', 'WMT', 'AAPL', 'MSFT', 'COST', 'CSCO')
          AND date IN ('2026-08-11', '2026-08-21', '2026-09-18', '2026-09-23')
        GROUP BY session, ticker
    )
SELECT
    multiIf(
        session = '2026-08-11', 'quiet Tuesday, Aug 11',
        session = '2026-08-21', 'monthly opex Friday, Aug 21',
        session = '2026-09-18', 'quarterly rebalance Friday, Sep 18',
                                'ordinary Wednesday, Sep 23')                 AS label,
    round(100 * sumIf(toFloat64(auction_shares), ticker IN ('KO', 'JNJ', 'XOM', 'WMT'))
              / sumIf(toFloat64(day_shares),     ticker IN ('KO', 'JNJ', 'XOM', 'WMT')), 2)             AS nyse_listed_pct,
    round(100 * sumIf(toFloat64(auction_shares), ticker IN ('AAPL', 'MSFT', 'COST', 'CSCO'))
              / sumIf(toFloat64(day_shares),     ticker IN ('AAPL', 'MSFT', 'COST', 'CSCO')), 2)        AS nasdaq_listed_pct
FROM auction
INNER JOIN day_volume USING (session, ticker)
GROUP BY session
ORDER BY session
Run this yourself

On the quiet Tuesday, Aug 11, the NYSE listed basket printed 19.17% of its day in the auction, and the Nasdaq listed basket 17.39%. The monthly opex Friday, Aug 21 reads 10.35% for the NYSE listed basket. Four pairs of bars teach more here than any single average would: the auction's share of the day is something you measure per session, and the spread across these four sessions is the finding.

Why the auction is the largest single print of the day

Funds that track an index price their subscriptions and redemptions off official closing prices, and mandates benchmarked to the close send market-on-close orders rather than working an order through the afternoon. The auction is the one moment in the day when all of that interest meets at a single price. Volume that sits out the quiet middle of the session, covered in why trading volume dies at midday, turns up in that one print.

Two kinds of session add to it. Index changes take effect at the close of the third Friday of a quarter-end month, and funds tracking the benchmark execute those changes at the official closing price, which is the subject of index rebalance day closing auctions. Monthly and quarterly option expirations land on the same Fridays in March, June, September and December, a session covered in what triple witching is.

Does the share differ between NYSE and Nasdaq listings?

Both venues run one auction per symbol at 16:00 ET with different plumbing. The NYSE closing auction involves a Designated Market Maker in setting the final price. The Nasdaq closing cross is fully electronic. On the tape the output looks alike: one large print stamped in the 16:00 minute.

The two series in the panel above are the comparison, run on the same four sessions with the same arithmetic. Read them with the composition in mind. These are two baskets of four household names, not a census of either listing venue, and a basket's share moves with how heavily its names trade during the session as well as with how much lands in the cross.

Can the closing print be isolated on the tape?

Partly, and the honest answer matters here. The tape carries a dictionary of sale conditions, and several of them name the close.

QueryTape conditions whose names mention the close
condition_idcondition_nameabbreviationcondition_type
14Closingquote_condition
15Closedquote_condition
15Market Center Official Closesale_condition
19Market Center Closing Tradesale_condition
19Market Maker Quotes Closedquote_condition
38Corrected Consolidated Close (per listing market)sale_condition
8Closing Printssale_condition
The exact SQL behind every number
SELECT
    toString(any(id)) AS condition_id,
    name              AS condition_name,
    any(abbreviation) AS abbreviation,
    any(type)         AS condition_type
FROM global_markets.stocks_condition_codes
WHERE asset_class = 'stocks'
  AND name ILIKE '%clos%'
GROUP BY name
ORDER BY condition_id
Run this yourself

That dictionary gives you the vocabulary, 7 entries of it. It does not give you a field reading "auction volume". Some closing conditions mark a price dissemination rather than a volume-updating trade, and the rules differ per code, so adding up every print tagged with a closing condition can count the same shares twice. The measurement on this page steps around that problem: it takes the largest print in the 16:00 minute, which is the cross. That number is a floor, not an exact auction total. Auction shares that reach the tape as additional smaller prints in the same minute sit outside the numerator, and a session with an early 1:00 p.m. close has no 16:00 minute at all.

How the share moves across a quarter

One name, measured every session, shows the shape that four pinned days can only hint at. The panel runs the same two numbers for Coca-Cola (KO) across every session from August 3 through September 30, 2026.

QueryKO: closing auction share of the day, August and September 2026
42 rows (showing 20)
sessionauction_pctday_volume_millions
2026-08-0326.8623.2
2026-08-0419.4717.1
2026-08-0519.4715.9
2026-08-0624.7913.6
2026-08-0728.2411.2
2026-08-1021.0913.7
2026-08-1136.1516
2026-08-1217.7212.7
2026-08-1324.4510.1
2026-08-1421.449.2
2026-08-1715.9212.1
2026-08-1820.6612.5
2026-08-1913.5616
2026-08-2017.6314.9
2026-08-2117.8415.6
2026-08-2416.6114.8
2026-08-2516.9711.9
2026-08-2617.3217.1
2026-08-2726.2813.5
2026-08-2815.919.9
The exact SQL behind every number
WITH
    closing_print AS
    (
        SELECT
            toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session,
            max(size)                                             AS auction_shares
        FROM global_markets.stocks_trades
        WHERE ticker = 'KO'
          AND sip_timestamp >= toDateTime('2026-08-03 00:00:00')
          AND sip_timestamp <  toDateTime('2026-10-01 00:00:00')
          AND toHour(toTimeZone(sip_timestamp, 'America/New_York')) = 16
          AND toMinute(toTimeZone(sip_timestamp, 'America/New_York')) = 0
        GROUP BY session
    ),
    day_volume AS
    (
        SELECT
            date        AS session,
            max(volume) AS day_shares
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'KO'
          AND date >= '2026-08-03'
          AND date <  '2026-10-01'
        GROUP BY session
    )
SELECT
    session,
    round(100 * toFloat64(auction_shares) / toFloat64(day_shares), 2) AS auction_pct,
    round(toFloat64(day_shares) / 1e6, 1)                             AS day_volume_millions
FROM closing_print
INNER JOIN day_volume USING (session)
ORDER BY session
Run this yourself

That is 42 sessions of one stock. The line is the auction's share of the day. The bars behind it are the day's total volume in millions of shares. Reading them together separates two things that are easy to confuse: a big auction, and a big day. A thin summer session can hand the cross a large share of a small total, while a heavy session can bury a large cross inside an even larger tape. If you track volume relative to a stock's own norm, average daily volume is the companion number.

One session, print by print

Here is a single session at minute resolution: KO on Wednesday September 23, 2026, from 15:50 ET through the closing bell, one row per clock minute.

QueryKO on Sep 23, 2026: shares traded per clock minute into the close
et_timevolumevolume_label
15:507786477.86 thousand
15:512580925.81 thousand
15:524790147.90 thousand
15:535275652.76 thousand
15:545465954.66 thousand
15:558107781.08 thousand
15:568326183.26 thousand
15:57115526115.53 thousand
15:58172127172.13 thousand
15:59422411422.41 thousand
16:0059425045.94 million
The exact SQL behind every number
SELECT
    formatDateTime(toStartOfMinute(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,
    toUInt64(sum(size))                                                                     AS volume,
    formatReadableQuantity(toFloat64(sum(size)))                                            AS volume_label
FROM global_markets.stocks_trades
WHERE ticker = 'KO'
  AND sip_timestamp >= toDateTime('2026-09-23 19:50:00')
  AND sip_timestamp <  toDateTime('2026-09-23 20:01:00')
GROUP BY et_time
ORDER BY et_time
Run this yourself

The last row is the 16:00 minute, at 5.94 million shares. The minute before it carried 422.41 thousand. The bar at the right edge of that chart is the auction. The ten bars to its left are ordinary continuous trading in the same stock, minutes earlier.

Now the same session sorted by print size instead of clock time. These are the eight largest individual trades the consolidated tape carried for KO between 9:00 a.m. and 9:00 p.m. ET that day.

QueryKO on Sep 23, 2026: the eight largest prints of the session
et_clocksharespct_of_day_volumeshares_label
16:00:02280257721.532.80 million
16:00:02280257721.532.80 million
19:00:00280257721.532.80 million
18:30:00280257721.532.80 million
16:10:00280257721.532.80 million
09:30:012284781.76228.48 thousand
09:30:012284781.76228.48 thousand
16:55:271955231.5195.52 thousand
The exact SQL behind every number
WITH
    (
        SELECT toFloat64(max(volume))
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'KO'
          AND date = '2026-09-23'
    ) AS day_shares
SELECT
    formatDateTime(toTimeZone(sip_timestamp, 'America/New_York'), '%H:%i:%S') AS et_clock,
    toUInt64(size)                                                           AS shares,
    round(100 * toFloat64(size) / day_shares, 2)                             AS pct_of_day_volume,
    formatReadableQuantity(toFloat64(size))                                  AS shares_label
FROM global_markets.stocks_trades
WHERE ticker = 'KO'
  AND sip_timestamp >= toDateTime('2026-09-23 13:00:00')
  AND sip_timestamp <  toDateTime('2026-09-24 01:00:00')
ORDER BY size DESC
LIMIT 8
Run this yourself

The biggest print of the session landed at 16:00:02 ET: 2.80 million shares, or 21.53% of everything KO traded that day, in one line of the tape. The second line of the panel is a double-digit share of the session as well, 21.53% at 16:00:02 ET. The top of this session's tape is not one giant print standing alone above a crowd of small ones. It is two large lines, and the floor measured on this page counts only the larger of the two. Whether the second line is part of the same cross reaching the tape in more than one piece, or a separate large trade, is not something a size column and a timestamp settle. What the panel does show is how unlike the rest of the tape its top rows are: the ordinary business of a session arrives in a very large number of small prints, and a single-price cross puts one price on one large one.

Method notes and limits
  • The numerator is a single print: the largest trade on the consolidated tape in the 16:00 ET minute. An auction that reaches the tape as more than one print is undercounted, which makes every share on this page a floor rather than a ceiling.
  • The denominator is the symbol's consolidated daily volume for the session, which includes premarket and after-hours prints.
  • Clock minutes come from Eastern time applied to each print's timestamp, never from a hardcoded 9:30 to 16:00 window.
  • Early close days end at 1:00 p.m. ET and have no 16:00 minute. None of the pinned sessions here is an early close.
  • The baskets hold four names each. They are household large caps, not a sample of either listing venue.

FAQ

What percentage of daily volume trades in the closing auction?

It is a per-day figure, not a constant. On the ordinary Wednesday, Sep 23 measured above, the four NYSE listed names printed 14.52% of their consolidated daily volume in the closing auction, and the four Nasdaq listed names 21.6%.

Is the closing auction share bigger for NYSE or Nasdaq listed stocks?

Both run one single-price auction per symbol at 4:00 p.m. ET, and both print it as one large trade. The panel above measures the two baskets side by side on four sessions, which is the comparison worth reading rather than a general rule about either venue.

Does the closing auction get bigger on expiration and rebalance days?

On the quarterly rebalance Friday, Sep 18 in the panel above, the NYSE listed basket's auction share measured 26.6% against 14.52% on the ordinary autumn session. Index changes take effect at the official closing price on those Fridays, and benchmark-tracking funds execute them in the cross.

How can I spot the closing auction print on the tape?

Look for the single largest trade stamped in the 16:00 ET minute. In the worked example above it was 2.80 million shares at 16:00:02 ET. The panel of that session's largest prints also carries a second line in the double digits as a share of the day. The measurement on this page counts only the largest print, a floor rather than an exact auction total.


Every panel here ships with the exact SQL that produced it, so the measurement is auditable line by line. To run the same two numbers on a different name or a different session, ask for it in plain English on the Strasmore terminal.