Full options quote history: clean NBBO bid/ask snapshots for any US option contract at the interval you choose, by SQL API, $79 a month.See the options quotes plan
Strasmore Research
Learn am Matt ConnorBy Matt Connor · Updated 2026-10-06

Sub-Penny Rule and Price Improvement

Rule 612 sub-penny rule e ban quotes for fractions of a cent when price reach $1.00 or above. So why your fill still print for four decimals? Na real tape data show the answer.

Sub-penny rule, wey na Rule 612 of Regulation NMS, set the finest increment wey any displayed stock quote fit use: one cent for any price of $1.00 or more, and one hundredth of a cent for any price below $1.00. E bind wetin any venue fit display or accept. E no talk anything about the price wey any trade fit print at. Na how fill enter your confirmation for $47.3218 even though every quote for screen end for round cent.

Wetin the sub-penny rule really dey talk

Rule 612 enter with Regulation NMS for 2005, and the main text no long. No national securities exchange, alternative trading system, vendor, or broker fit display, rank, or accept order, quotation, or indication of interest for NMS stock wey price dey smaller than $0.01 increment when the price reach $1.00 or above. Below $1.00, the floor drop to $0.0001. NMS stock na exchange-listed equity, so the rule cover essentially everything wey retail brokerage account fit buy on US exchange.

The words wey hold the rule together na display and accept. The rule cover quotes and orders. E no cover executions. No venue fit post bid of $47.3215, and your broker no fit accept limit order for that price, but trade fit still print there lawful.

The practice wey the rule write against na stepping ahead. Trader fit jump queue go front of resting $10.00 bid by posting $10.0001, taking priority for one hundredth of cent of real economic commitment. Coarse displayed grid dey remove that move and e give price priority some weight.

Why your fill dey print for four decimal places

Most marketable retail orders for US stocks never reach any exchange. Dem dey route to a wholesaler — an off-exchange market maker wey dey fill the order against e own inventory. The wholesaler no dey display quote when e dey fill your order, so the penny grid no dey bind the execution price. E dey fill inside the national best bid and offer, often by a fraction of a cent, and that gap between the NBBO and your fill na the price improvement figure wey you go see for the confirmation and also for your broker's execution quality reports.

This mechanism dey leave signature for the public tape. Every trade dey print to the consolidated feed at e exact price, so if you count the prints wey e price carry a fraction of a cent, na so you go count the fills wey happen inside the grid.

QueryShare of prints wey land for sub-penny price
tickersubpenny trade pctsubpenny volume pct
KO46.5624.88
T39.0546.58
BAC37.8840.28
NVDA36.7728.51
F36.4258.03
AAPL36.0822.84
MSFT31.8725.44
The exact SQL behind every number
SELECT
    ticker,
    round(100 * countIf(toUInt64(round(toFloat64(price) * 10000)) % 100 != 0) / count(), 2)       AS subpenny_trade_pct,
    round(100 * sumIf(size, toUInt64(round(toFloat64(price) * 10000)) % 100 != 0) / sum(size), 2) AS subpenny_volume_pct
FROM global_markets.stocks_trades
WHERE ticker IN ('MSFT', 'AAPL', 'NVDA', 'KO', 'BAC', 'T', 'F')
  AND sip_timestamp >= '2026-06-17 14:00:00'
  AND sip_timestamp <  '2026-06-17 14:15:00'
  AND price > 0
GROUP BY ticker
ORDER BY subpenny_trade_pct DESC
Run am yourself

For the fifteen minute window wey dey 17 June 2026, KO show the highest rate of the 7 names wey dem measure, with 46.56% of prints wey land on sub-penny price. MSFT show the lowest at 31.87%. If you count shares instead of prints, you go see the second view: on KO, sub-penny prints carry 24.88% of the shares wey change hand.

Fills wey come from wholesaler dey skew small. The panel wey dey below dey split one full session of AAPL prints by trade size, wey dey separate retail-sized flow from institutional blocks.

