Wetin be bid-ask spread? Real cost wey dey inside trade
Learn wetin bid-ask spread be, how to calculate am, and di exact cost per trade. We use real spreads from tick-level quote data for US stocks so you go see wetin dey really happen.
Bid-ask spread na di gap between di highest price wey any buyer ready to pay for one stock (di bid) and di lowest price wey any seller ready to accept (di ask). E be di cost wey dey inside trading: you buy for di ask, sell for di bid, and di difference go remain with who supply di quote. Every spread figure for dis page dem measure am from tick-level quote data, and di exact query wey produce each number dey attached to am.
Wetin be bid-ask spread? Meaning for ordinary person
For any time wey market dey open, one stock get two price, no be one. Bid na di best price wey pesin don set to buy. Ask (sometime dem dey call am offer) na di best price wey pesin don set to sell. Di bid-ask spread na di gap between di two.
Make we use example: one stock wey dem quote as $20.00 bid / $20.05 ask get five-cent spread. Anybody wey wan buy sharp-sharp go pay $20.05; anybody wey wan sell sharp-sharp go collect $20.00. Dat nickel no be brokerage fee — na di price of quick action, and e dey go to di trader for di oda side of di quote, mostly na professional market maker wey dey ready to buy for di bid price and sell for di ask price di whole session.
For US stocks, di best bid and best ask across every exchange dey packed togeda into one national best bid and offer — di NBBO. Na dat quote your brokerage app dey show you, and na di data wey dis post dey measure. (Finance still dey use "spread" for oda gaps: di 2s10s spread na difference between Treasury yields, no be stock prices.)
Bid vs ask: how to read wetin stock quote dey show
Na real NBBO record for Apple be dis — di last quote wey dey our data window, wey dem pull from di consolidated feed.
The exact SQL behind every number
SELECT stock,
toDecimalString(bid, 2) AS bid_price,
toDecimalString(ask, 2) AS ask_price,
toDecimalString(ask - bid, 2) AS spread,
toDecimalString((ask + bid) / 2, 2) AS midpoint_price,
round((ask - bid) / ((ask + bid) / 2) * 100, 3) AS spread_pct,
quote_time_et
FROM (
SELECT ticker AS stock,
argMax(toFloat64(bid_price), sip_timestamp) AS bid,
argMax(toFloat64(ask_price), sip_timestamp) AS ask,
formatDateTime(toTimeZone(max(sip_timestamp), 'America/New_York'), '%Y-%m-%d %H:%i') AS quote_time_et
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY ticker
)Read am from left go right: di best bid na $334.75, di best ask na $334.81, and di spread — ask minus bid — na $0.06, wey get stamp 2026-07-16 19:59 ET. Di midpoint, $334.78, dey seat for middle of di two and na im be di normal reference for stock fair value for dat exact time.
One detail wey worth to notice: dis quote show near di end of extended session, hours after di closing bell don sound. Di clock dey matter for spreads — di intraday chart wey dey down dey show how e dey go.
How to calculate di spread: cents, percent, and basis points
Di same gap fit show for three ways:
- Dollars and cents. Spread na ask minus bid. E simple, but e hard to compare across stocks wey dey trade for different prices.
- Percent. Spread ÷ midpoint × 100. Five-cent spread for one $20 stock na 0.25% of di price; di same five cents for one $200 stock na 0.025%.
- Basis points (bps). Hundredths of a percent — di professional convention. Multiply di percentage by 100: 0.25% equal 25 bps.
Apply am to di real Apple quote wey dey up: $0.06 ÷ $334.78 give you 0.018% of di share price — na after-hours reading, and e still well under 1% of di price.
Tight vs. wide spreads: real numbers from liquid and thin stocks
Plenty explainers dey stop for "liquid stocks get narrow spreads." Na here you go see di real size of dat difference, wey dem measure across every NBBO update for one recent multi-day window. Di table put six heavily traded names side-by-side with two genuinely thin small caps — Nathan's Famous (NATH) and Seneca Foods (SENEA). "Typical" mean di median quote for di window, and di last column dey convert dat spread into dollars on a 100-share round trip — cents per share and dollars per 100 shares na di same number.
The exact SQL behind every number
SELECT ticker,
round(median_spread_usd * 100, 1) AS typical_spread_cents,
round(median_spread_bps, 1) AS typical_spread_bps,
toDecimalString(median_spread_usd * 100, 2) AS spread_cost_100_shares
FROM (
SELECT ticker,
quantileDeterministic(0.5)(toFloat64(ask_price - bid_price), toUInt64(sip_timestamp)) AS median_spread_usd,
quantileDeterministic(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), toUInt64(sip_timestamp)) * 10000 AS median_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'NVDA', 'MSFT', 'KO', 'TSLA', 'NATH', 'SENEA')
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY ticker
)
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA', 'MSFT', 'KO', 'TSLA', 'NATH', 'SENEA'], ticker)Among di liquid names, SPY im typical quoted spread measure 2¢ — 0.3 bps of im share price — with Coca-Cola at 1¢ (1.2 bps) and Tesla at 9¢ (2.3 bps). Then di big gap come: Nathan's Famous measure 71¢ (70.5 bps) and Seneca Foods 230¢ (133.3 bps). Same market, same rulebook — di difference na liquidity: how many buyers, sellers, and market makers dey compete for each name at di same time.
How much spread dey cost for real trade
One good way to feel spread na to price round trip: buy for ask price, sell for bid price sharp-sharp, and you don drop the full spread for every share. For 100 shares, the conversion dey already for the table up — the normal spread for cents per share na the same number for dollars. For the big names, the toll na small money: $4.00 for 100 shares of Apple, $1.00 for Coca-Cola. The small names charge different — $71.00 for Nathan's Famous and $230.00 for Seneca Foods, before any commission and before the order move the price. These figures dey assume say the order fill for the displayed quote; order wey big pass the displayed size fit pay more.
Wen spread dey wide: open, close, and afta hours
Spread no dey steady as day dey go. Di chart wey dey below dey track Apple median quoted spread for 30-minute clock buckets (Eastern Time) across di same window, extended hours join body — di pattern wey plenty explainers dey claim but dem no dey show.
The exact SQL behind every number
SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(quantileDeterministic(0.5)(toFloat64(ask_price - bid_price), toUInt64(sip_timestamp)) * 100, 1) AS median_spread_cents
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY et_time
ORDER BY et_timeDi shape na U wit tall edges: e wide before open, e dey small like kobo for middle of di day, e wide again afta close. Four checkpoints from dat curve, wey clock time pin down:
The exact SQL behind every number
SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(quantileDeterministic(0.5)(toFloat64(ask_price - bid_price), toUInt64(sip_timestamp)) * 100, 1) AS median_spread_cents
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY et_time
HAVING et_time IN ('04:00', '09:30', '13:00', '16:00')
ORDER BY et_timeFor di 04:00 premarket bucket — di first one for di day — Apple median spread measure 34¢. For di 09:30 bucket, di first half hour of regular trading, e crash go 7¢, and di 13:00 early-afternoon bucket siddon for 4¢. Di 16:00 bucket, wey start wen closing bell ring wit di closing auction, jump go 15¢, and di gap stay high through evening — 15¢ for di final bucket of di session. During regular hours (9:30 a.m.–4 p.m. ET) plenty market makers dey quote di stock at once; outside dose hours — during afta-hours and premarket trading — far fewer quotes dey compete, and di gap dey wide.
Wetin dey make spread tight or wide
Four things dey waka together with tight spreads:
- Competition. More market makers and more resting orders for one name mean tighter quotes for both sides. One thin stock fit get only one active quoter wey dey set the whole market.
- Trading volume. Heavy volume and tight spreads dey show together all over the table wey dey up; the names wey dem trade heavy dey sit for small fraction of the gaps wey thin names get.
- Volatility. For fast markets, dem dey re-price quotes constantly and the gap dey tend to sit wider until trading calm down.
- Share price and tick size. US stocks wey pass $1 dey quote for one-cent increments, and one cent na the floor — the most liquid low-priced names dey spend plenty of the day pinned for there. For one low-priced stock, that same minimum cent na bigger percentage of every share.
How you fit make your spread cost small
- Limit order dey name the price. Market order just collect any price wey the quote give; limit order go fill only for the price wey you set or better one. Buy order wey dey rest for bid dey earn the spread instead of paying am when seller come meet am — the trade-off be say e fit no ever fill.
- Liquid names during regular hours na the cheap combination. The intraday chart wey dey up show the scale: midday spreads for liquid stocks na the tightest for the whole session.
- Basis points dey show wetin cents dey hide. Gap wey sound like small change fit be serious fraction of one percent for thin or low-priced stock, as the small-cap rows wey dey up show.
- Fewer round trips mean smaller toll. Every round trip dey pay the spread one time; the total cost dey scale with how often position dey turn over.
Bid-ask spread FAQ
Wetin be good bid-ask spread?
No official threshold dey, but di table above show di scale: for di window wey we measure, SPY im typical spread na 0.3 bps of im share price and Tesla own na 2.3 bps, while di thin small caps reach 70.5 and 133.3 bps. Single-digit basis points tight well-well; spread wey pass roughly 1% of di share price na where limit order go earn im keep.
Who dey keep di bid-ask spread?
Anybody wey supply di quote — typically na market maker — dey earn di spread wen both sides of im quote fill. Na compensation for standing ready to trade at all times, no be fee wey your broker or di exchange dey collect.
Wide bid-ask spread good or bad?
Wide spread dey raise your cost per round trip, as di 100-share cost column for di table above show. Wide spread still carry information: fewer participants dey quote, and di last trade price na looser estimate of wetin your order go actually get.
Why di ask price high pass di bid?
By construction. Di bid na di best price wey buyers go pay and di ask na di best price wey sellers go accept; anytime di two meet, di exchange match dem into trade instantly and di quote move on. Standing quote always show di ask at or above di bid.
Bid-ask spread matter for long-term investors?
E matter less dan for active traders, and di data show di scale: 100-share round trip for SPY measure $2.00 for typical spread cost. To pay dat one once in a decade na noise; to pay thin-stock spread every week dey compound into real money.
Every number above dey render from stored query wey you fit inspect — expand di SQL under any panel to audit am. To measure di spread on ticker wey you own, ask di same questions for plain English on di Strasmore terminal.