A correct reading of a release can still produce a worse result than a chart suggests. Quote at decision, order trigger and actual fill are different observations. Check the BLS release calendar for the event and time zone; our EUR/USD quotes below are fictitious inputs, not a measured release record.

Where spread widening around the data comes from

The displayed spread is the difference between the provider’s Ask and Bid. Around a release, liquidity providers may widen or withdraw quotes, but a retail quote also depends on the provider’s price construction, markups and dealing arrangements. The spread alone does not reveal which mechanism caused a change. Record contemporaneous quote and fill data under the account’s execution policy.

OANDA Europe Limited describes dynamic spreads that can widen with volatility, liquidity changes, news and market opening or closing. IG International Limited describes derived FX-CFD quotations and variable spreads; large trades may receive wider prices. These named products do not prove that every broker passes through one unchanged price or that every spike is proper execution. Compare actual records with the contract. The related guides discuss price slippage and spread changes around provider rollover.

Align both quote times before calculating spread

A fictional feed has two complete records:t0 Bid1.1000/Ask1.1002 and t1 Bid1.1005/Ask1.1007.

Artificial spread from an asynchronous pairingTwo full quotes:t0 Bid1.1000,Ask1.1002; t1 Bid1.1005,Ask1.1007. Both spreads equal2 pips. Pairing old Bid with new Ask gives7 pips, but that record never occurred.TWO TIMES GIVE A DIFFERENT MEASUREt0Bid1.1000Ask1.1002Spread2 pipst1Bid1.1005Ask1.1007Spread2 pipsAsk t1 − Bid t0 =7 pips.That is neither full record’s spread.Each actual record here shows2.

EUR/USD,pip0.0001. Both records are complete and simultaneous within their own observation. We do not assume old Bid remains executable after t1 appears. OANDA REST v20 Pricing Definitions includes a record timestamp and separate bids and asks fields.

The red dashed line links fields from different records, showing a pairing error.

At both times Ask−Bid equals2 pips. New Ask paired with old Bid gives(1.1007−1.1000)/0.0001=7 pips, incorporating a quote-level change as well as the gap. Preserve timestamp pairing when exporting separate sides. Do not label an artificial pair as observed spread widening. If a complete record cannot be reconstructed, mark missing data rather than inventing simultaneity.

Spread width and quote movement are different

For our hypothetical model, one EUR/USD pip is 0.0001 USD per EUR. Before the change, Bid 1.1000/Ask 1.1002 gives midpoint 1.1001 and spread 2 pips. Afterwards, Bid 1.0995/Ask 1.1007 gives the same midpoint and spread 12 pips. The economic calendar identifies events; it does not supply a universal spread multiplier.

Fictitious quotes: identical midpoint, different spread
Before: Bid 1.1000 / Ask 1.1002Midpoint 1.1001; spread 2 pips
After: Bid 1.0995 / Ask 1.1007Midpoint 1.1001; spread 12 pips
Quote changesBid −5 pips; Ask +5 pips; spread +10 pips
10,000 EUR bought then immediately soldAt unchanged available quotes: −USD 2 or −USD 12 before other fees

A midpoint chart would show no movement in this model, while executable sides have changed. The immediate round-trip calculation assumes those exact sides remain available, which is not guaranteed. An NFP release label does not establish the most dangerous event or a fixed two-stage price path.

A stop can trigger while the midpoint stays unchanged

MT5’s Forex rules check a long position’s SL against Bid and a short position’s against Ask; exchange products can use different trigger rules. Treat the following as two separate earlier positions, not one hedged portfolio. Long Ask entry 1.1002 with SL 1.0996 and short Bid entry 1.1000 with SL 1.1006 each has a planned 6-pip distance. The widened quote Bid 1.0995/Ask 1.1007 meets both respective trigger conditions despite the unchanged midpoint.

Trigger is not fill. For the separate long of 10,000 EUR, assume Bid exit 1.0993: gross (1.0993−1.1002)×10,000=−USD 9; hypothetical round-trip commissionUSD 0.40 gives−USD 9.40. Exact SL execution at 1.0996 would give−USD 6.40. The fill is 3 pips below SL or 2 below the triggering Bid: name the reference and do not add both as separate costs. A Bid-only chart cannot reconstruct the short’s Ask trigger. Compare this execution question with a breakout rule and the news-versus-technical comparison.

A triggered ordinary stop does not guarantee execution at its trigger price; its treatment follows the account’s order policy. Some providers offer a separate guaranteed-stop product under specified conditions and charges. Where applicable, EU retail-CFD negative balance protection limits aggregate liability for CFDs connected to the account to the funds dedicated to that CFD account, including cash and unrealised net CFD profits. It does not apply to every asset, account or client category and does not guarantee each trade’s planned stop loss.

New entry: calculate from fills once

In a new, independent trade, visible Bid 1.0995/Ask 1.1007 precedes an actual assumed Ask purchase 1.1009 of 10,000 EUR. The entry is 2 pips worse than the visible Ask. A later Bid sale 1.1013 gives gross USD 4, or net USD 3.60 after commissionUSD 0.40, with financing and other fees omitted. Do not subtract the 12-pip displayed spread or the 2-pip entry difference again: the fill prices already include their effect.

With the same exit but a counterfactual entry at 1.1007, net would be USD 5.60; the USD 2 difference isolates the worse entry, not proof the better fill was available. From actual entry 1.1009 and commissionUSD 0.40, zero net requires Bid 1.10094 under these assumptions. The value is a mathematical threshold: order tick size may require rounding. A narrower spread or later time does not confirm direction or safety.

Define any release-specific pause, cancellation or later-entry condition before testing. Record the provider’s confirmed order state. Moving a stop farther on the same volume increases planned loss; changing size also changes the strategy. Neither waiting 15–30 minutes nor an apparently clean direction proves favourable execution.

Which spread average are you calculating?

A separate fictitious 10-second feed has spread 2 pips for 9 seconds with 9 updates, then 12 pips for 1 second with 90 updates. Time weighting gives (9×2+1×12)/10=3 pips. Equal update weighting gives (9×2+90×12)/99≈11.09 pips. The latter assigns 90/99 of its weight to the final second, not 1/10. Neither measure is a fill cost; label weighting and window boundaries. BIS Working Paper 1229 studies spread distributions and structural breaks across markets, not which retail news style loses most. Explore other methods in trading strategies.

What to do tomorrow

  1. Save the official release time, receipt time and complete synchronous Bid/Ask quotes. Record side, volume, order state and each fill, including rejected or partial orders.
  2. Specify sampling frequency. One-second observations can miss shorter spikes; absence of a spike in that sample is not proof no spike occurred. Demo observations do not establish live execution.
  3. Calculate P&L from each actual quantity and fill price, adding actual commission, financing and conversion costs. A screenshot spread is not the realised cost of every order.
  4. Define entry, no-entry, stop and exit conditions before evaluation. Waiting, cutting volume or moving a stop are separate rule changes; a 1% input does not cap all possible loss.
  5. Compare observed execution with the selected entity’s terms. Guaranteed-profit marketing is not evidence; neither a loss-account warning nor a style label provides your strategy’s outcome probability.

A spread change alone establishes neither provider fault nor compliant execution. Complete timestamps, order parameters and fills allow a contract-based comparison. Distinguish signal quality, quote measurement and realised cost; no fixed pause or return to a narrow spread establishes a profitable plan.