Bid, ask, mid and spread
Every liquid market has two prices at any moment, one on each side. The bid is the best price at which someone is ready to buy right now. If you want to sell immediately, the bid is what you get. The ask, also called the offer, is the best price at which someone is ready to sell. If you want to buy immediately, the ask is what you pay.
The ask is normally above the bid. The difference is the spread: spread = ask - bid. It is the cost of trading immediately in both directions, and it is the main income of market makers who stand ready on both sides.
The mid price is the midpoint between them: mid = (bid + ask) / 2. It is not a price anyone can trade at, but it is a fair single number for the current market level, and many analytics and charts use it for that reason.
The last price is different again. It is the price of the most recent trade, or the reference price published for the instrument. It tells you where the market traded, not where you can trade now. In a quiet market the last price can be minutes old while bid and ask keep moving.
| Term | Formula or source | What it answers |
|---|---|---|
| Bid | Best buying interest | At what price can I sell right now? |
| Ask | Best selling interest | At what price can I buy right now? |
| Spread | ask - bid | How much does an immediate round trip cost? |
| Mid | (bid + ask) / 2 | Where is the market, as one number? |
| Last | Most recent trade or reference price | Where did the market last trade? |
Why a broker needs two-sided quotes
For a website that shows market levels next to an article, one price per instrument is enough. For a broker, it is not. Two-sided quotes matter in three places.
- Display. A trading terminal shows a sell price and a buy price, because that is what a client acts on. Showing a single price on a buy button and the same price on a sell button would misrepresent the cost of the trade.
- Client spread. Brokers usually start from the market spread and apply their own pricing model on top of it. Without a market bid and ask there is nothing to start from. The spread a client sees is the broker's own decision; the feed supplies the market reference.
- Honest charts. If the chart in the terminal and the quote on the button come from different price series, clients notice. A consistent rule for which price series drives the chart keeps the two in agreement.
Prices in a market data feed are indicative. They reflect the market level at the time they were received, but they are not firm quotes, and no one is obliged to trade at them. Execution prices come from the broker execution venue or liquidity provider. FinaQuotes is a market data provider, not a broker or a liquidity provider; see the market data policy for details.
Where the feed carries real bid/ask
The FinaQuotes feed delivers two-sided bid/ask on forex, spot metals and US stocks; it delivers the last price on crypto, indices, commodities and bonds. Non-US stocks also carry the last price. For last-price instruments the tick still has bid and ask fields, but bid = ask = last, so a client can use one parser for every asset class.
This split follows how the markets themselves work, rather than a limitation of the feed.
- Forex and spot metals are dealer markets. There is no single exchange and no single last trade; the market is the set of two-sided quotes from dealers and venues. Bid/ask is the natural price here.
- US stocks trade on exchanges with a public best bid and offer (level 1 of the order book) next to the trade prints. Both are meaningful, and the feed carries real-time trades and quotes for this class.
- Indices are calculated values. An index is computed from its constituents, it is not traded directly, so it has a level, not a bid and an ask.
- Commodities and bonds in a reference feed are typically represented by a published price or the last trade of a benchmark contract. That price is the useful reference for display and analytics.
- Crypto trades on many venues at once, each with its own order book. A single last price is the clean way to represent the market level across that fragmented picture.
The full table by asset class, including which classes are real time and which are delayed, is on the coverage page and in the data policy. Per-class pages such as forex, metals and stocks go into more detail.
How the spread changes during the day
A spread is not a constant. It reflects how much liquidity is available, and liquidity follows the clock.
- Forex trades 24 hours a day, five days a week, but not evenly. Spreads on major pairs are usually tightest when the large trading centres overlap and wider in the quiet hours. They tend to widen around the daily rollover and around the weekly open.
- Scheduled news, such as central bank decisions and key economic releases, can widen spreads sharply for seconds or minutes, then they narrow again.
- Spot metals behave much like forex, with their own liquid and quiet hours.
- US stocks typically show wider spreads right after the opening of the regular session and tighter spreads once trading settles. Spreads also depend on the stock: a large, heavily traded name usually trades with a spread of a cent or two, a thin name with much more.
For a broker this has two consequences. First, do not hard-code a typical spread anywhere; read it from live quotes. Second, if you show clients an average spread, say over which period and in which hours it was measured.
Worked examples
The table uses illustrative numbers, not live prices, to show how the same formulas apply to different instruments. Forex spreads are usually quoted in pips, where one pip is 0.0001 for most pairs; the spreads below are shown in price units so that the arithmetic is visible.
| Instrument | Bid | Ask | Spread | Mid |
|---|---|---|---|---|
| EURUSD (forex) | 1.08412 | 1.08419 | 0.00007 (0.7 pip) | 1.084155 |
| XAUUSD (spot gold) | 2350.10 | 2350.45 | 0.35 | 2350.275 |
| US stock, large cap | 182.40 | 182.42 | 0.02 | 182.41 |
| BTCUSD (crypto, last price) | 64250.5 | 64250.5 | 0 in the tick | 64250.5 |
| Stock index (last price) | 5210.3 | 5210.3 | 0 in the tick | 5210.3 |
The zero spread in the last two rows is not a market spread of zero. It only means the instrument is represented by one price. Do not show it to users as a spread.
Common integration mistakes
These are the issues we see most often when a feed is wired into a trading front end.
- Showing a spread of zero for last-price instruments. When bid = ask = last, hide the spread column or mark the price as last, instead of printing 0.
- Building live candles from a different price series than the history. If your history comes from the feed and your live candle is built on your side, use the same rule as the feed, otherwise the latest candle jumps when it is replaced by the stored one. Candles in the feed are built by one consistent rule; check the documentation for the price series they use rather than assuming bid or mid.
- Mixing bid and ask on the same screen. A quote board that shows bid for some rows and mid for others is confusing. Pick one display rule per column and keep it.
- Ignoring precision. Each instrument has its own number of decimal places. Read it from the instrument catalog over REST instead of rounding everything to two or five digits.
- Treating a crossed or locked quote as an error that stops processing. In fast markets an ask can briefly equal or fall below the bid. Typically you log it and keep going; the next tick usually resolves it.
- Interpreting timestamps as local time. All timestamps in the feed are UTC.
Frequently asked questions
Why does the feed show bid = ask for crypto and indices?
Because these instruments are represented by the last price. An index is a calculated level and crypto trades across many venues, so one reference price is the clean representation; bid and ask are filled with that price so that every tick has the same shape.
Can a broker execute client orders at feed prices?
Feed prices are indicative market data, not executable quotes. A broker executes at the prices of its execution venue or liquidity provider and may use the feed for display, reference and monitoring. See the market data policy and market data for brokers.
Should I chart bid, ask or mid?
Use one rule consistently and make it the same as the history you load. Bid charts are common in forex terminals, mid charts in analytics. Candles delivered by the feed follow one consistent rule; check the docs for the price series they use before you build the live candle.
Need the feed behind these guides?
Tell us what you are building and which asset classes you need. We reply within one business day with access details and pricing.