institutional

Last Look Explained: FX Global Code Principle 17, Hold Times, and the Barclays Case

What last look is, why FX liquidity providers use it, what Principle 17 of the FX Global Code requires, how the NYDFS Barclays case defined abuse, and what a hold time costs.

Last look is a practice in electronic FX trading where a liquidity provider that receives a request to trade on its quoted price gets a final, brief opportunity to accept or reject it. Principle 17 of the FX Global Code says that, if used, last look should only be a risk control to check the validity of the request and whether the price is still current, and that the provider must disclose how it works.

In short: most electronic FX is not traded on firm order books but on prices streamed by banks and non-bank market makers to many clients at once. Last look lets the provider check credit and price before committing, which protects it against stale quotes and latency arbitrage and, in theory, allows tighter spreads. The cost falls on the client: during the last look window the client bears market risk and may be rejected, often exactly when the market has moved in its favour. The New York Department of Financial Services fined Barclays $150 million in November 2015 for using last look as a profit filter, and the FX Global Code, the GFXC’s 2021 guidance and the UK FCA’s 2021 statement now say that any deliberate delay beyond what the checks require (“additional hold time”) is inconsistent with the Code.

If you have read how the FX market is structured, you know that most electronic FX happens away from the two anonymous central order books. Last look is a feature of that bilateral, streamed part of the market.

The misconception: “a price on the screen is a price you can trade”

Retail traders meet a version of this when a platform “requotes” or rejects an order in a fast market, and many conclude that rejections must be a broker trick. Institutional traders know the more precise version: a streamed FX price is often an invitation to trade, not a firm commitment. Whether it is firm depends on the venue and on the provider’s disclosed last look policy. The GFXC’s 2021 report notes that “there are venues in the FX industry that use firm quotes and do not utilize last look”, and that clients “can compare features and choose where and who to trade with”.

Why last look exists

The Global Foreign Exchange Committee’s August 2021 Execution Principles Working Group Report on Last Look explains the economics by contrasting two models.

  • Central matching. On a central limit order book, a participant posts a price and size, and once interest is matched the trade is binding. There is “no risk of transacting an amount larger than the interest shown”.
  • Non-central matching. Liquidity providers (LPs) “simultaneously stream many indicative FX quotes” to many liquidity consumers (LCs). An LP can receive requests from many clients at once against the same price, or requests that arrive “significantly later than the time of the quote”.

The second model creates two risks for the LP:

  1. Stale prices and latency arbitrage. A faster participant can see the market move on another venue and hit the LP’s old price before it updates. The NYDFS consent order against Barclays describes the concern directly: a sophisticated electronic trader “might detect market movement some milliseconds” before the bank’s systems did, or spray small orders across many market makers to hide its total size, a practice the order calls “spraying the market”.
  2. Credit. Streamed prices go to clients whose credit lines may already be used up. Last look is where the LP confirms the client still has headroom.

Academic work supports the idea that last look can change spreads, though not always in the direction the industry claims. Álvaro Cartea, Sebastian Jaimungal and Jamie Walton (“Foreign exchange markets with Last Look”, Mathematics and Financial Economics, 2019) model brokers who recover losses to latency arbitrageurs from other traders. With a single venue, last look lowers quoted spreads; with competing venues, a last look venue can end up quoting wider spreads. Roel Oomen (“Last look”, Quantitative Finance, 2017), written while he co-headed electronic FX spot trading at Deutsche Bank, shows that the design of last look determines the client’s execution risk, but that the effective transaction cost need not depend on it, and that when a client adversely selects the provider, the differences between designs fade.

The mechanics

The GFXC’s illustrative workflow has five steps: the LP streams a price, the LC sends a trade request, the LP runs a validity check, then a price check, then sends an accept or reject. The time between receiving the request and responding is the last look window.

The validity check

Principle 17 says the validity check should “confirm that the transaction details contained in the request to trade are appropriate from an operational perspective and there is sufficient available credit”. With request-for-quote trading, credit may be reserved when the quote is requested; with streaming prices, last look is the final credit check.

The price check

The price check should “confirm whether the price at which the trade request was made remains consistent with the current price that would be available to the Client”. The LP compares the requested price with its own estimate of the current price, using a price tolerance expressed in pips, basis points or a fraction of the spread.

Symmetric and asymmetric checks

This is where the economics turn.

DesignRuleEffect on the client
SymmetricReject if the price has moved beyond the tolerance in either directionThe client loses some fills that moved in its favour, and is spared some that moved against it
AsymmetricReject only if the move beyond tolerance is against the LPThe client keeps every fill that moved against it and loses fills that moved in its favour
Asymmetric with price improvementAccept at an improved price when the market moved in the LP’s favourSome of the LP’s gain is passed back

The GFXC report says asymmetric checks “introduce greater complexity for LCs in monitoring the effectiveness of their execution” and that LPs using them should disclose why.

Trading during the window, and “cover and deal”

Principle 17 says LPs “should not conduct trading activity that utilises the information from the Client’s trade request during the last look window”, including pricing or hedging that uses that information, because it signals the client’s intent and could move prices against the client if the request is then rejected. The one exception is a cover and deal arrangement, which must have all three characteristics: an explicit understanding that the LP will fill the client only after offsetting the risk in the market, the full volume traded in the window passed to the client, and documentation and disclosure to the client.

What the rules say

Principle 17 of the FX Global Code

The core text reads: “Market Participants employing last look should be transparent regarding its use and provide appropriate disclosures to Clients.” The Code requires disclosure, at a minimum, of whether and how price changes in either direction affect the accept or reject decision, the expected or typical length of the window, and the purpose of last look. It adds that last look “should not be used for purposes of information gathering with no intention to accept the Client’s request to trade”, and that confidential information arises “at the point the Market Participant receives a trade request at the start of the last look window”.

The principle was tightened in December 2017, months after the Code’s May 2017 launch, to add the guidance on trading during the window. The GFXC’s 2021 Three-Year Review judged the text appropriate. The December 2024 review, the current version, amended five principles (9, 10, 35, 50 and 51) and left Principle 17 unchanged.

The GFXC’s 2021 guidance

The August 2021 report made three recommendations: LPs should ensure a fair and effective process; they should enhance ex ante disclosures; and they should make information available for clients to evaluate how their requests were handled. The most consequential sentence is: “Incorporating any delay that is additional to what is required to complete the price and validity check is considered contrary to Principle 17.” The report also asked LPs to disclose maximum and minimum window lengths, whether checks are symmetric or asymmetric, whether they use cover and deal, and to give at least a high-level reason for each rejection, trade by trade on request.

The FCA’s 2021 statement

When the UK FCA recognised the revised Code on November 19, 2021, it went further than a guidance paper can: “Regardless of the terminology used, last look practices that incorporate a delay that is additional to what is required to complete price and validity checks (some market participants refer to such deliberate delays as ‘additional hold time’) are not consistent with the Codes.” It gave an example: participants “should not prolong the duration of the last look window for the purpose of seeing if future prices move in their favour”. Because FCA-recognised codes inform whether individuals meet conduct standards, this turned a market-practice debate into a regulatory risk for UK staff.

What a disclosure looks like

The GFXC’s Liquidity Provider Disclosure Cover Sheet standardises these answers. A completed sheet states whether the LP uses last look at all, the minimum and typical maximum length of its window (usually in milliseconds), whether price checks are applied symmetrically by default and whether clients can opt into a different setting, whether it uses cover and deal, and whether it applies any “additional hold time”. LPs that sign the Code are expected to publish one, and professional clients read them side by side.

The enforcement case: NYDFS v Barclays (2015)

The case that shaped the rules is the NYDFS consent order with Barclays Bank PLC and its New York branch, dated November 17, 2015 and announced the next day. Barclays paid $150 million, which the NYDFS press release said brought its total NYDFS penalties for FX misconduct, including a May 2015 order on spot FX manipulation, to $635 million. In addition, the Department ordered it to take all steps necessary to terminate the managing director who was Global Head of eFICC Automated Flow Trading. The order was a settlement under section 44 of the New York Banking Law, agreed “without further proceedings”.

The order describes Last Look on Barclays’s BARX platform as “an automated function that delays the Bank’s response to a counterparty’s incoming client orders for a set period of time, called the ‘hold time’, and rejects the order if the market price moves beyond a certain threshold during the hold time”. Its findings, covering at least 2009 to 2014:

  • Overbroad use. Barclays applied last look to all API/FIX clients (and a handful of GUI clients) on the assumption that using an API indicated latency arbitrage, without analysing whether rejected trades were in fact toxic.
  • A profit filter. Rejections were triggered when the price “moved against Barclays (and in favor of the client) beyond the threshold set by Barclays in the tens and hundreds of milliseconds following the order”. The order concludes Barclays “used it as a general filter to reject customer orders that Barclays predicted, based on price movements during the hold period, would be unprofitable to the Bank”.
  • Asymmetry persisted. Barclays made the filters symmetric in September and October 2014, after the investigation began, but missed one platform, so 7% of its trading volume stayed asymmetric until August 2015.
  • Stop orders held too. Similar holds were applied to standing stop-loss orders, sometimes repeatedly.
  • Concealment. Clients received a bare “NACK” (not acknowledged). A 2008 internal note told staff to say trades were “REJECTED BECAUSE OF LATENCY” and “DO NOT talk about P&L on trades”. One client wrote in 2010 that it was “rejected by you 9 times out of 10”. A 2011 email from a managing director said: “If you get enquiries just obfuscate and stonewall.” Marketing for the GUI said “No last look”, without explaining that last look applied to FIX/API orders.

Almost every element of the later guidance maps onto a finding in this order: symmetric versus asymmetric checks, rejection reasons, disclosure of hold times, and no delay beyond the checks.

Worked example: last look as an option the client gives away

An asymmetric last look with a hold time is economically a free option the client writes to the LP. During the hold, the price moves by some amount D. If D moves in the client’s favour by more than the tolerance, the LP rejects, and the client must re-trade at the new, worse price. If D moves against the client, the trade stands.

Relative to a firm fill, the client’s expected cost per unit traded is the expected value of the favourable moves it loses: E[D, where D exceeds the tolerance]. If D is normally distributed with standard deviation σ and the tolerance is τ, that equals σ × φ(τ/σ), where φ is the standard normal density. With zero tolerance it is about 0.40σ. Under a symmetric check, the client also loses favourable fills but is spared an equal share of unfavourable ones, so the expected cost is close to zero (a 400,000-trade simulation confirmed this), though the client still faces execution uncertainty.

We computed this in Python, scaling volatility by the square root of time (252 days of round-the-clock trading) and using zero tolerance. The volatility levels are illustrative assumptions, not measured values for any pair.

Hold timeσ over hold at 7% annual volExpected cost (asymmetric)Per $10m tradedσ at 20% annual volCostPer $10m
10 ms0.015 bp0.006 bp$60.043 bp0.017 bp$17
100 ms0.047 bp0.019 bp$190.136 bp0.054 bp$54
300 ms0.082 bp0.033 bp$330.235 bp0.094 bp$94

Three points follow.

  1. Cost grows with the square root of the hold. Stretching a 10 ms window to 300 ms multiplies the expected cost by √30, about 5.5. That is the arithmetic behind the GFXC and FCA position on additional hold time: every extra millisecond increases the value of the option the LP holds against the client.
  2. Per trade the numbers look tiny; across a year they are not. A fund trading $50 billion a year on asymmetric last look with a 300 ms hold would give up roughly $164,000 a year at 7% volatility and $468,000 at 20%, before counting the extra cost of re-trading after rejections. Barclays’s “tens and hundreds of milliseconds” sits squarely in this range.
  3. Rejections cluster when they hurt most. Under the asymmetric rule, about half of all requests are exposed to rejection whenever the tolerance is tight, and the rejected ones are precisely those where the client was right. If a rejected €10 million buy order has to be re-executed 0.3 pips higher, the client pays an extra $300 on that one trade, and that move is the information the LP has just been shown.

Real price changes over milliseconds are not normally distributed. They are mostly zero with occasional jumps around data releases and large orders, so the true cost is concentrated in fast markets. The model understates tail costs but captures the shape: the option is worth more the longer the hold, the more volatile the market and the more asymmetric the check.

How professionals evaluate last look

The GFXC report lists warning signs, and institutional transaction-cost analysts measure them directly:

  • Reject rates by LP, and whether rejections cluster in volatile periods.
  • Response time distributions, separately for accepts and rejects. The GFXC flags “unpredictable or different response times between trade accepts and rejects” as a possible sign of inappropriate use.
  • Post-reject markouts. If the market consistently moves against the client after a rejection, the LP’s handling may be leaking information.
  • Fill quality versus firm venues. Comparing all-in costs on last look streams with firm liquidity on anonymous order books, including the cost of re-trading rejections.
  • Disclosure cover sheets. Window length, symmetry, cover and deal, and use of rejected-trade information, compared across LPs.

The GFXC also turns the analysis back on the client: if a client’s requests “are regularly rejected due to price checks, they may need to consider looking at the market impact of their own trades”. A client whose flow is consistently ahead of the market is, from the LP’s side, the latency arbitrageur the mechanism was built to catch.

Execution algorithms are increasingly the way institutions manage this trade-off, routing between firm and last look liquidity based on measured outcomes. That is covered in FX execution algorithms.

What it means for retail traders and signal followers

Retail platforms rarely use the term “last look”, but similar mechanisms appear as requotes, rejected market orders and “price changed” messages. The same economics apply: a broker that rejects or reprices only when the market has moved in your favour is giving itself an option you pay for. The FCA’s 2014 thematic review of best execution (TR14/13) described a related practice, asymmetric price slippage, where a firm passes adverse price movements to the client while keeping favourable ones. Our pieces on slippage on copied trades and broker conflicts of interest cover how this shows up in retail accounts. A signal service’s advertised entry price tells you nothing about how often your order would have been accepted at that price.

What can go wrong

  • Profit filtering. Using the window to reject trades that have become unprofitable for the LP, as in the Barclays case.
  • Information leakage. Using knowledge of a rejected request to trade or skew prices in the same direction, which Principle 17 forbids.
  • Undisclosed or variable hold times. Windows that lengthen in volatile markets without disclosure.
  • Mislabelled firmness. Marketing a stream as firm or “no last look” when it is not.
  • Client-side blindness. Clients who never measure rejections cannot tell a fair LP from an unfair one.

The short version

Last look gives an FX liquidity provider a brief window to check credit and price before accepting a trade on its streamed quote. It exists because streamed prices go to many clients at once and can be picked off by faster traders. FX Global Code Principle 17, unchanged in the December 2024 review, limits last look to validity and price checks, requires disclosure of window length and symmetry, and bans trading on the request during the window except under disclosed cover and deal. The GFXC’s 2021 guidance and the FCA’s November 2021 statement say any deliberate delay beyond the checks is inconsistent with the Code. The NYDFS fined Barclays $150 million in 2015 for applying last look broadly and asymmetrically as a profit filter. An asymmetric hold is an option the client gives the provider, worth roughly 0.4 standard deviations of the price move during the hold. This explains a market practice; it is not advice on whom to trade with.

Related: How the FX Market Is Structured · The FX Fixing Scandal · FX Execution Algorithms

#last look#fx global code#principle 17#hold time#liquidity providers#execution quality#nydfs#barclays