Primary Peg vs Market Peg Orders Explained
Primary peg vs market peg orders: which side of the NBBO each tracks, where a buy rests on a 10.00 bid and 10.05 offer, and how offsets and caps re-price.
A primary peg and a market peg are both pegged orders: limit orders whose price the trading venue keeps in step with the live quote instead of a number you type once. A primary peg buy tracks the near touch, the best bid, which is the passive side for a buyer. A market peg buy tracks the far touch, the best offer, which is the price a buyer has to reach to trade right now. Offsets, re-pricing, display and venue handling all follow from that single choice of reference point.
What a pegged order is
Three parameters define a peg. The reference price, which for this family is one side of the national best bid and offer, the consolidated best quote across US venues that our NBBO guide unpacks. An offset, in cents or ticks, applied to that reference. A limit price that caps how far the venue may follow the reference before the order stops moving.
The order itself holds no fixed price of its own. Each time the reference changes, the venue recalculates and re-prices the resting order. That is the appeal: a trader who wants to stay at the touch through the session never has to cancel and replace a limit order on every tick.
Primary peg vs market peg on a single quote
Take a stock quoted 10.00 bid, 10.05 offer, and a trader who wants to buy.
A primary peg buy prices at 10.00. The primary, or near, touch for a buyer is the best bid, the same side the order sits on. The order joins the queue at the bid and waits for a seller to come to it.
A market peg buy prices at 10.05. The market, or far, touch for a buyer is the best offer, the other side of the quote, and that is the price a buyer has to reach to trade immediately.
A midpoint peg buy would price at 10.025, halfway between. That one has its own mechanics, covered in full by midpoint peg orders.
For a seller the references flip. The near touch is the offer, so a primary peg sell rests at 10.05. The far touch is the bid, so a market peg sell prices at 10.00. The word "market" in the name never means a market order. It names the side of the quote being tracked.
Offsets, caps, and re-pricing as the quote moves
An offset shifts the order off its reference by a set amount. A primary peg buy with a one cent aggressive offset prices at 10.01, a penny inside the spread, ahead of everyone resting at 10.00. A market peg buy with a one cent passive offset prices at 10.04, a penny short of the offer, which turns a taking instruction back into a resting one. Sign conventions are not uniform, so an offset field on one venue's spec sheet can carry the opposite meaning on another's.
Now move the quote. If the bid lifts to 10.02, the primary peg buy re-prices to 10.02 and gives up its place in line, since a new price means a new queue. If the offer drops to 10.03, the market peg buy re-prices down with it. If the offer instead runs to 10.20 while the order's limit cap is 10.10, the peg climbs to 10.10 and stops there. From that moment it behaves as an ordinary resting order well below the market, the state described in marketable and non-marketable limit orders.
How far apart are the two touches?
The distance between where a primary peg rests and where a market peg prices is the bid and ask spread. The panel below measures it hour by hour for one liquid name on a single session, Tuesday 15 September 2026, across every quote the tape carried from the early pre-open through the end of after-hours.
| et_time | spread_cents |
|---|---|
| 04:00 | 24.53 |
| 05:00 | 19.62 |
| 06:00 | 23.8 |
| 07:00 | 17.83 |
| 08:00 | 17.41 |
| 09:00 | 6.7 |
| 10:00 | 4.02 |
| 11:00 | 3.23 |
| 12:00 | 2.68 |
| 13:00 | 2.29 |
| 14:00 | 2.03 |
| 15:00 | 2.15 |
| 16:00 | 14.8 |
| 17:00 | 10.75 |
| 18:00 | 12.85 |
| 19:00 | 10.32 |
The exact SQL behind every number
SELECT
formatDateTime(toStartOfHour(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,
round(avg(toFloat64(ask_price) - toFloat64(bid_price)) * 100, 2) AS spread_cents
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= '2026-09-15 08:00:00'
AND sip_timestamp < '2026-09-16 00:00:00'
AND bid_price > 0
AND ask_price > bid_price
GROUP BY et_time
ORDER BY et_timeIn the first bucket on the chart, 04:00 ET, the average quoted spread measured 24.53 cents. In the last, 19:00 ET, it measured 10.32 cents. The regular session fills the hours between, and the shape of the curve across all 16 buckets is what a peg user cares about. That gap is the price of choosing the far touch over the near one, and it does not hold still through the day.
It varies by name even more than by hour. Same date, same full-day window, five household tickers.
| symbol | avg_spread_cents | tightest_spread_cents | avg_spread_bps |
|---|---|---|---|
| MSFT | 13.22 | 1 | 2.6 |
| AAPL | 3.6 | 1 | 1.1 |
| SPY | 2.49 | 1 | 0.3 |
| NVDA | 1.88 | 1 | 0.9 |
| KO | 1.34 | 1 | 1.5 |
The exact SQL behind every number
SELECT
ticker AS symbol,
round(avg(toFloat64(ask_price) - toFloat64(bid_price)) * 100, 2) AS avg_spread_cents,
round(min(toFloat64(ask_price) - toFloat64(bid_price)) * 100, 2) AS tightest_spread_cents,
round(avg(toFloat64(ask_price) - toFloat64(bid_price))
/ avg(toFloat64(bid_price)) * 10000, 1) AS avg_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'SPY', 'KO')
AND sip_timestamp >= '2026-09-15 08:00:00'
AND sip_timestamp < '2026-09-16 00:00:00'
AND bid_price > 0
AND ask_price > bid_price
GROUP BY ticker
ORDER BY avg_spread_cents DESCSorted widest first, MSFT averaged 13.22 cents between the touches, or 2.6 basis points of its own price, while its single tightest quote of the day measured 1 cents. At the other end of the five, KO averaged 1.34 cents. A basis point is one hundredth of a percent. Cents flatter a cheap stock and punish an expensive one, which is why the basis point column sits next to them.
A market peg takes and rests at the same time
A market peg buy priced at the offer is an instruction to trade now, for as long as there is size sitting at that offer. Once that size is gone and the offer lifts away, there is nothing left to reach, and the order does not expire. It re-prices to the new offer and keeps resting. Over a session it alternates between the two states. Between one re-price and the next quote update it is an ordinary resting order, and a venue may run it under a discretionary instruction of the kind described in held versus not held orders.
Locked markets and the one cent case
Reg NMS, the US rulebook for equity quote protection, bars a displayed quote that locks the market, where one venue's bid equals another venue's offer, and a crossed market, where the bid sits above the offer. A displayed buy peg re-pricing up to the current offer would publish exactly such a locking bid. Handling at that moment is a venue-level decision. Common approaches hold the order unpriced until the condition clears, or price it one tick inside the far touch. Locked and crossed markets covers the condition itself.
The tightest case is also the most common one. When a stock is already quoted a penny wide, there is no room between the touches: the primary peg and the market peg stand one tick apart, and the midpoint falls on a half cent.
KO quoted a penny or tighter on 79.8% of its quotes that session, the highest share of the five, against 2.1% for MSFT. Where that share runs high, primary versus market peg is a one tick decision, and queue position rather than price is what the order is really competing for.
Why pegs are usually hidden
A displayed order that follows the quote republishes a new price every time its reference moves. The panel counts distinct best bid prices per fifteen minutes for a heavily quoted name alongside a quieter one on the same date. Each distinct level is one re-price for a primary peg resting there.
| et_time | nvda_bid_levels | ko_bid_levels |
|---|---|---|
| 04:00 | 68 | 21 |
| 04:15 | 38 | 8 |
| 04:30 | 14 | 3 |
| 04:45 | 19 | 0 |
| 05:00 | 34 | 3 |
| 05:15 | 36 | 2 |
| 05:30 | 23 | 1 |
| 05:45 | 46 | 4 |
| 06:00 | 28 | 2 |
| 06:15 | 25 | 1 |
| 06:30 | 23 | 14 |
| 06:45 | 20 | 12 |
| 07:00 | 32 | 10 |
| 07:15 | 29 | 5 |
| 07:30 | 20 | 4 |
| 07:45 | 25 | 1 |
| 08:00 | 43 | 7 |
| 08:15 | 51 | 3 |
| 08:30 | 34 | 4 |
| 08:45 | 66 | 5 |
The exact SQL behind every number
SELECT
formatDateTime(toStartOfFifteenMinutes(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,
uniqExactIf(bid_price, ticker = 'NVDA') AS nvda_bid_levels,
uniqExactIf(bid_price, ticker = 'KO') AS ko_bid_levels
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('NVDA', 'KO')
AND sip_timestamp >= '2026-09-15 08:00:00'
AND sip_timestamp < '2026-09-16 00:00:00'
AND bid_price > 0
AND ask_price > bid_price
GROUP BY et_time
ORDER BY et_timeAcross 64 buckets, the first one at 04:00 ET already carries 68 distinct best bid prices for NVDA. A displayed peg would have rewritten its own quote that many times in a quarter of an hour. Venues mostly sidestep the problem by accepting pegs as non-displayed orders, or by treating the peg as a working instruction inside their matching logic rather than a published price.
Can a retail trader place one?
Mostly no, and it is worth being blunt. Primary and market pegs are venue and institutional order types. They live in exchange and ATS order specifications and in the routing logic of brokers and execution algorithms. A standard retail front end offers market and limit orders plus stop variants, sometimes with a price improvement routing option that behaves in a midpoint-like way, not a primary peg checkbox with an offset field. A self-directed trader meets these order types indirectly, in how a broker routes an order and in the shape of the fills that come back. Reading the mechanics still pays: it explains how a limit order resting at the bid can sit untouched while prints go off a penny away.
FAQ
What is the difference between a primary peg and a market peg order?
A primary peg tracks the near touch, the best price on the order's own side, so a primary peg buy rests at the bid. A market peg tracks the far touch, the opposite side, so a market peg buy prices at the offer. Both re-price automatically as the quote moves.
Is a market peg order the same as a market order?
No. A market peg is a limit order pegged to the far side of the quote, with a limit cap past which it stops following. It can rest unfilled for an entire session. A market order carries no price condition at all.
Can I place a primary peg or market peg order on a retail app?
Generally not. These are venue-level and institutional order types rather than retail buttons. Most retail platforms offer market, limit and stop orders, and some offer midpoint or price improvement routing.
What happens to a pegged order when the market locks?
Reg NMS bars a displayed quote that locks or crosses another venue's quote, so a peg that would re-price into a lock cannot simply publish there. Each venue handles it in its own way, commonly by holding the order unpriced or pricing it one tick inside, until the quote separates again.
Do pegged orders appear on the order book?
Often not. An order that re-prices on every quote change would flood the book with updates, so venues typically accept pegs as non-displayed liquidity. Their size turns up in the prints rather than in visible depth.
Every panel above ships with the SQL that produced it, so you can open one and check the arithmetic yourself. The same quote-level questions, spread by hour or touch by ticker, can be asked in plain English on the Strasmore terminal.