QueryAAPL sub-penny print rate by trade size, 17 June 2026
size bucketsubpenny trade pctshare of prints pct
under 100 shares38.6688.99
100 to 499 shares21.5710.49
500 to 999 shares30.460.36
1,000 to 4,999 shares32.220.15
5,000 shares and up18.060.02
The exact SQL behind every number
WITH prints AS
(
    SELECT
        size,
        multiIf(size < 100,  'under 100 shares',
                size < 500,  '100 to 499 shares',
                size < 1000, '500 to 999 shares',
                size < 5000, '1,000 to 4,999 shares',
                             '5,000 shares and up')       AS size_bucket,
        toUInt64(round(toFloat64(price) * 10000)) % 100 != 0 AS sub_penny
    FROM global_markets.stocks_trades
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= '2026-06-17 00:00:00'
      AND sip_timestamp <  '2026-06-18 00:00:00'
      AND price > 0
      AND size > 0
)
SELECT
    size_bucket,
    round(100 * countIf(sub_penny) / count(), 2)           AS subpenny_trade_pct,
    round(100 * count() / (SELECT count() FROM prints), 2) AS share_of_prints_pct
FROM prints
GROUP BY size_bucket
ORDER BY min(size)
Run am yourself

Prints of under 100 shares dey account for 88.99% of the AAPL trades for that session, and e dey carry sub-penny price for 38.66% of the time. The largest band, 5,000 shares and up, dey print sub-penny for 18.06% of the time. Both ends of the panel dey carry them.

Why one kobo dey heavy like tax for cheap stock

Basis point na one hundredth of one percent, na the standard unit wey dem dey use compare trading costs across share prices. If you measure am in basis points, one cent minimum tick na completely different charge on $3 stock compared to $500 stock.

QueryWetin one cent dey worth, by share price band
price bucketstock countone cent bps
$1 to $214271.37
$2 to $530531.07
$5 to $1037513.99
$10 to $257176.4
$25 to $507202.9
$50 to $1006171.46
$100 to $2504410.7
$250 to $1,0001700.28
The exact SQL behind every number
WITH day_prices AS
(
    SELECT
        ticker,
        toFloat64(close) AS px
    FROM global_markets.stocks_daily_aggs
    WHERE date = '2026-06-17'
      AND volume >= 500000
      AND close >= 1
      AND close <  1000
)
SELECT
    multiIf(px < 2,   '$1 to $2',
            px < 5,   '$2 to $5',
            px < 10,  '$5 to $10',
            px < 25,  '$10 to $25',
            px < 50,  '$25 to $50',
            px < 100, '$50 to $100',
            px < 250, '$100 to $250',
                      '$250 to $1,000') AS price_bucket,
    count()                             AS stock_count,
    round(avg(10000 * 0.01 / px), 2)    AS one_cent_bps
FROM day_prices
GROUP BY price_bucket
ORDER BY min(px)
Run am yourself

Across the 8 price bands on 17 June 2026, one cent dey worth 71.37 basis points of the share price for the $1 to $2 band, and 0.28 basis points for the $250 to $1,000 band. Na the same penny, e dey measured against prices wey dey very different.

The rule don get one adjustment for this matter. Below $1.00, the increment drop go $0.0001 — na one hundredth of the tick wey dey apply when you dey just fraction of a cent above that level. Stock wey quote $0.99 dey use grid wey fine pass the same stock wey quote $1.01 by one hundred times, and the cliff dey sit right there for the boundary.

That arithmetic dey show for bid ask spreads wey dem quote. Panel wey dey below take the highest bid and the lowest offer wey dem post for the same second, then e average that gap over fifteen minute window. Seconds wey the book lock or cross, dem drop am, and locked and crossed markets dey explain wetin those ones look like.

QueryDi penny tick and di quoted gap, for basis points
nameavg spread centsone cent bpsspread bpstier
MSFT ($388)6.230.261.61above $0.015
AAPL ($300)3.190.331.06above $0.015
NVDA ($207)1.520.480.74above $0.015
KO ($80)1.541.261.94above $0.015
BAC ($58)11.731.73at or under $0.015
T ($23)14.444.44at or under $0.015
F ($14)16.946.94at or under $0.015
The exact SQL behind every number
WITH best_quote AS
(
    SELECT
        ticker,
        toStartOfSecond(sip_timestamp) AS sec,
        toFloat64(max(bid_price))      AS best_bid,
        toFloat64(min(ask_price))      AS best_ask
    FROM global_markets.cache_stocks_quotes
    WHERE ticker IN ('MSFT', 'AAPL', 'NVDA', 'KO', 'BAC', 'T', 'F')
      AND sip_timestamp >= '2026-06-17 14:00:00'
      AND sip_timestamp <  '2026-06-17 14:15:00'
      AND bid_price > 0
      AND ask_price > bid_price
    GROUP BY ticker, sec
    HAVING min(ask_price) > max(bid_price)
)
SELECT
    concat(ticker, ' ($', toString(round(avg((best_bid + best_ask) / 2), 0)), ')') AS name,
    round(avg(best_ask - best_bid) * 100, 2)                                       AS avg_spread_cents,
    round(10000 * 0.01 / avg((best_bid + best_ask) / 2), 2)                        AS one_cent_bps,
    round(10000 * avg(best_ask - best_bid) / avg((best_bid + best_ask) / 2), 2)    AS spread_bps,
    if(avg(best_ask - best_bid) <= 0.015, 'at or under $0.015', 'above $0.015')     AS tier
FROM best_quote
GROUP BY ticker
ORDER BY avg((best_bid + best_ask) / 2) DESC
Run am yourself

For MSFT ($388), the penny tick na 0.26 basis points of the price, and the average quoted gap run reach 6.23 cents, wey dey 1.61 basis points. For F ($14), the penny na 6.94 basis points, and the quoted gap of 1 cents work out to 6.94 basis points. A low priced name fit look wide on percentage screen even though e dey quote one cent gap, wey be the narrowest the displayed grid allow. For that point, the quoted spread dey measure the size of the tick, no be the depth of the market.

The 2024 amendment and di half cent tick

For September 2024, SEC amend Rule 612 and add second quoting increment. If NMS stock time-weighted average quoted spread for di prior evaluation period dey $0.015 or less, e go quote for $0.005 increments. All di others remain for di penny. Evaluation dey repeat for fixed schedule, and affected symbols dey republish for every round, na why dis page dey state di threshold and leave di roster to di SEC.

Which names $0.015 test go pick? Di ones wey don already pin to di floor: heavily traded stocks wey di quoted spread dey for one cent or very near am for most of di session. Stock wey dey routinely quote three or four cents wide neva go near di test. Di panel above get tier column wey dey apply di threshold arithmetic to di window e measure, wey make am illustration, no be designation. SEC dey measure time-weighted average across full evaluation period. Fifteen minutes of one session no be dat.

Same rulemaking lower di cap on di fee wey exchange fit charge to access protected quote — to $0.0010 per share for stocks wey dey price $1.00 and above. Di two numbers dey work together: half cent quoting grid beside tenth of a cent access fee dey stop di fee from take large fraction of di tick.

Di amendment dey govern quoting. Everything wey dey above about execution prices never change because of am, and off-exchange fill wey dey inside di quote still fit land for finer increment.

Why dem go reject limit order wey price don cross correct increment

Limit order wey price be $47.3215 dey tell broker make e accept price wey rule say e no fit accept, so e go bring the order back with invalid price increment message, or e go round am to the nearest legal tick depending on the firm. The $1.00 boundary dey apply to the price of the order itself, no be the stock last sale, so order at $0.4732 dey legal for the $0.0001 grid, while $0.47325 no dey.

The mirror image dey for the other side of the trade. If wholesaler fill you at $47.3218, e keep the fraction of cent wey dey between your price and its own, and wetin market makers dey do to make money explain where that fraction dey go.

Questions Wey Pipo Dey Ask

Wetin be the sub-penny rule?

Na Rule 612 of Regulation NMS. E stop any exchange, alternative trading system, broker, or vendor from displaying or accepting order or quote for NMS stock with increment wey dey finer than $0.01 when price dey $1.00 or more, and finer than $0.0001 when price dey below $1.00.

Why my stock order fill with four decimal places?

The rule dey govern quotes and orders, no be executions. Na market maker wey dey work off-exchange fill your order inside the national best bid and offer, e fit execute at fraction of one cent wey better pass the quote, and that difference na wetin brokers report as price improvement.

Why dem reject my limit order for invalid price increment?

The limit price use increment wey finer pass wetin Rule 612 allow for that price level: finer than one cent for order wey price dey $1.00 or above, or finer than $0.0001 for order wey price dey below $1.00. When you enter the order again with legal increment, the rejection clear.

Wetin the 2024 SEC tick size amendment change?

E add quoting increment of $0.005 for NMS stocks wey their time-weighted average quoted spread for the previous evaluation period dey $0.015 or less. Stocks wey no fall inside that threshold continue quote for whole cents, and the amendment dey govern quoting increments, no be execution prices.


Every panel for this terminal come with the SQL wey produce am, so expand one to see exactly how dem take each count. Sub-penny print share and average quoted spread fit measure for any symbol and any window for the Strasmore terminal.

#reg nms#rule 612#tick size#price improvement#limit orders