Direct and indirect costs that can affect Last Look
Last Look is a market access and execution mechanism where a venue or provider can accept or reject an incoming trade request after it is received, based on conditions at that moment. Because acceptance is conditional, costs that change the economics and timing of execution can influence how often a request is filled and at what effective price.
When people say “costs affect Last Look,” they usually mean two different things:
- Direct costs: charges and spreads tied to the order’s execution price (for example, commission schedules and the bid/ask spread used to evaluate fills).
- Indirect costs: frictions that do not show up as a simple line-item fee, but still affect the likelihood that the request remains attractive or within predefined tolerances (for example, latency between quote and acceptance).
Mechanics: how cost-related inputs enter the decision
A Last Look implementation typically evaluates a requested price against conditions that exist after the request reaches the provider/venue. Stable mechanics are the same in concept, but the inputs can vary. Costs can enter through:
-
Spread and effective pricing Even if you “send at” a quoted price, the provider may evaluate the trade against the market state at evaluation time. If the bid/ask spread widens, the same requested price can become less favorable, which can change whether the request is accepted.
-
Commissions and fee schedules Commission can change the net economics of a fill. For example, higher commissions reduce the net benefit of accepting marginal requests. This can matter if the Last Look decision uses net-of-fees economics or similar tolerance logic.
-
Latency and quote drift The time between your request and the provider’s evaluation can cause quote drift. Quote drift is an indirect cost: it does not charge you directly, but it changes the market parameters the provider uses for acceptance.
-
Operational overhead and partial information Some friction is procedural: order routing delays, throttling, or differences between what you see in client-side logs and what the provider records internally. This can make it appear as if “cost” drives decisions when the real driver is timing or missing information.
Evidence and examples you can verify
Because outcomes vary by market conditions and implementation, verification should focus on what you can observe and document rather than on expectations.
Assumptions for any example below: assume you place a single request at time t0, and the provider evaluates acceptance at time t1 (t1 ≥ t0). Also assume you can capture timestamps and the executed (or rejected) result.
Example A: spread widening around evaluation
- At t0, the spread is narrow; your requested price is near the middle of the bid/ask.
- Between t0 and t1, volatility increases and the spread widens.
- Verification approach: compare the bid/ask state you captured near t0 with the effective prices you observe for accepted trades after t1. If rejections cluster when spread widens, spread is a plausible cost-related driver.
Example B: commission impact on marginal fills
- Keep order size and instrument constant across tests.
- Run two periods with different commission schedules (or different fee components, if your provider discloses them).
- Verification approach: analyze acceptance rate and effective fill prices. If acceptance changes when fee components change, you have direct evidence that cost affects the marginal attractiveness of acceptance.
Example C: latency and timing
- Group events by measured round-trip time for orders (client-side timestamps).
- Verification approach: check whether higher latency correlates with higher rejection frequency. This supports the idea that indirect “timing costs” affect acceptance.
Limitations and failure modes
At least one important limitation is that you may not see the provider’s internal decision rule. Even if you observe that rejections rise when spreads widen, you might still be unable to prove the causal mechanism (spread vs. timing vs. internal tolerance).
Common failure modes include:
- Attribution error: you interpret rejections as “cost” effects, but the real variable is market movement or latency.
- Selection bias: accepted trades can be filtered; the dataset of executed trades may look better than the rejected set.
- Non-stationarity: costs and their relationship to acceptance can change with market regime and provider configuration.
Verification: what to check next
To verify facts independently, focus on three categories: