{"id":13645,"date":"2026-08-17T18:14:23","date_gmt":"2026-08-17T18:14:23","guid":{"rendered":"https:\/\/bjftradinggroup.com\/?page_id=13645"},"modified":"2026-08-17T18:14:23","modified_gmt":"2026-08-17T18:14:23","slug":"broker-execution-transparency","status":"publish","type":"page","link":"https:\/\/bjftradinggroup.com\/id\/broker-execution-transparency\/","title":{"rendered":"Broker Execution Transparency"},"content":{"rendered":"<p><\/p>\n<div class=\"bet-page\">\n<p>  <!-- ===================== HERO ===================== --><\/p>\n<div class=\"bet-hero\">\n<h1 class=\"bet-hero-h1\">How Forex Brokers Really Fill Your Orders: <span class=\"bet-gold\">Execution Transparency<\/span> Explained (2026)<\/h1>\n<p>A-book, B-book, hybrid routing, last look, asymmetric slippage, and how to measure whether your broker is actually filling you fairly.<\/p>\n<p class=\"bet-meta\">By Boris Fesenko, Founder and Lead Developer, BJF Trading Group Inc. (Ontario, Canada). Building execution and arbitrage software since 2000. Last updated: August 2026.<\/p>\n<\/p><\/div>\n<p>  <!-- ===================== INTRO (definition-style, first ~100 words) ===================== --><\/p>\n<p class=\"bet-lead\"><strong>Broker execution transparency<\/strong> is the degree to which a forex or CFD broker shows you how your orders are actually routed, priced, and filled. When you click buy, your order does not travel a single obvious path. It can be passed to an external liquidity provider (A-book), held internally with the broker taking the other side (B-book), or split between both (hybrid). Along the way it can be delayed by a last-look window, filled at a worse price than you saw (negative slippage), rejected, or requoted. This guide, maintained by BJF Trading Group, explains every step so you can tell a fair fill from a manipulated one.<\/p>\n<div class=\"bet-tldr\">\n<h3>Key takeaways<\/h3>\n<ul>\n<li><strong>Your fill quality is a policy decision, not a law of physics.<\/strong> Two brokers on the same liquidity can give you very different fills because they route and risk-manage your flow differently.<\/li>\n<li><strong>A-book, B-book, and hybrid are not &#8220;good&#8221; or &#8220;evil&#8221; by themselves.<\/strong> The problem is undisclosed switching, where profitable accounts are quietly moved to a worse execution path.<\/li>\n<li><strong>Last look and asymmetric slippage are the two mechanisms that quietly cost active traders the most.<\/strong> Both are measurable if you keep tick-by-tick records.<\/li>\n<li><strong>You do not need to trust marketing.<\/strong> Fill rate, rejection rate, slippage symmetry, and execution latency are objective numbers you can log and score yourself.<\/li>\n<li><strong>For arbitrage, latency, and news traders this is existential:<\/strong> your edge per trade is tiny, so a hostile execution path erases it before strategy quality even matters.<\/li>\n<\/ul><\/div>\n<p>  <!-- ===================== SECTION 1 ===================== --><\/p>\n<h2>What &#8220;execution&#8221; actually means<\/h2>\n<p>Most retail education stops at &#8220;you click, you get filled.&#8221; In reality an order passes through a chain, and each link is a place where price, speed, and fairness can change. Understanding the chain is the whole point, because every execution complaint (slippage, rejects, requotes, spread spikes) is really a complaint about one specific link.<\/p>\n<p>The simplified lifecycle of a market order looks like this:<\/p>\n<pre class=\"bet-code\"><span class=\"bet-cmt\"># Order lifecycle (market order)<\/span>\r\n1. You see a quote on the terminal            (already delayed by feed latency)\r\n2. You send the order                          (client -> broker server)\r\n3. Broker applies routing logic                (A-book \/ B-book \/ hybrid decision)\r\n4. Optional last-look hold window               (accept, reject, or re-price)\r\n5. Fill is confirmed                            (at requested price, better, or worse)\r\n6. Position and slippage are recorded           (this is your evidence trail)<\/pre>\n<p>Transparency means a broker is willing to tell you what happens at steps 3 and 4, and gives you data at steps 5 and 6 to verify it. Opacity means you only ever see step 6, and only the number the broker chooses to show.<\/p>\n<p>  <!-- ===================== SECTION 2 ===================== --><\/p>\n<h2>A-book vs B-book vs hybrid routing<\/h2>\n<p>The single most important decision a broker makes about your account is which &#8220;book&#8221; your flow goes into. This determines whether the broker profits when you profit, or profits when you lose.<\/p>\n<table class=\"bet-table\">\n<thead>\n<tr>\n<th>Model<\/th>\n<th>Where your order goes<\/th>\n<th>How the broker earns<\/th>\n<th>Conflict of interest<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>A-book (STP \/ agency)<\/td>\n<td>Passed straight to an external liquidity provider<\/td>\n<td>Spread markup and commission<\/td>\n<td>Low. Broker wants volume, not your loss<\/td>\n<\/tr>\n<tr>\n<td>B-book (dealing \/ market maker)<\/td>\n<td>Kept internally, broker takes the opposite side<\/td>\n<td>Your losses become broker revenue<\/td>\n<td>High. Broker profits when you lose<\/td>\n<\/tr>\n<tr>\n<td>Hybrid \/ C-book<\/td>\n<td>Some flow warehoused, some hedged out to LPs<\/td>\n<td>Mix of both, tuned per client<\/td>\n<td>Depends entirely on disclosure<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Here is the nuance almost no marketing page admits: <strong>B-book is not automatically bad, and A-book is not automatically clean.<\/strong> A well-run B-book desk can give tight spreads and instant fills to ordinary traders, because statistically most retail accounts lose and the broker has no reason to interfere. An A-book broker can still route you to a slow or hostile liquidity provider and hide behind &#8220;we just pass it on.&#8221;<\/p>\n<p>The real transparency question is not &#8220;which book am I in?&#8221; but &#8220;does the broker switch my book based on whether I am profitable, and do they tell me?&#8221; That silent switch is where honest execution ends.<\/p>\n<table class=\"bet-twocol\">\n<tbody>\n<tr>\n<td class=\"bet-col\">\n<h4>When routing is fair<\/h4>\n<p>Your book assignment is disclosed or at least consistent. Fills track the visible market. Winning and losing accounts get the same spreads, the same speed, and the same slippage behavior.<\/p>\n<\/td>\n<td class=\"bet-col\">\n<h4>When routing turns hostile<\/h4>\n<p>You are quietly moved to a worse path the moment you become profitable. Spreads widen only on your account, slippage becomes one-directional, and rejects appear only on trades that would have won.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>  <!-- ===================== SECTION 3 ===================== --><\/p>\n<h2>Toxic flow: why brokers treat some traders differently<\/h2>\n<p>From the broker&#8217;s side, not all order flow is equal. &#8220;Toxic flow&#8221; is the industry term for order flow that is consistently profitable against whoever is on the other side, usually because the trader has an informational or speed advantage the broker cannot hedge cheaply.<\/p>\n<p>Flow a risk desk tends to flag as toxic includes:<\/p>\n<table class=\"bet-table\">\n<thead>\n<tr>\n<th>Flow type<\/th>\n<th>Why it is hard for the broker<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Latency arbitrage<\/td>\n<td>Trader acts on a faster feed and enters before the broker&#8217;s quote catches up<\/td>\n<\/tr>\n<tr>\n<td>News trading<\/td>\n<td>Large directional moves in milliseconds around scheduled releases<\/td>\n<\/tr>\n<tr>\n<td>Fast scalping<\/td>\n<td>High trade count, tiny targets, systematically picks off stale quotes<\/td>\n<\/tr>\n<tr>\n<td>Multi-account correlation<\/td>\n<td>Many accounts trading the same signal at the same instant<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>This matters for transparency because toxic-flow handling is exactly where undisclosed execution changes get applied. A broker that cannot profitably warehouse your flow, and will not or cannot hedge it to a liquidity provider, has three options: reject it, delay it, or degrade its price. All three are invisible unless you are measuring.<\/p>\n<div class=\"bet-note\"><strong>The honest position:<\/strong> a broker is entitled to protect itself from flow it cannot hedge. The transparency failure is doing it silently while advertising &#8220;no dealing desk&#8221; and &#8220;zero requotes.&#8221; Protection is legitimate. Concealment is the problem.<\/div>\n<p>  <!-- ===================== SECTION 4 ===================== --><\/p>\n<h2>Last look: the hidden hold window<\/h2>\n<p>Last look is a mechanism where, after you send an order, the party filling it gets a short window to accept or reject the trade after already seeing your request. It originated in institutional FX and is now common in the retail bridge layer too.<\/p>\n<p>The window is usually small, from roughly one millisecond to a few tens of milliseconds. In that window the price can move. What happens next is the whole story:<\/p>\n<table class=\"bet-table\">\n<thead>\n<tr>\n<th>Price moves during last-look window<\/th>\n<th>Symmetric (fair) last look<\/th>\n<th>Asymmetric (hostile) last look<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>In your favor<\/td>\n<td>Filled, sometimes with price improvement<\/td>\n<td>Rejected or re-priced away from you<\/td>\n<\/tr>\n<tr>\n<td>Against you<\/td>\n<td>Rejected under the same threshold<\/td>\n<td>Filled at the worse price<\/td>\n<\/tr>\n<tr>\n<td>No move<\/td>\n<td>Filled at the quoted price<\/td>\n<td>Filled at the quoted price<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Symmetric last look applies the same tolerance in both directions and is defensible as a genuine risk check. <strong>Asymmetric last look is heads-the-broker-wins, tails-you-lose.<\/strong> You only ever get filled when the move helped the other side, and rejected when it helped you. Over thousands of trades this is a large, silent tax that looks like &#8220;bad luck&#8221; on any single fill.<\/p>\n<p>You can detect asymmetry without any inside access. If you log the requested price, the fill price or rejection, and the mid-market price at the moment of each request, the distribution tells the truth: fair last look rejects roughly symmetrically, hostile last look rejects almost entirely on trades that were about to move in your favor.<\/p>\n<p>  <!-- ===================== SECTION 5 ===================== --><\/p>\n<h2>Slippage forensics: symmetric vs asymmetric<\/h2>\n<p>Slippage is the difference between the price you requested and the price you got. Slippage by itself is normal. Markets move. The question that separates a fair broker from a hostile one is <strong>the shape of your slippage distribution<\/strong>, not its size.<\/p>\n<p>Define per-trade slippage in pips as:<\/p>\n<pre class=\"bet-code\"><span class=\"bet-cmt\"># Positive = filled better than requested, Negative = filled worse<\/span>\r\nslippage_pips = (fill_price - requested_price) \/ pip_size * direction\r\n\r\n<span class=\"bet-cmt\"># direction = +1 for buy, -1 for sell, so the sign is consistent<\/span>\r\n<span class=\"bet-cmt\"># Then look at the DISTRIBUTION across many trades, not one trade<\/span>\r\nsymmetry_ratio = count(slippage &gt; 0) \/ count(slippage &lt; 0)<\/pre>\n<table class=\"bet-twocol\">\n<tbody>\n<tr>\n<td class=\"bet-col\">\n<h4>Fair execution signature<\/h4>\n<p>Positive and negative slippage both occur. The symmetry ratio sits near 1.0. Price improvement is real and shows up in your logs, not just in the brochure. Slippage size scales with volatility, the same for winning and losing trades.<\/p>\n<\/td>\n<td class=\"bet-col\">\n<h4>Manipulated execution signature<\/h4>\n<p>Slippage is almost always negative. Symmetry ratio far below 1.0. Price improvement essentially never appears. Slippage spikes specifically on your profitable trades and around news, but not on losers.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>This is why keeping your own tick-by-tick records matters more than any review site. A broker&#8217;s aggregate &#8220;average slippage&#8221; number can look fine while your distribution is entirely one-sided. The average hides the asymmetry. The distribution exposes it.<\/p>\n<p>  <!-- ===================== SECTION 6 ===================== --><\/p>\n<h2>Requotes, spread widening, and server-side execution plugins<\/h2>\n<p>Beyond last look and slippage, three more tools change your fills at the server level, before your order ever reaches a market.<\/p>\n<h3>Requotes<\/h3>\n<p>Instead of filling or rejecting, the server offers you a new, worse price and asks you to confirm. On fast strategies the requote delay alone is enough to destroy the trade. A broker advertising &#8220;no requotes&#8221; that issues them only on your winning trades is running selective execution.<\/p>\n<h3>Selective spread widening<\/h3>\n<p>Spreads legitimately widen in thin liquidity and around news. The hostile version widens the spread on specific accounts or specific instruments only when a profitable pattern is detected, then narrows again. Because it is account-specific, you cannot see it by comparing to a public chart. You can only see it by logging your own quoted spread over time.<\/p>\n<h3>Server-side execution plugins (virtual dealer plugins)<\/h3>\n<p>These are server modules that sit between your order and the fill and apply configurable delays, artificial slippage, requote probability, or outright rejection to targeted accounts. They exist specifically to neutralize flow the desk considers toxic. The trader sees nothing except worse results. The only defense is measurement: a plugin that adds, say, 30 to 300 milliseconds of artificial delay to your account leaves a clear fingerprint in your execution-latency log that a clean account does not have.<\/p>\n<div class=\"bet-warn\"><strong>Pattern to watch for:<\/strong> execution that is perfect during your demo and your first weeks live, then degrades right as your account turns consistently profitable. That timing is the signature of an account being reclassified and moved behind an execution filter.<\/div>\n<p>  <!-- ===================== SECTION 7 (HowTo) ===================== --><\/p>\n<h2>Seven tests: is your broker B-booking you against your interest?<\/h2>\n<p>You cannot read a broker&#8217;s routing table, but you can run controlled tests and let the data answer. None of these require special software beyond a trade log with timestamps and prices.<\/p>\n<div class=\"bet-step\"><span class=\"bet-num\">1<\/span><\/p>\n<h4>Log slippage symmetry.<\/h4>\n<p> Record requested vs fill price on at least 200 trades. A healthy symmetry ratio is near 1.0. A ratio far below that, with almost no positive slippage, is the strongest single signal.<\/p>\n<\/div>\n<div class=\"bet-step\"><span class=\"bet-num\">2<\/span><\/p>\n<h4>Compare demo vs live fills.<\/h4>\n<p> Run the identical strategy on demo and live in parallel. Demo is almost always pure B-book with cosmetic fills. A large, persistent gap between demo and live execution quality tells you how your live flow is really handled.<\/p>\n<\/div>\n<div class=\"bet-step\"><span class=\"bet-num\">3<\/span><\/p>\n<h4>Track rejection timing.<\/h4>\n<p> Note the mid price at every reject. If rejections cluster on trades that would have moved in your favor, you are seeing asymmetric last look, not random risk checks.<\/p>\n<\/div>\n<div class=\"bet-step\"><span class=\"bet-num\">4<\/span><\/p>\n<h4>Measure execution latency over time.<\/h4>\n<p> Log the milliseconds from send to fill. A sudden step-up in average latency, especially right after your account became profitable, points to an added server-side delay.<\/p>\n<\/div>\n<div class=\"bet-step\"><span class=\"bet-num\">5<\/span><\/p>\n<h4>Watch your spread, not the public spread.<\/h4>\n<p> Record your own quoted spread per instrument. Account-specific widening that does not match the broker&#8217;s public quotes is a targeting signal.<\/p>\n<\/div>\n<div class=\"bet-step\"><span class=\"bet-num\">6<\/span><\/p>\n<h4>Test around scheduled news.<\/h4>\n<p> Toxic-flow handling is most aggressive around releases. If fills, spreads, and rejects sharply degrade only in your account during news windows, the desk is treating your flow as informed.<\/p>\n<\/div>\n<div class=\"bet-step\"><span class=\"bet-num\">7<\/span><\/p>\n<h4>Scale size and watch what changes.<\/h4>\n<p> Execution that is clean at 0.1 lots but suddenly slips, requotes, or rejects at larger size shows a threshold in the risk logic. Fair execution degrades smoothly with liquidity, not in a step at the point you become material.<\/p>\n<\/div>\n<p>  <!-- ===================== SECTION 8 ===================== --><\/p>\n<h2>Measuring execution quality objectively<\/h2>\n<p>Everything above becomes actionable once you stop arguing about intentions and start scoring numbers. These are the core execution-quality metrics any serious trader should track per broker.<\/p>\n<table class=\"bet-table\">\n<thead>\n<tr>\n<th>Metric<\/th>\n<th>What it measures<\/th>\n<th>What good looks like<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Fill rate<\/td>\n<td>Share of orders filled vs sent<\/td>\n<td>High and stable across market conditions<\/td>\n<\/tr>\n<tr>\n<td>Rejection rate<\/td>\n<td>Share of orders rejected<\/td>\n<td>Low, and not correlated with your winners<\/td>\n<\/tr>\n<tr>\n<td>Slippage symmetry<\/td>\n<td>Balance of positive vs negative slippage<\/td>\n<td>Ratio near 1.0, price improvement present<\/td>\n<\/tr>\n<tr>\n<td>Execution latency<\/td>\n<td>Milliseconds from send to fill<\/td>\n<td>Low and stable, no step-changes over time<\/td>\n<\/tr>\n<tr>\n<td>Requote frequency<\/td>\n<td>How often you are re-priced<\/td>\n<td>Near zero, and not selective on winners<\/td>\n<\/tr>\n<tr>\n<td>Effective spread<\/td>\n<td>Spread you actually pay, per instrument<\/td>\n<td>Matches public quotes, no account-specific markup<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The reason to collect all six rather than one is that a hostile broker can keep any single number looking respectable. It is the combination, scored consistently over time and across market states, that reveals the execution path. This is precisely the logic behind the BJF Broker Execution Quality Index (BEQI), an open methodology for turning your own trade and tick logs into a single comparable execution score, so two brokers can be ranked on evidence instead of reputation.<\/p>\n<div class=\"bet-note\"><strong>Principle:<\/strong> reputation is a lagging, gameable signal. Your own execution log is a leading, un-gameable one. Any broker can buy reviews. None can edit the tick-by-tick record sitting on your machine.<\/div>\n<p>  <!-- ===================== SECTION 9 ===================== --><\/p>\n<h2>Why this is existential for arbitrage, latency, and news traders<\/h2>\n<p>For a discretionary swing trader holding for days, a few tenths of a pip of asymmetric slippage is an annoyance. For an arbitrage, latency, or news strategy it is the entire profit and loss.<\/p>\n<p>These strategies win by capturing a very small, very short-lived edge many times. The average profit per trade is tiny by design. That means the strategy is only as good as its worst fills, and a hostile execution path attacks exactly the trades that were supposed to win. As covered in our work on the execution-time gap, an edge that looks strong in a backtest can go negative in production purely because of added execution latency and asymmetric fills, with nothing wrong in the strategy logic at all.<\/p>\n<p>The practical consequences:<\/p>\n<table class=\"bet-table\">\n<thead>\n<tr>\n<th>Strategy<\/th>\n<th>What a hostile execution path does to it<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Latency arbitrage<\/td>\n<td>Added server delay erases the millisecond edge the whole strategy depends on<\/td>\n<\/tr>\n<tr>\n<td>News trading<\/td>\n<td>Selective spread widening and rejects around releases remove the exact fills that pay<\/td>\n<\/tr>\n<tr>\n<td>Fast scalping<\/td>\n<td>Asymmetric slippage turns a positive expectancy into a negative one trade by trade<\/td>\n<\/tr>\n<tr>\n<td>Pair \/ stat arbitrage<\/td>\n<td>One-legged fills and requotes break the hedge and leave you with naked risk<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>This is why serious execution-sensitive traders do two things: they measure their broker relentlessly, and they model realistic execution in testing rather than assuming perfect fills. Backtesting on real tick data with modeled execution latency and variable spread, the way the SharpTrader Optimizer does, is the only way to know whether an edge survives contact with a real, imperfect execution path before you risk capital on it.<\/p>\n<p>  <!-- ===================== FAQ ===================== --><\/p>\n<h2>Frequently asked questions<\/h2>\n<div class=\"bet-faq\">\n<h3>Is B-book execution always bad for me?<\/h3>\n<p>No. A B-book broker can offer tight spreads and instant fills, and for most retail traders there is no interference at all. The risk is undisclosed switching, where your execution quietly degrades once you become profitable. The model is not the problem, concealment is.<\/p>\n<h3>What is the difference between last look and slippage?<\/h3>\n<p>Slippage is being filled at a different price than requested. Last look is a short window before the fill in which the other side can accept, reject, or re-price your order after seeing it. Asymmetric last look is a common source of one-sided slippage and selective rejections.<\/p>\n<h3>Can I prove my broker is manipulating my fills?<\/h3>\n<p>You can build strong evidence. Log requested price, fill price or rejection, mid-market price, and execution latency for every trade. If slippage is systematically negative, rejects cluster on your winners, and latency stepped up when you became profitable, the data speaks clearly even without access to the broker&#8217;s servers.<\/p>\n<h3>Does &#8220;no dealing desk&#8221; or &#8220;ECN&#8221; mean my execution is fair?<\/h3>\n<p>Not on its own. Those labels describe a routing model, not the quality of the liquidity behind it or whether your specific account is being filtered. Measure fill rate, slippage symmetry, and latency yourself rather than trusting the label.<\/p>\n<h3>Why does my strategy work on demo but fail live?<\/h3>\n<p>Demo servers usually simulate near-perfect fills. Live flow, especially flow a desk views as toxic, can be routed behind delays, asymmetric last look, or execution filters. A large, persistent demo-versus-live gap is itself a measurement of how your live flow is handled.<\/p>\n<h3>What is a virtual dealer plugin?<\/h3>\n<p>It is a generic term for a server-side module that applies configurable delay, artificial slippage, requote probability, or rejection to targeted accounts. It is used to neutralize flow a broker cannot hedge profitably. Its fingerprint shows up as added, account-specific execution latency in your logs.<\/p>\n<\/p><\/div>\n<p>  <!-- ===================== NEWSLETTER SIGNUP (between FAQ and CTA) ===================== --><\/p>\n<div class=\"bet-signup\">\n<h3>Subscribe to BJF trading research<\/h3>\n<p>New articles, research papers, and product releases, delivered when we publish them. Broker execution, latency arbitrage, and news trading, with the data behind them.<\/p>\n<div class='_form_31'><\/div><script type='text\/javascript' src='https:\/\/bjftradinggroup.activehosted.com\/f\/embed.php?static=0&id=31&6A83962F672DC&nostyles=0&preview=0'><\/script><\/div>\n<p>  <!-- ===================== CTA ===================== --><\/p>\n<div class=\"bet-cta\">\n<h3>Stop guessing. Measure your broker.<\/h3>\n<p>Score your own execution with the open BEQI methodology, and test whether your edge survives a realistic execution path before you risk capital.<\/p>\n<p>    <a class=\"bet-btn\" href=\"https:\/\/bjftradinggroup.com\/forex-broker-audit-toolkit\/\">Get the Broker Audit Toolkit<\/a><br \/>\n    <a class=\"bet-btn bet-btn-alt\" href=\"https:\/\/bjftradinggroup.com\/product\/sharptrader-optimizer\/\">Backtest on Real Ticks<\/a>\n  <\/div>\n<\/div>\n<p><!-- ============================================================ --><br \/>\n<!-- JSON-LD: Article + FAQPage + HowTo + SpeakableSpecification  --><br \/>\n<!-- ============================================================ --><br \/>\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@graph\": [\n    {\n      \"@type\": \"Article\",\n      \"@id\": \"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/#article\",\n      \"headline\": \"How Forex Brokers Really Fill Your Orders: Execution Transparency Explained (2026)\",\n      \"description\": \"An advanced guide to forex and CFD broker execution transparency: A-book vs B-book vs hybrid routing, toxic flow, last look, asymmetric slippage, virtual dealer plugins, seven tests to detect B-booking, and how to score execution quality objectively.\",\n      \"inLanguage\": \"en\",\n      \"datePublished\": \"2026-08-15\",\n      \"dateModified\": \"2026-08-15\",\n      \"author\": {\n        \"@type\": \"Person\",\n        \"@id\": \"https:\/\/bjftradinggroup.com\/about-boris-fesenko\/#person\",\n        \"name\": \"Boris Fesenko\"\n      },\n      \"publisher\": {\n        \"@type\": \"Organization\",\n        \"@id\": \"https:\/\/bjftradinggroup.com\/#organization\",\n        \"name\": \"BJF Trading Group Inc.\"\n      },\n      \"mainEntityOfPage\": \"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/\",\n      \"about\": [\"broker execution transparency\",\"A-book vs B-book\",\"last look\",\"asymmetric slippage\",\"toxic flow\",\"execution quality\"],\n      \"keywords\": \"broker execution transparency, a-book vs b-book broker, last look forex, asymmetric slippage, toxic flow forex, virtual dealer plugin, broker execution quality, is my broker b-booking me\"\n    },\n    {\n      \"@type\": \"FAQPage\",\n      \"@id\": \"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/#faq\",\n      \"mainEntity\": [\n        {\"@type\":\"Question\",\"name\":\"Is B-book execution always bad for me?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No. A B-book broker can offer tight spreads and instant fills, and for most retail traders there is no interference. The risk is undisclosed switching, where execution quietly degrades once you become profitable. The model is not the problem, concealment is.\"}},\n        {\"@type\":\"Question\",\"name\":\"What is the difference between last look and slippage?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Slippage is being filled at a different price than requested. Last look is a short window before the fill in which the other side can accept, reject, or re-price your order after seeing it. Asymmetric last look is a common source of one-sided slippage and selective rejections.\"}},\n        {\"@type\":\"Question\",\"name\":\"Can I prove my broker is manipulating my fills?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"You can build strong evidence. Log requested price, fill price or rejection, mid-market price, and execution latency for every trade. If slippage is systematically negative, rejects cluster on your winners, and latency stepped up when you became profitable, the data speaks clearly.\"}},\n        {\"@type\":\"Question\",\"name\":\"Does no dealing desk or ECN mean my execution is fair?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Not on its own. Those labels describe a routing model, not the quality of the liquidity behind it or whether your account is being filtered. Measure fill rate, slippage symmetry, and latency yourself rather than trusting the label.\"}},\n        {\"@type\":\"Question\",\"name\":\"Why does my strategy work on demo but fail live?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Demo servers usually simulate near-perfect fills. Live flow a desk views as toxic can be routed behind delays, asymmetric last look, or execution filters. A large, persistent demo-versus-live gap is itself a measurement of how your live flow is handled.\"}},\n        {\"@type\":\"Question\",\"name\":\"What is a virtual dealer plugin?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"It is a generic term for a server-side module that applies configurable delay, artificial slippage, requote probability, or rejection to targeted accounts. It is used to neutralize flow a broker cannot hedge profitably. Its fingerprint shows up as added, account-specific execution latency in your logs.\"}}\n      ]\n    },\n    {\n      \"@type\": \"HowTo\",\n      \"@id\": \"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/#howto\",\n      \"name\": \"Seven tests to detect whether a broker is B-booking you against your interest\",\n      \"description\": \"Controlled, data-driven tests to measure broker execution quality using only a trade log with timestamps and prices.\",\n      \"step\": [\n        {\"@type\":\"HowToStep\",\"position\":1,\"name\":\"Log slippage symmetry\",\"text\":\"Record requested vs fill price on at least 200 trades. A healthy symmetry ratio is near 1.0. A ratio far below that, with almost no positive slippage, is the strongest single signal.\"},\n        {\"@type\":\"HowToStep\",\"position\":2,\"name\":\"Compare demo vs live fills\",\"text\":\"Run the identical strategy on demo and live in parallel. A large, persistent gap between demo and live execution quality reveals how your live flow is really handled.\"},\n        {\"@type\":\"HowToStep\",\"position\":3,\"name\":\"Track rejection timing\",\"text\":\"Note the mid price at every reject. If rejections cluster on trades that would have moved in your favor, you are seeing asymmetric last look.\"},\n        {\"@type\":\"HowToStep\",\"position\":4,\"name\":\"Measure execution latency over time\",\"text\":\"Log milliseconds from send to fill. A sudden step-up in average latency, especially after your account became profitable, points to an added server-side delay.\"},\n        {\"@type\":\"HowToStep\",\"position\":5,\"name\":\"Watch your spread, not the public spread\",\"text\":\"Record your own quoted spread per instrument. Account-specific widening that does not match public quotes is a targeting signal.\"},\n        {\"@type\":\"HowToStep\",\"position\":6,\"name\":\"Test around scheduled news\",\"text\":\"If fills, spreads, and rejects sharply degrade only in your account during news windows, the desk is treating your flow as informed.\"},\n        {\"@type\":\"HowToStep\",\"position\":7,\"name\":\"Scale size and watch what changes\",\"text\":\"Execution that is clean at small size but slips, requotes, or rejects at larger size shows a threshold in the risk logic. Fair execution degrades smoothly with liquidity, not in a step.\"}\n      ]\n    },\n    {\n      \"@type\": \"WebPage\",\n      \"@id\": \"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/\",\n      \"url\": \"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/\",\n      \"name\": \"How Forex Brokers Really Fill Your Orders: Execution Transparency Explained (2026)\",\n      \"speakable\": {\n        \"@type\": \"SpeakableSpecification\",\n        \"cssSelector\": [\".bet-lead\", \".bet-tldr\"]\n      },\n      \"isPartOf\": {\"@id\": \"https:\/\/bjftradinggroup.com\/#website\"}\n    }\n  ]\n}\n<\/script><br \/>\n<\/p>","protected":false},"excerpt":{"rendered":"<p>How Forex Brokers Really Fill Your Orders: Execution Transparency Explained (2026) A-book, B-book, hybrid routing, last look, asymmetric slippage, and how to measure whether your broker is actually filling you fairly. By Boris Fesenko, Founder and Lead Developer, BJF Trading Group Inc. (Ontario, Canada). Building execution and arbitrage software since 2000. Last updated: August 2026. Broker execution transparency is the degree to which a forex or CFD broker shows you how your orders are actually&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-ai-custom.php","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-13645","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.2 (Yoast SEO v28.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How Brokers Really Fill Your Orders: A-Book vs B-Book<\/title>\n<meta name=\"description\" content=\"How forex brokers really fill your orders: A-book vs B-book, last look, asymmetric slippage, and 7 tests to tell if you are being B-booked.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[:en]Broker Execution Transparency[:]\" \/>\n<meta property=\"og:description\" content=\"How forex brokers really fill your orders: A-book vs B-book, last look, asymmetric slippage, and 7 tests to tell if you are being B-booked.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/\" \/>\n<meta property=\"og:site_name\" content=\"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data1\" content=\"13 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/broker-execution-transparency\\\/\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/broker-execution-transparency\\\/\",\"name\":\"How Brokers Really Fill Your Orders: A-Book vs B-Book\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#website\"},\"datePublished\":\"2026-08-17T18:14:23+00:00\",\"description\":\"How forex brokers really fill your orders: A-book vs B-book, last look, asymmetric slippage, and 7 tests to tell if you are being B-booked.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/broker-execution-transparency\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bjftradinggroup.com\\\/broker-execution-transparency\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/broker-execution-transparency\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bjftradinggroup.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Broker Execution Transparency\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#website\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/\",\"name\":\"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.\",\"description\":\"FX Software pioneer since 2000\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bjftradinggroup.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#organization\",\"name\":\"BJF Trading Group Inc.\",\"legalName\":\"BJF Trading Group Inc.\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/logo.png\",\"width\":512,\"height\":512},\"foundingDate\":\"2000\",\"founder\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/about-boris-fesenko\\\/#person\"},\"address\":{\"@type\":\"PostalAddress\",\"addressRegion\":\"Ontario\",\"addressCountry\":\"CA\"},\"contactPoint\":[{\"@type\":\"ContactPoint\",\"contactType\":\"customer support\",\"email\":\"support@bjftradinggroup.com\",\"availableLanguage\":[\"English\",\"German\",\"Japanese\",\"Korean\",\"Spanish\",\"Portuguese\",\"Arabic\",\"Indonesian\",\"Vietnamese\"]}],\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/bjftradinggroup\",\"https:\\\/\\\/twitter.com\\\/BjfGroup\",\"https:\\\/\\\/www.youtube.com\\\/@bjftradinggroup\",\"https:\\\/\\\/t.me\\\/bjftradinggroup\",\"https:\\\/\\\/instagram.com\\\/bjftradinggroup\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/bjf-trading-group\\\/\"],\"knowsAbout\":[\"Forex arbitrage\",\"Cryptocurrency arbitrage\",\"Latency arbitrage\",\"News trading\",\"FIX API trading\",\"High-frequency trading\",\"Lock arbitrage\",\"Hedge arbitrage\",\"Pair trading\",\"Algorithmic trading software\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How Brokers Really Fill Your Orders: A-Book vs B-Book","description":"How forex brokers really fill your orders: A-book vs B-book, last look, asymmetric slippage, and 7 tests to tell if you are being B-booked.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/","og_locale":"id_ID","og_type":"article","og_title":"[:en]Broker Execution Transparency[:]","og_description":"How forex brokers really fill your orders: A-book vs B-book, last look, asymmetric slippage, and 7 tests to tell if you are being B-booked.","og_url":"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/","og_site_name":"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.","twitter_card":"summary_large_image","twitter_misc":{"Estimasi waktu membaca":"13 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/","url":"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/","name":"How Brokers Really Fill Your Orders: A-Book vs B-Book","isPartOf":{"@id":"https:\/\/bjftradinggroup.com\/#website"},"datePublished":"2026-08-17T18:14:23+00:00","description":"How forex brokers really fill your orders: A-book vs B-book, last look, asymmetric slippage, and 7 tests to tell if you are being B-booked.","breadcrumb":{"@id":"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bjftradinggroup.com\/broker-execution-transparency\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bjftradinggroup.com\/"},{"@type":"ListItem","position":2,"name":"Broker Execution Transparency"}]},{"@type":"WebSite","@id":"https:\/\/bjftradinggroup.com\/#website","url":"https:\/\/bjftradinggroup.com\/","name":"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.","description":"FX Software pioneer since 2000","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bjftradinggroup.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":"Organization","@id":"https:\/\/bjftradinggroup.com\/#organization","name":"BJF Trading Group Inc.","legalName":"BJF Trading Group Inc.","url":"https:\/\/bjftradinggroup.com\/","logo":{"@type":"ImageObject","url":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/logo.png","width":512,"height":512},"foundingDate":"2000","founder":{"@id":"https:\/\/bjftradinggroup.com\/about-boris-fesenko\/#person"},"address":{"@type":"PostalAddress","addressRegion":"Ontario","addressCountry":"CA"},"contactPoint":[{"@type":"ContactPoint","contactType":"customer support","email":"support@bjftradinggroup.com","availableLanguage":["English","German","Japanese","Korean","Spanish","Portuguese","Arabic","Indonesian","Vietnamese"]}],"sameAs":["https:\/\/www.facebook.com\/bjftradinggroup","https:\/\/twitter.com\/BjfGroup","https:\/\/www.youtube.com\/@bjftradinggroup","https:\/\/t.me\/bjftradinggroup","https:\/\/instagram.com\/bjftradinggroup","https:\/\/www.linkedin.com\/company\/bjf-trading-group\/"],"knowsAbout":["Forex arbitrage","Cryptocurrency arbitrage","Latency arbitrage","News trading","FIX API trading","High-frequency trading","Lock arbitrage","Hedge arbitrage","Pair trading","Algorithmic trading software"]}]}},"_links":{"self":[{"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/pages\/13645","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/comments?post=13645"}],"version-history":[{"count":1,"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/pages\/13645\/revisions"}],"predecessor-version":[{"id":13646,"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/pages\/13645\/revisions\/13646"}],"wp:attachment":[{"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/media?parent=13645"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}