Forex spread: the mechanics of bid-ask pricing in trading
A forex spread is not a charting artefact. It is the first transaction cost applied to an OTC currency position.

If EUR/USD is quoted at 1.08420 / 1.08428, the bid is 1.08420 and the ask is 1.08428. A trader buying pays the ask. A trader selling receives the bid. The eight-point difference is the spread: 0.8 pip for a pair quoted to four decimal places. The long position begins eight points below its immediate liquidation value. The short position does the same in reverse.
This is the basic bid-ask spread explained without platform decoration. It also exposes the limitation of many broker comparisons. A published minimum spread is a snapshot of one field in the pricing stack. It is not a complete measure of forex transaction costs, execution quality, or the price available when the order reaches the dealer.
The mechanics of bid-ask pricing: how dealers set the quote
Retail spot forex is generally an over-the-counter transaction. There is no single central exchange order book that every retail customer accesses. The broker or dealer is the customer’s counterparty, or sits inside the execution chain that determines the final quote and fill conditions. The displayed bid and ask are therefore dealer-specific prices.
The quote has two sides:
| Quote component | Function for the trader | Effect on cost |
|---|---|---|
| Bid | Price received when selling the base currency | Determines the exit value of a long position and entry value of a short |
| Ask | Price paid when buying the base currency | Determines the entry value of a long position and exit value of a short |
| Spread | Ask minus bid | Immediate round-turn friction before commission and financing |
| Mark-up or mark-down | Dealer adjustment to an underlying price | Can widen the effective customer price without appearing as a separate line-item fee |
| Commission | Explicit charge per side, per trade, or per volume | Added to the spread cost where the account model charges it |
For most non-JPY pairs, a pip conventionally refers to the fourth decimal-place movement. For JPY-quoted pairs, it generally refers to the second decimal place. Platforms may quote an extra fractional digit, often called a pipette. That fractional precision improves price display granularity. It does not make the spread cheaper.
Consider a simplified EUR/USD quote:
- Bid: 1.08420
- Ask: 1.08428
- Forex spread: 0.00008, or 0.8 pip
- Trade: buy at the ask, then immediately sell at the bid
The position is initially down 0.8 pip, excluding commission. If the account charges a separate commission, the market must move farther before the trade reaches break-even. If the position remains open past the broker’s rollover cut-off, financing may create another debit or credit.
The calculation is mechanically simple. The operational problem is not.
A retail terminal can show bid, ask, a spread widget, a depth-of-market panel, and a detailed order ticket. None of those interface modules establishes that the displayed depth is a consolidated market book. In OTC forex, DOM depth is often a representation of liquidity available through that broker’s pricing and order-routing arrangement. It is useful as a platform signal. It is not exchange-grade proof of executable market-wide depth.
The spread is the visible component of the execution path. It is not the whole path.
The same distinction applies to liquidity provider pricing. A dealer may aggregate prices from one or more liquidity sources, internalize flow, apply a mark-up, or use another execution configuration. Retail clients do not receive one universal EUR/USD price. They receive the broker’s quote under the broker’s rules, at that moment, through that account type.
Beyond the pip: deconstructing retail forex transaction costs
The forex spread is normally the first cost traders see because it is embedded directly in the quote. It should not be isolated from the rest of the ledger.
A practical cost model has at least four modules:
1. Quoted spread cost. The gap between entry and immediate exit prices. It varies by pair, account type, session, and market condition.
2. Commission cost. Some accounts apply a stated commission in exchange for tighter quoted spreads. The commission must be converted into pips or account currency and added to the spread.
3. Rollover or financing. Open positions can generate charges or credits at rollover. These are not part of the entry spread, but they can dominate the economics of a position held for multiple days.
4. Non-trading charges. Deposit, withdrawal, conversion, inactivity, and account-maintenance fees do not change an individual fill. They still affect net account performance.
For a short-duration strategy, the repeated crossing of the bid-ask spread is usually the primary friction. A system that trades frequently does not get to treat a 0.8-pip spread as a negligible number merely because each ticket is small. The spread is paid every time the strategy crosses from one side of the quote to the other.
For a swing or carry position, the position may cross the spread once and then remain exposed to daily financing. In that case, comparing brokers only by their advertised entry spread is a category error. The relevant figure is the accumulated cost of holding and closing the position under the actual account schedule.
A compact framework is:
All-in trade cost = spread cost + commission + financing debit/credit + applicable account and payment fees
The formula is deliberately plain. The data collection is not. A broker’s public pricing page may show a “from” spread, while the commission schedule sits in a separate account specification, the rollover methodology in a legal document, and payment charges in a funding page. Those are separate modules. They must be read as one system.
A spread-only comparison also fails when lot size and quote currency are ignored. The same pip distance has a different cash effect depending on position size and the pair being traded. A trader should convert the spread and commission into the account’s monetary terms before comparing execution costs.
This is especially relevant for strategies using small targets. If the expected move is only a few pips, a modest change in the live spread can materially alter the trade’s required win rate. The arithmetic does not need a sophisticated charting stack. It needs the real entry and exit prices, the position size, and the account’s fee schedule.
Liquidity and volatility: why spreads widen during market shifts
A spread is variable unless the broker contract specifically fixes it under defined conditions. Even then, the definition of an exception matters.
Spreads widen when the pricing system sees greater uncertainty or less available liquidity. The dealer must quote two-sided prices while managing the risk that a client order arrives just as the underlying market moves. The wider quote compensates for that risk and for weaker depth available to the dealer.
The usual spread widening factors are operational, not mysterious:
- Scheduled macroeconomic releases. New information can reset currency valuations within seconds. Quotes may change faster and displayed spreads may expand materially.
- Market opens and closes. Liquidity conditions are not uniform across the trading week. Transition periods can produce thinner pricing and wider bid-ask gaps.
- Holiday sessions and off-hours trading. Fewer active counterparties can mean less competitive liquidity provider pricing.
- Market stress and uncertainty. Abrupt repricing raises the risk of stale quotes and adverse selection.
- Pair-specific liquidity. Major pairs and less actively traded crosses do not have the same depth profile. There is no universal “good spread” number across instruments.
The distinction between a live quote and an executed price matters here. A platform can display a narrow spread when the order ticket opens, then receive a changed quote or fill at a different price if market conditions move during transmission and execution. This is where order routing, latency, and the broker’s execution policy become material.
The terminal’s interface quality is secondary. A clean order ticket does not repair a delayed price feed. A polished DOM panel does not guarantee depth at the displayed levels. API endpoints do not solve the problem either if the API receives a quote that is stale by the time the order reaches the execution layer.
For a trader evaluating spread behavior, the usable test is not a broker’s lowest published number. It is a time-stamped sample of executable bid and ask quotes during the actual trading window. That sample should include ordinary liquid periods and the conditions in which the strategy is most exposed: news releases, session changes, or low-liquidity hours.
Minimum spreads are marketing inputs. Time-stamped executable spreads are execution data.
This is also why screenshots are weak evidence. They show a price at one moment, often in favorable conditions. A useful record logs the pair, timestamp, bid, ask, order type, requested size, fill price, and any explicit commission. Without those fields, there is no way to separate spread widening from slippage, platform delay, or an account-level fee.
The myth of commission-free trading and dealer compensation
“Commission-free” describes one billing field. It does not describe total cost.
A dealer can be compensated through the bid-ask spread, a mark-up or mark-down, or other disclosed charges. An account may also combine a commission with a mark-up. The labels vary. The economic question is stable: what price did the client receive, what explicit charge was applied, and what additional cost accrued while the position remained open?
In the United States, firms making a commission-free representation are required to disclose how they are compensated near that representation. That requirement exists for a reason. Zero commission is capable of being technically correct while still omitting the cost structure that matters to the trade.
Two pricing models illustrate the issue:
| Cost component | Spread-only account | Commission-plus-spread account |
|---|---|---|
| Displayed spread | May include dealer compensation | May be lower, but not automatically cheaper |
| Explicit commission | Often stated as zero | Charged per trade or by volume |
| Comparison method | Measure live all-in spread and financing | Add commission to live spread and financing |
| Main analytical failure | Treating “zero commission” as zero cost | Comparing raw spreads while omitting commission |
Neither model wins by definition. A commission-plus-spread account can be cheaper for a particular pair, size, and trading schedule. It can also be more expensive after the commission is normalized. A spread-only account can produce a straightforward ledger, but its quoted spread still requires observation across different market states.
The correct comparison unit is an all-in cost for a specific trade pattern:
- instrument and quote convention;
- account type and jurisdiction;
- trade size;
- order type;
- typical holding period;
- live spread at the time the strategy operates;
- commission charged on entry and exit;
- expected rollover exposure;
- currency conversion and funding costs where relevant.
This is the same analytical discipline needed when evaluating layered pricing in adjacent digital markets. A trader examining complex fee visibility can borrow the caution used in an analysis of multi-chain NFT mints with progressive pricing: the headline entry price is rarely the complete economic model. The comparison ends only after every charge mechanism and execution condition is mapped.
That does not make forex and NFT markets equivalent. They are not. The point is narrower: fragmented pricing requires a full ledger, not a headline.
Regulatory oversight and transparency in OTC forex execution
OTC structure does not mean unregulated structure. It means the client must understand where price formation and counterparty risk sit.
For US retail forex, dealers are subject to disclosure and recordkeeping requirements covering transaction charges and pricing methods. Where straight-through processing is used, disclosures must show any dealer mark-up or mark-down. Where it is not used, the mid-point spread cost must be shown. Dealers must also retain records of the methods or algorithms used to determine bid and ask prices, including items that affect a customer’s profitability or risk of loss.
Transaction confirmations must be provided no later than the next business day, including confirmations for rollovers of open retail forex transactions. Periodic statements must provide a detailed accounting of financial charges and credits.
Those documents are not administrative debris. They are the audit trail for the trade.
A trader reviewing execution should reconcile three layers:
The pre-trade layer
This includes the live bid and ask, stated spread model, commission schedule, margin requirement, and rollover methodology. US retail forex leverage limits are generally 50:1 for major currency pairs and 20:1 for other pairs. Leverage does not alter the quoted spread, but it changes how quickly a given spread cost affects account equity relative to posted margin.
The execution layer
This is the order record: order timestamp, requested price where applicable, fill price, fill time, size, and order type. The key question is whether the trading platform’s price display and the execution report remain internally consistent under normal and stressed conditions.
The post-trade layer
This is where commissions, financing debits or credits, conversion charges, and adjustments become visible. It is also where a trader can determine whether the cost model used in backtesting matches the cost model applied to the live account.
A backtest using a fixed spread can be useful as a simplified model. It is not a reliable execution simulation if the strategy trades around releases, at thin market hours, or in instruments where spreads vary materially. The backtest should at least stress the assumptions: wider spreads, delayed fills, and different financing outcomes. Otherwise, the system is optimized for a quote environment that may not exist when capital is exposed.
The binary verdict: a spread is a price, not a promise
The forex spread is the mechanical distance between bid and ask. It is paid through execution, not invoiced as a separate event. That makes it easy to underestimate and easy for broker marketing to simplify.
A narrow displayed spread is useful data. It is insufficient data.
The stable way to assess a forex account is to measure the full execution chain: live bid-ask behavior, explicit commission, dealer mark-up where applicable, rollover charges, and non-trading fees. Then compare those figures against the pair, size, and hours the strategy actually uses.
If the broker exposes those modules clearly and the live records match the pricing model, the system is testable. If the cost structure depends on minimum-spread claims, opaque mark-ups, or a charting stack that cannot be reconciled with fills, the system is not stable enough for cost-sensitive trading.